Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/20: Рейтинг темы: голосов - 20, средняя оценка - 4.60
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
1

А давайте поймаем глюк!

16.09.2010, 00:39. Просмотров 3656. Ответов 3
Метки нет (Все метки)

В общем озадачили меня тут в комментариях:

КОроче, Тини2313 у ней UART так вот, в даташите скзанао, что регистры UBRRH и UCSRC это разные регистры, с разными адресами. А поэтому для записи в UCSRC бит URSEL не нужен, да его и нету там - в даташите там прочерк, а в студии нет этой ячейки.

Но тут вылазит другая интересная бага. При пошаговой отладке в студии, если записывать в UCSRC без бита URSEL (которого, повторюсь, нету в инклюдах на тини2313 и его надо вручную дефайнить) то значение записывается в URSEL и в UBBRH одновременно, поганя предварительную настройку бодрейта. Аппаратно проверить не могу - ни одна тинька не распаяна.

Глюк студии? Или реально? Хотя я с тини2313 очень много работал и проблем не встречал ни разу с уартом. Но тут чел жалуется.

Кто может запихать такой код в живой контроллер:

Код
.equ XTAL = 8000000
.equ baudrate = 9600
.equ bauddivider = XTAL/(16*baudrate)-1

uart_init:
LDI R16, high(bauddivider)
OUT UBRRH, R16
LDI R16, low(bauddivider)
OUT UBRRL, R16

LDI R16,0
OUT UCSRA, R16

LDI R16, (1<<TXEN)
OUT UCSRB, R16

LDI R16,(1<<UCSZ1)|(1<<UCSZ0)
OUT UCSRC, R16                            <---------- вот тут одновременно меняется и UBRRH
А потом считать значение UBBRH и выдать на какой нибудь обьективный интерфейс, например в порт. Оно будет равно UCSRC (как показывает студия) или останется тем же, что и в начале?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 00:39
Ответы с готовыми решениями:

А давайте подумаем .... ? Дисплей для AVR.
Надо собрать брелок. Маленький, не больше зажигалки. Реально для ключей. ...

глюк программатора
Попытался прошить МК с помощью программатора из 5 проводков. В итоге МК...

Аппаратный глюк
Ситуация такая. Надо было мне сделать платку, на ней три кнопки. По трем...

Глюк АЦП
Сильно не пинайте но мысли уже кончились. Пютаюсь сделать контроль выхлопа...

непонятный глюк Attiny13
Давно не связывался с авр, а тут приспичело. Писал и отлаживал программку на...

3
miyvir
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
16.09.2010, 01:14 2
В UBBRH и UCSRC разные значения. Регистры действительно независимы - что пишется, то и читается.
0
Joit.Dosi
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 433
16.09.2010, 01:42 3
Цитата Сообщение от DY HOTT
А потом считать значение UBBRH и выдать на какой нибудь обьективный интерфейс
Пусто в нём, хотя в студии было 0x06
0
yoshymyo
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 1
16.09.2010, 12:08 4
Было подобное, но с ATmega164P (нужно было два УАРТа), причем только с одним из портов. К тому же в симуляторе 1 и в симуляторе 2 баги проявлялись по разному. В железе все работало. Списывался с Атмелом - сказали что программистам по башке надавали, будет исправлено как только, так сразу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2010, 12:08

Глюк с программой на attiny2313
Написал прогу на асме для attiny2313, но работает она предельно криво:...

Глюк Flash-памяти
Устройство на Miko8535 год работало отлично а потом заглючило. Прошил по новой...

Глюк в работе АЦП
Добрый вечер. Есть задача - поочередное чтение каждого канала АЦП на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru