Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.01.2015, 21:01
|
|
Временная регистрация
Регистрация: 28.07.2011
Адрес: Петропавловск, Казахстан.
Сообщений: 61
Сказал спасибо: 10
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
За пинок спасибо, в прерывании нужно было только данные обрабатывать, но не передавать.
|
|
|
|
27.01.2015, 21:48
|
|
Временная регистрация
Регистрация: 28.07.2011
Адрес: Петропавловск, Казахстан.
Сообщений: 61
Сказал спасибо: 10
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: форматирование данных и передача даных UART
Сообщение от dosikus
|
Проблема высосана из пальца ...
|
Без обид, если спецалист, реальный, посоветуй...
|
|
|
|
28.01.2015, 14:38
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
а почему программа то это не распознаёт?
PHP код:
|
#include ‹mega8.h› #include ‹stdio.h› #include ‹delay.h› void main(void) {
char massiv[5]={'11','22','33','44','55'}; bit on=0; int i=0; int a=0;
PORTC=0x01; DDRC=0x00; UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;
while (1) { if(a‹5){ a++ ; delay_ms (20); if(on==0) { UDR=massiv[i]; i++; if(i›5) { i=0; } on=1; } if(PINC.0!=0) { on=0; } } else { delay_ms (1000); a=0; i=0; UDR='?'; }; }; }
|
я же вроде правильно собираю посылки для неё
|
|
|
|
28.01.2015, 14:48
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
и даже так
место единицы пишет 3536
PHP код:
|
while (1)
{
putchar('1');
delay_ms(1000);
};
}
|
как принимать ascii ?
|
|
|
|
28.01.2015, 15:16
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,968
Сказал спасибо: 2,552
Сказали Спасибо 11,849 раз(а) в 5,938 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
Признак пакета - '?'. Потому - "?1234", но принято будет 4660 (десятичных).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
28.01.2015, 15:33
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
а как сделать так, что бы совпало отправленное и принятое?
|
|
|
|
28.01.2015, 15:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
Сообщение от WindoЗavr
|
char massiv[5]={'11','22','33','44','55'};
|
Это как Вы в ОДИН байт запихиваете ДВА ascii символа? А если IDE в UTF-8 работает, так и вообще 4.
Сообщение от WindoЗavr
|
место единицы пишет 3536
|
м.б. UTF-8? Попробуйте putchar(49);
Сообщение от WindoЗavr
|
как принимать ascii ?
|
Так же, как и любой другой байт. А если имеется в виду "чем" - терминалкой любой. Хоть родной виндовой.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 28.01.2015 в 15:42.
|
|
|
|
28.01.2015, 15:48
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
PHP код:
|
#include ‹mega8.h› #include ‹stdio.h› #include ‹delay.h› void main(void) {
PORTC=0x01; DDRC=0x00; UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; while (1) { putchar('49'); delay_ms(1000);
}; }
|
прога 38352 отвечает
терминал только 9 показывает в аскии
PHP код:
|
//---------------------------------------------------------------------------
char ntoa(char n) { // Ïðåîáðàçîâàíèå íèáëà â ASCII n=n&0x0f; if (n‹0x0a) n+=48; // 0x30 else n+=55; // 0x37 return n; }
void i2btoa(int n, char *mas) { // Ïðåáðàçîâàíèå äâóõ áàéòîâ â ASCII for(int i=3; i›-1; i--) mas[i]=ntoa(n››abs(4*(i-3))); }
char aton(char c) { // Ïðåîáðàçîâàíèå îäíîãî áàéòà â íèáë if(c‹0x3A) c-=0x30; else c-=0x37; if(c›0x0f) c=0; return c; }
int a4btoi(char *mas) { // Ïðåîáðàçîâàíèå ñòðîêè èç ÷åòûðåõ ASCII â int int n=0;
for (int i=3; i›-1; i--) n+=aton(mas[i])‹‹abs(4*(i-3)); return n; } //---------------------------------------------------------------------------
|
это в программе на компе
|
|
|
|
28.01.2015, 15:56
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,968
Сказал спасибо: 2,552
Сказали Спасибо 11,849 раз(а) в 5,938 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
Сообщение от WindoЗavr
|
а как сделать так, что бы
|
В виндячем примере давал функцию преобразования int в ASCII. Она там используется для передачи. Ей передаются в параметрах целое и указатель на массив.
ПС i2btoa преобразование двухбайтного целого в АСКИ.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 28.01.2015 в 15:59.
|
|
|
|
28.01.2015, 16:00
|
|
Заблокирован
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
|
Re: Форматирование данных и передача даных UART
Сообщение от akegor
|
В виндячем примере давал функцию преобразования int в ASCII. Она там используется для передачи. Ей передаются в параметрах целое и указатель на массив.
|
т.е. если я передаю в ASCII, мне преобразовывать не нужно?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:12.
|
|