Отговори на тема  [ 7 мнения ] 
P18F252 програмиране 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение P18F252 програмиране
Здравейте!
Правя система за управление по скорост и по позиция на стъпков двигател със матрична клавиатура и LCD за визуализация. Използвам MikroC PRO for PIC 4.15.

Въпроса ми е следния:
Как микроконтролера да чете ASCII кода за да му задам позиция. В момента програмата тръгва, но го позиционирам от 0 до 9, а трябва да го позиционирам до 480, т.е. до 10 оборота с точност 7,5 градуса.

Ще съм много благодарен ако някой може да ми помогне в това мое начинание. :)


Вто Юни 26, 2012 11:33 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: P18F252 програмиране
Има няколко функции за преобразуване от ASCII в число:

Convert a string to an 8-bit signed byte: char atob( const char * s );
Convert a string to a 16-bit signed integer: int atoi( const char * s );
Convert a string into a long integer representation: long atol( const char * s );
Convert a string into a floating point value: double atof( const char * s );


Последна промяна Gogo на Вто Юни 26, 2012 1:31 pm, променена общо 1 път



Вто Юни 26, 2012 11:53 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение Re: P18F252 програмиране
Примерен код може ли да ми дадеш ?


Вто Юни 26, 2012 12:57 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: P18F252 програмиране
#include <stdlib.h>

int hex_val;
char asc_buf[8];

hex_val = atoi((char*)&asc_buf[0]);


В asc_buf ти е ASCII на числото, което ще преобразуваш - например: 0x33, 0x38, 0x36, 0x32.
На края, в hex_val е шеснадесетичната му стойност (0xF16 = 3862).

P.S. Горе бях сгрешл, но го оправих!


Вто Юни 26, 2012 1:45 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение Re: P18F252 програмиране
Много ти Благодаря!!!


Вто Юни 26, 2012 1:51 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение Re: P18F252 програмиране
Възможно ли е следното нещо:
във масива съм въвел 3 стойности например : asc_buf{0x31,0x34,0x34};
и функцията atоi да преобразува числото в случая 144 ?


Чет Юни 28, 2012 12:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: P18F252 програмиране
Да. Само добави в масива още една последна стойност - '\0' , че atoi няма как да знае че е изчела всички числа които си въвел и ще цикли докато стигне '\0'.


Чет Юни 28, 2012 12:36 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 7 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни