Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Форматирование данных и передача даных UART

Непрочитано 28.01.2015, 18:30  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

вывожу по очереди числа от 0 до 9
PHP код:
#include ‹mega8.h›
#include ‹stdio.h›
#include ‹delay.h›
unsigned int kostil (unsigned char q)  
{  
delay_ms(1000);   
      putchar('B'); 
      putchar('i'); 
      putchar('z'); 
      putchar('z'); 
      putchar('a'); 
      putchar('r'); 
      putchar('d');
      putchar('?'); 
      putchar('0'); 
      putchar('0'); 
      putchar('0'); 
      putchar(q);     
}  
void main(void)
{
PORTC=0x01;
DDRC=0x00;
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
 
while (1)
      {
      kostil ('1');  
      kostil ('2');  
      kostil ('3');  
      kostil ('4');  
      kostil ('5');  
      kostil ('6');  
      kostil ('7');  
      kostil ('8');  
      kostil ('9');  
      kostil ('0');  
            };
} 


но сколько я не копал этот кусок кода, я не вижу где тут проверяется слово Bizzard и ?
как убрать необходимость слова Bizzard в посылке?

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; 
Реклама:

Последний раз редактировалось WindoЗavr; 28.01.2015 в 19:34.
WindoЗavr вне форума  
Непрочитано 28.01.2015, 19:47  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от WindoЗavr Посмотреть сообщение
где тут проверяется слово Bizzard и ?
Bizzard это пурга, которую я пронес в качестве помехи для иллюстрации "нереагирования" на всякую пургу. А "?" проверяется после проверки количества байтов в буфере. Это прокомментировано в #47.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 28.01.2015, 20:20  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

я биззард заменял другими буквами и удалял
в обоих случаях выводится неверное число
WindoЗavr вне форума  
Непрочитано 28.01.2015, 20:26  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

ввод вывод.zip
WZ_data_in это принимающая часть от вашей программы
uart2mk это протеус и проект CV
задействованы
ком 3 и ком 4
WindoЗavr вне форума  
Непрочитано 28.01.2015, 21:05  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Выкиньте из костила 'Blizzard' и знак вопроса, оставьте только
Цитата:
unsigned int kostil (unsigned char q)
{
delay_ms(1000);
putchar('0');
putchar('0');
putchar('0');
putchar(q);
}
В подпрограмме чтения порта замените 1 на 3
Цитата:
while(CommPort1-›InBuffUsed›3) {

Последний раз редактировалось Yurkin2014; 28.01.2015 в 21:08.
Yurkin2014 вне форума  
Непрочитано 29.01.2015, 00:18  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

спасибо, заработало


CV компилит, но ругается Warning: function must have a return value
на unsigned int kostil (unsigned char q)

но она же имеет возвращаемое значение вроде

Последний раз редактировалось WindoЗavr; 29.01.2015 в 00:26.
WindoЗavr вне форума  
Непрочитано 29.01.2015, 00:43  
WindoЗavr
Заблокирован
 
Регистрация: 26.12.2013
Сообщений: 379
Сказал спасибо: 66
Сказали Спасибо 61 раз(а) в 23 сообщении(ях)
WindoЗavr на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

программа на МК передаёт десятичные числа, а комп воспринимает как их 16 ричные

а где в программе систему счисления поменять можно?

если передать
putchar('?');
putchar('1');
putchar('1');
putchar('1');
putchar('1');
прога говорит 4369


чтоб в проге получить 1111
надо отправить
putchar('?');
putchar('0');
putchar('4');
putchar('5');
putchar('7');

Последний раз редактировалось WindoЗavr; 29.01.2015 в 00:51.
WindoЗavr вне форума  
Непрочитано 29.01.2015, 01:03  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

WindoЗavr, набросал на скорую руку.
Вложения:
Тип файла: rar For_WZ(mega8).rar (71.8 Кб, 30 просмотров)
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Сказали "Спасибо" akegor
WindoЗavr (29.01.2015)
Непрочитано 29.01.2015, 01:18  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от WindoЗavr Посмотреть сообщение
чтоб в проге получить 1111
Замените строчку вывода числа
Цитата:
RData-›Caption=IntToStr(aton(mas[0])*1000+aton(mas[1])*100+aton(mas[2])*10+aton(mas[3]));
Yurkin2014 вне форума  
Непрочитано 29.01.2015, 06:45  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Форматирование данных и передача даных UART

Сообщение от Yurkin2014 Посмотреть сообщение
Замените строчку вывода числа...
Это преобразование кого в чего?
Изначально ставилась задача измерить и передать в комп. Значит - передавать тугрики АЦП, соответственно, двухбайтовое целое. "А ты что сделал, доктор?"(с) Если ТС называет обрезание кастрированием, это же не значит, что надо выполнять буквально.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 29.01.2015 в 06:49.
akegor вне форума  
Сказали "Спасибо" akegor
WindoЗavr (29.01.2015)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Беспроводная передача данных 1кб/с , 3км. Как и чем? Zemlyanov Микроконтроллеры, АЦП, память и т.д 5 29.01.2015 10:02
Тормоза при передаче данных через UART в Bluetooth модуль rus_12345 Микроконтроллеры, АЦП, память и т.д 8 05.01.2015 19:39
Передача данных через UART в AVR микроконтроллерах. harry7777 AVR 54 09.11.2013 20:40
Передача данных в UART из текстового файла bombardier_rotax Proteus 6 24.02.2010 20:50
PIC16F877A pawelk Микроконтроллеры, АЦП, память и т.д 17 28.05.2005 23:54


Часовой пояс GMT +4, время: 20:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.