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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 08.07.2012, 21:16   #21
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 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   #22
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: UART + Atmega 8

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

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

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

Сообщение от miwutka Посмотреть сообщение
чтобы я ... в терминале видел значение счетчика ...
Иногда удобнее изучать работу алгоритма не в кристалле, а в компе, например - под отладчиком. Так сказать, разделяй и властвуй - прием и посылку байта по UART - в м/к (т.к. здесь важны именно режимы работы "железа"), а порядок работы алгоритма - в ПК, так как проще влезть и посмотреть, что творится внутри (раз уж отладки в кристалле нету пока).
Глянь в личку.
tempora вне форума  
Непрочитано 09.07.2012, 11:42   #25
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   #26
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 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   #27
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: UART + Atmega 8

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

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

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

Размер для обучения не имеет значения, к тому же stdio критична только для ATtiny, где она навряд ли будет использоваться. Насколько я помню, её размер около 1 кБайта.
kosmos440o вне форума  
Непрочитано 09.07.2012, 13:24   #30
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 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, время: 00:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot