Добрый день програмисты!
Мучаюсь с ATMEGA8535. Хочу передать информацию, а именно в моём случае три буквы "AVR" с мокроконтроллера через USART на СOM порт компьютера в программу hiper terminal.
Программка зашиваемая в контроллер вот:
.include "m8535def.inc" ; Присоединение файла описаний
.list ; Включение листинга
.def temp=R16 ; Определение главного рабочего регистра
.def count=R17 ; Счётчик
.equ start=0 ; 0 вывод порта PD
.def rab=r18
.org 0 ; Установка текущегно адреса в ноль
rjmp init
;---------------Инициализация микроконтроллера------------------
init:
;-----------------Инициализация стёка--------------------------
ldi temp, high(RAMEND) ; Выбор адреса вершины стёка
out SPH, temp ; Запись его в регистр стёка
ldi temp, low(RAMEND)
out SPL, temp
ldi ZL, low(text*2)
ldi ZH, high(text*2)
ldi count, 3 ; Установка счётчика байтов
ldi temp, 0 ; Запись 0 в temp
out DDRC, temp ; Порт D на ввод
ldi temp, 0xFF
out PORTC, temp ; Подключаем внутренние резисторы
;---------------Настройка UART на передачу данных---------------
ldi temp, 0x33 ;Настройка скорости
out UBRRL, temp
ldi temp, 0
out UCSRA, temp
ldi temp, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE)
out UCSRB, temp
ldi temp, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)
out UCSRC, temp
WAIT_START: sbic PINC, start ; Ожидание нажатия кнопки
rjmp WAIT_START
OUTPUT: lpm ; Загрузка байта из програмной памяти в r0
out UDR, r0 ; Вывод этого байта в регистр данных(пер-ик)
sbi UCSRA, TXC ; Сброс флага ТХС
WAIT: sbic UCSRA, TXC ; Ожидание завершения передачи
rjmp next
rjmp WAIT
next: adiw zl,1 ; Увеличение адреса на 1
dec count ; Уменьшение счётчика на 1
brne OUTPUT ; Продолжение вывода(перейти сли Z не равно 0)
fin: rjmp fin ; Передача завершена
text: .db 'A','V','R' ; Текст сообщения
Пишу а AVR studio. Когда запускаю пошаговое выполнение программы в AVR studio, то нужный код поступает в регистр UDR. Когда прошиваю программу в контроллер , то на выходе TXD нет никакого кода. Симулирую программу в протеусе, тоже на выходе TXD ничего нет.
Вопрос в том куда этот код девается, как его на TXD вывести?
Может в программу ещё што-то надо дописать....?
Много книжек пересмотрел, не могу найти нужный пример.
Может как-нибудь надо ещё и TDX инициализировать???
Выручайте....
ATMEGA8535, проблемы с USART
ATMEGA8535, проблемы с USART
Последний раз редактировалось yuroy Пт янв 21, 2011 17:39:13, всего редактировалось 1 раз.
- Реклама
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: ATMEGA8535, проблемы с USART
только что через макс 232 пытался с терминалом связатся ,не хочет... напряжение меряю в вольтах...
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: ATMEGA8535, проблемы с USART
На какой частоте работает контроллер, и какая скорость задана в терминале? Проверял в том-же протеусе: частота 8МГц, скорость 9600, в UBRL загружено 0x33 - на терминале вылезает ваше "AVR" 
Re: ATMEGA8535, проблемы с USART
Благодарю за помощь! У меня тоже заработало в протеусе! До этого запускал на частоте 1МГц. Сейчас в протеусе попробовал разные частоты, разные скорости обмена, почему-то только на частоте 8 МГц и со скоростью 9600 работает(в протеусе). Не могу понять почему. На других частотах выдаёт непонятные символы. Ну хорошо, что теперь знаю почему не работало. Я думал, что всё таки дело в программе.Engineer_Keen писал(а):На какой частоте работает контроллер, и какая скорость задана в терминале? Проверял в том-же протеусе: частота 8МГц, скорость 9600, в UBRL загружено 0x33 - на терминале вылезает ваше "AVR"
В понедельник проверю на железе - отпишусь.
Последний раз редактировалось yuroy Пт янв 21, 2011 17:43:53, всего редактировалось 1 раз.
Re: ATMEGA8535, проблемы с USART
Ну мы вроде бы разобрались. Попробуй прошить мою программку, она работает. Частота контроллера 8 МГц.Сериг писал(а):только что через макс 232 пытался с терминалом связатся ,не хочет... напряжение меряю в вольтах...
- Реклама
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: ATMEGA8535, проблемы с USART
не я на асме не шарю....
Re: ATMEGA8535, проблемы с USART
Вот тут неплохо разжевано. Главное основные грабли описаны. http://easyelectronics.ru/avr-uchebnyj- ... -uart.html


