| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| P18F252 програмиране http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10261 |
Страница 1 от 1 |
| Автор: | v.n.angelov [ Вто Юни 26, 2012 11:33 am ] |
| Заглавие: | P18F252 програмиране |
Здравейте! Правя система за управление по скорост и по позиция на стъпков двигател със матрична клавиатура и LCD за визуализация. Използвам MikroC PRO for PIC 4.15. Въпроса ми е следния: Как микроконтролера да чете ASCII кода за да му задам позиция. В момента програмата тръгва, но го позиционирам от 0 до 9, а трябва да го позиционирам до 480, т.е. до 10 оборота с точност 7,5 градуса. Ще съм много благодарен ако някой може да ми помогне в това мое начинание. |
|
| Автор: | Gogo [ Вто Юни 26, 2012 11:53 am ] |
| Заглавие: | 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 ); |
|
| Автор: | v.n.angelov [ Вто Юни 26, 2012 12:57 pm ] |
| Заглавие: | Re: P18F252 програмиране |
Примерен код може ли да ми дадеш ? |
|
| Автор: | Gogo [ Вто Юни 26, 2012 1:45 pm ] |
| Заглавие: | 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. Горе бях сгрешл, но го оправих! |
|
| Автор: | v.n.angelov [ Вто Юни 26, 2012 1:51 pm ] |
| Заглавие: | Re: P18F252 програмиране |
Много ти Благодаря!!! |
|
| Автор: | v.n.angelov [ Чет Юни 28, 2012 12:27 pm ] |
| Заглавие: | Re: P18F252 програмиране |
Възможно ли е следното нещо: във масива съм въвел 3 стойности например : asc_buf{0x31,0x34,0x34}; и функцията atоi да преобразува числото в случая 144 ? |
|
| Автор: | michev [ Чет Юни 28, 2012 12:36 pm ] |
| Заглавие: | Re: P18F252 програмиране |
Да. Само добави в масива още една последна стойност - '\0' , че atoi няма как да знае че е изчела всички числа които си въвел и ще цикли докато стигне '\0'. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|