Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

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

 
Опции темы

UART + Atmega 8

Непрочитано 08.07.2012, 21:16  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от miwutka Посмотреть сообщение
Вы меня не поняли или я вас... есть буфер с номером переменной в массиве rx_buffer[rx_wr_index] мне надо видеть на дисплее значение rx_wr_index от 0 до 255 а не от "." до символа с кодом 255. Вот....
Незнаю зачем мне это в дальнейшем, но сейчас просто хочу отследить как всё происходит.
Кстати писалось что прога типа зависает в процедуре приема данных, но вродь смотрю всё норм работает... никаких галюнов нету. Или я чегото не допонял _Артём_??
Я вас понял. Чего не скажешь про обратную сторону.
Научитесь правильно излагать свои мысли и формировать вопросы.
У вас есть число типа unsigned char (в народе называют "байт").
Вам надо отобразить этот байт, как десятичное число. Разложите на цифры:
1-я цифра. Сколько сотен в числе. Сохраните остаток от числа при делении на 100.
2-я цифра. Сколько десятков в сохраненном остатке. Сохраните остаток от деления предыдущего остатка на 10.
3-я цифра. Остаток от всех делений.
Итого. 1-цифра - количество сотен, 2-я - к-во десятков, 3-я - к-во единиц.
Передавать на консоль (вы называете "на дисплей") следует именно три цифры. Рекомендую для начала написать функцию преобразования BinToDec(), понять её работу, научится давить (гасить) незначащие нули. В дальнейшем подобная функция (или одна, но универсальная) вам пригодится при работе с 16-бит силами.
Всё это я вам и написал в предыдущем посте. И кто кого не понял?
Реклама:
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 09.07.2012, 00:35  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: UART + Atmega 8

теперь понятно. Я это использую для 7-сегментника. Думал для ЖК есть чтото другое... Тогда всё просто Спасибо))
miwutka вне форума  
Непрочитано 09.07.2012, 08:15  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от miwutka Посмотреть сообщение
Тогда всё просто
Тогда вы молодец!
Цитата:
Думал для ЖК есть чтото другое...
ЖК они ведь тоже разные бывают. Если это символьные - то для вас без разницы. Те же фиксированные знакоместа, в которые выводятся символы. С графическими немного посложнее. Эти знакоместа еще надо организовать. Хотя есть и комбинированные индикаторы, поддерживающие как графический так и символьный режимы.
Цитата:
Спасибо))
Для "спасибы" есть отдельная кнопка в правом нижнем углу моего поста...
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 09.07.2012 в 11:08.
ut1wpr вне форума  
Непрочитано 09.07.2012, 10:47  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от miwutka Посмотреть сообщение
чтобы я ... в терминале видел значение счетчика ...
Иногда удобнее изучать работу алгоритма не в кристалле, а в компе, например - под отладчиком. Так сказать, разделяй и властвуй - прием и посылку байта по UART - в м/к (т.к. здесь важны именно режимы работы "железа"), а порядок работы алгоритма - в ПК, так как проще влезть и посмотреть, что творится внутри (раз уж отладки в кристалле нету пока).
Глянь в личку.
tempora вне форума  
Непрочитано 09.07.2012, 11:42  
kosmos440o
Заблокирован
 
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
kosmos440o на пути к лучшему
По умолчанию Re: UART + Atmega 8

Для вывода на LCD числа в десятичном представлении надо использовать функцию sprintf. Найдите книгу Лебедева "CodeVisionAVR - пособие для начинающих". Там всё достаточно подробно расписано на русском языке, хотя это просто перевод хелпа из программы.

Числа выводятся в зависимости от типа. Для unsigned char функция будет
// в начале программы
#include ‹alcd.h› // библиотека lcd
#include ‹stdio.h› // библиотека функций ввода-вывода
// перед использованием функций и переменных
char lcd_string[16]; // 16-длина строки дисплея
unsigned char uc_temp1; // временная переменная
......
// во время вывода
uc_temp1=255; // выводим число 255 через переменную uc_temp1
lcd_gotoxy(0,0); // начальная позиция
sprintf(lcd_string,"%u",uc_temp1); // форматируем в строку
lcd_puts(lcd_string); // выводим на экран

для числа в других форматах будут другие функции .

на UART тоже самое, только есть особенности совместной работы с LCD.
для совместной работы посмотрите пример "2USART_LCD" в папке
C:\Program Files (x86)\cvavr \examples

Последний раз редактировалось kosmos440o; 09.07.2012 в 11:46.
kosmos440o вне форума  
Непрочитано 09.07.2012, 12:11  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от kosmos440o Посмотреть сообщение
надо использовать функцию sprintf
Учитывая размер её кода и задачу ТС, лучше всё же пользоваться чем-то своим, коротким и простым. Например, таким:
Код:
char    *Byte2Str(unsigned char byte)
{
static char buf[4];
char *s = &(buf[3]);

        do {
           *--s = '0' + (byte % 10);
        } while (byte /= 10);

        return(s);
}

Последний раз редактировалось tempora; 09.07.2012 в 12:14. Причина: Подсократил басенку. :)
tempora вне форума  
Непрочитано 09.07.2012, 12:40  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от kosmos440o Посмотреть сообщение
Для вывода на LCD числа в десятичном представлении надо использовать функцию sprintf.
На МК класса М8 желательно не использовать printf и ее подвиды. Скомпилируйте с ней и без нее и сравните размеры. Удовольствия не получите.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 09.07.2012, 12:41  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от tempora Посмотреть сообщение
Учитывая размер её кода и задачу ТС, лучше всё же пользоваться чем-то своим, коротким и простым. Например,[skip]
Присоединяюсь. +100500!
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 09.07.2012, 13:09  
kosmos440o
Заблокирован
 
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
kosmos440o на пути к лучшему
По умолчанию Re: UART + Atmega 8

Библиотека stdio является стандартной, чужой код легче понимается. Она используется не только в МК, но и в других применениях С, поэтому изучение работы этой функции не бесполезная трата времени. В случае использования "своих" библиотек придётся постоянно что-то придумывать. Я думаю, скоро ТС захочет вывести число с десятичной точкой и знаком. Придётся дописывать Вашу функцию. В конечном результате через пару лет Ваша функция превратится в stdio, только вы затратите ещё время на доделки и мозголомство.

Размер для обучения не имеет значения, к тому же stdio критична только для ATtiny, где она навряд ли будет использоваться. Насколько я помню, её размер около 1 кБайта.
kosmos440o вне форума  
Непрочитано 09.07.2012, 13:24  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: UART + Atmega 8

Сообщение от kosmos440o Посмотреть сообщение
через пару лет Ваша функция превратится в stdio
Эта "пара лет" уже прошла (многократно) и ничего страшного не случилось.

Никто не же не утверждает, что от sprintf нужно вовсе отказаться - в некоторых случаях она вполне уместна,... но ставить её повсюду - неправильно. О чём ТС'у и сказали.

Последний раз редактировалось tempora; 09.07.2012 в 14:18. Причина: Перенес в др. пост.
tempora вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ATMEGA простой UART (RS232) без max232 EXIS Микроконтроллеры, АЦП, память и т.д 39 09.12.2010 18:51
Вопрос по формату кадра UART в ATmega-х Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 6 19.03.2008 23:56
UART и WinAVR SpiderHall Микроконтроллеры, АЦП, память и т.д 1 30.10.2006 20:53
UART slawa Микроконтроллеры, АЦП, память и т.д 4 19.01.2006 12:44
UART xaoc Микроконтроллеры, АЦП, память и т.д 13 01.07.2005 09:31


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


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