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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 13.06.2013, 09:39  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
что ещё может разрешить UCSRC?
Например смену битрейта на ходу, бит уресел не забывать ноликом прописать, размер символа. Словом все параметры, коими данный регистр управляет. А насчёт реальности, а не теории, был случай, мне надо было работать с одним хитрым модулем, через УСАРТ, и помимо этого с RS485. Так вот хитрость модуля была в том, что ему клок усарт требовался по нарастанию фронта, а в обычном мах485 - наоборот. Так и приходилось помимо разрешений для мах485 и модуля ещё и полярность постоянно переключать.
Реклама:
Someone вне форума  
Непрочитано 13.06.2013, 10:12  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
Думаю, проблема не в программе.
И я не про программу, а про компилятор. Как распределяется адресное пространство? Никто ни с кем не пересекается?
Ведь, вернемся к началу, проблема возникла при замене компилятора, тут и смотреть подробней.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 13.06.2013, 10:37  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Проблема не в очистке буфера приёмника, а в сбросе флага UDRE - сигнала о том что в буфере был записан байт (сигнал прерывания), этот флаг/бит сбрасывается только при чтении из буфера и при выключении питания МК (аппаратный/программный резет не помогает). Так вот, если запретить прерывания но не отключать приёмник во время и/но до окончания приёма байта, UDRE будет установлен всё равно а прерывания не произойдёт, не произойдёт оно и после разрешения прерываний поскольку тригер изменения состояния этого бита не сработает (на момент разрешения уже есть признак срабатывания). Ситуация маловероятная но случается. Никакому потребителю не понравиться, ездить за несколько километров и МК включать/выключать, даже раз в неделю... Случайно обнаружил у себя такое поведение при переносе проекта с одной меги на другую (намного чаще стала возникать, думаю ввиду отказа от внешней памяти, просто операции перезаписи из памяти в буфер передатчика стали быстрее происходить).
vynt вне форума  
Непрочитано 13.06.2013, 10:42  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от akegor Посмотреть сообщение
И я не про программу, а про компилятор. Как распределяется адресное пространство? Никто ни с кем не пересекается?
Ведь, вернемся к началу, проблема возникла при замене компилятора, тут и смотреть подробней.
Я в симуляторе проверил его проект (hex), нет там ошибок. Если у него терминал показывает не те символы, то это либо частота кварца не та либо уровни преобразования TTL-RS232 на грани между логическим нулём и единицой. И не факт что при смене компилятора, может и при подключении терминала. Я уже писал, следует либо исключить сам терминал, либо минимизировать его влияние (поставить хотя бы диод в разрыв RX)

Последний раз редактировалось vynt; 13.06.2013 в 11:05.
vynt вне форума  
Непрочитано 13.06.2013, 11:36  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
а в сбросе флага UDRE - сигнала о том что в буфере был записан байт (сигнал прерывания)
Вообще-то этот флаг (USART Data Register Empty) говорит о том, что дата регистр передатчика пуст. И готов к приёму новых данных для передачи. Т.е. это флаг для передачи данных, и относится не к модулю чтения (RXEN), а к модулю записи (TXEN). Для чтения этот флаг не используется. Или дословно
The UDRE Flag indicates if the transmit buffer (UDR) is ready to receive new data. If UDRE is one, the buffer is empty, and therefore ready to be written.
Someone вне форума  
Непрочитано 13.06.2013, 11:48  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Кстати! На скриншоте в первом посте, буфер приёмника расположен по адресу 2AF, а по факту в хексе, данные записываются по адресу 11C... И вопрос к топикастеру - а зачем константы (строки) храните в ОЗУ?

Последний раз редактировалось vynt; 13.06.2013 в 12:02.
vynt вне форума  
Непрочитано 13.06.2013, 11:55  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от Someone Посмотреть сообщение
Вообще-то этот флаг (USART Data Register Empty) говорит о том, что дата регистр передатчика пуст. И готов к приёму новых данных для передачи. Т.е. это флаг для передачи данных, и относится не к модулю чтения (RXEN), а к модулю записи (TXEN). Для чтения этот флаг не используется. Или дословно
The UDRE Flag indicates if the transmit buffer (UDR) is ready to receive new data. If UDRE is one, the buffer is empty, and therefore ready to be written.
очепятался поздно уже было... спать хотелось... флаг RXC конечно же
vynt вне форума  
Непрочитано 13.06.2013, 12:41  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
Я в симуляторе проверил его проект (hex), нет там ошибок. Если у него терминал показывает не те символы, то это либо частота кварца не та либо уровни преобразования TTL-RS232 на грани между логическим нулём и единицой. И не факт что при смене компилятора, может и при подключении терминала. Я уже писал, следует либо исключить сам терминал, либо минимизировать его влияние (поставить хотя бы диод в разрыв RX)
Терминал показывает как раз правду, а в буфере МК билеберда.
TechMike вне форума  
Непрочитано 13.06.2013, 12:57  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от TechMike Посмотреть сообщение
Терминал показывает как раз правду, а в буфере МК билеберда.
Билеберда там как раз и может быть из-за терминала... Зачем его вообще подключать потребовалось? Проект был рабочий/отлажен и перестал работать? или просто захотелось проверить, что после смены среды проектирования (компилятора) он всё ещё работает?
vynt вне форума  
Непрочитано 13.06.2013, 13:00  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
Билеберда там как раз и может быть из-за терминала... Зачем его вообще подключать потребовалось? Проект был рабочий/отлажен и перестал работать? или просто захотелось проверить, что после смены среды проектирования (компилятора) он всё ещё работает?
Терминал для отладки, при рождении проект успешно работал с сотовым телефоном, теперь с модемом. Типа эволюционирует.
TechMike вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цифровой фильтр на Mega16 AlexPi Песочница (вопросы новичков) 21 10.06.2013 11:35
mega16+hd44780+ds18b20 глючит при работе в железе Jkot Микроконтроллеры, АЦП, память и т.д 3 18.11.2009 15:50
Генерация стабильных импульсов на mega16 moroz_gr Микроконтроллеры, АЦП, память и т.д 14 02.03.2009 17:58
Mega16: вход в противофазу OCR1A и B code-by Микроконтроллеры, АЦП, память и т.д 8 10.11.2008 12:18
Как померять низкочастотный сигнал на лапке Mega16 ? TiN_TM Микроконтроллеры, АЦП, память и т.д 4 25.07.2006 12:53


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


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