Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Подключить STK-500 через преобразователь USB COM http://www.cyberforum.ru/avr/thread2085962.html
Народ, впервые сталкиваюсь, выручайте! У меня дома ПК, ком порт присутствует. На работе ноут. Ком порта нет. Нарыл много лет валявшуюся плату преобразователь с FT232BM. Приехал на работу, дрова...
Atmega AVR микроконтроллер помогите оживить mega328p ну, все таки лажанулся: полез во фьюзы. считал это: <Изображение удалено> поставил так и залил в процик <Изображение удалено> внешний генератор накидывал, пальцем трогал - не помогает. http://www.cyberforum.ru/avr/thread2085961.html
Atmega AVR микроконтроллер И снова обработка одной кнопки.
Здравствуйте дорогие форумчане. Бьюсь который день и не могу реализовать такую задачу: есть мк AtMiko8, от него я хочу чтобы он управлял линейкой RGB светодиодов при помощи аппаратной ШИМ. Сперва...
Arduino_Bluetooth_shield+atmega16 Atmega AVR микроконтроллер
Решил попробовать передавать данные по bluetooth, благо в наличие лежал шилд от ардуино. Раньше ни разу не пользовался модулями и видимо поэтому у меня возникли проблемы с ним. Соединял вроде как и...
Atmega AVR микроконтроллер Использование переходника для UART из Arduino http://www.cyberforum.ru/avr/thread2085958.html
Возник такой вопрос. Arduino уже встроенно может соединятся с компьютером. Возможно ли как-то использовать arduino как преобразователь интерфейса т.е. закачать программу на atmel микроконтроллер ,...
Atmega AVR микроконтроллер Определение эффективности программного кода. Всем привет, собственно вопрос в заголовке, есть ли какие-нибудь методы, которые позволят определить на сколько та или иная функция или вся программа целиком, написана эффективно т.е. соответствует... подробнее
Oyr_Homstir
0 / 0 / 0
Регистрация: 16.04.2014
Сообщений: 20
0

Проблема с UART (ATmega88)

19.04.2014, 15:57. Просмотров 7613. Ответов 26
Метки (Все метки)

Добрый день!
Уже долгое время пытаюсь разобраться с работой uart. Наваял программу, по которой мк должен включать пин PB1 по приходу 1 и выключать по приходу 0. Но никакой реакции нет.
Частота - 20Мгц, скорость - 9600.
В чем может быть загвоздка?
Код
Код
.divice ATmega88
.include "m88def.yms"   ; Используем ATMiko88
.def   temp   =r16   ;Регистры для временных файлов
.def   temp2   =r17

.def   temp3   =r28
.def   Data   =r29

; ROM =====================================================
//      .DSEG         ; Сегмент ОЗУ
// FLASH ===================================================
; Riset omd Ymtirrupt Vectors ==========================================
.CSEG
.include "C:\Users\lol\Desktop\Uart\Uart\interrupts88.yms"
; End Riset omd Ymtirrupt Vectors ==========================================
;******************Инициализация переферии

RESIT:
ldi r16, high(ROMEND); Main program stort
out SPH,r16 ; Set Stack Pointer to top of ROM
ldi r16, low(ROMEND)
out SPL,r16

//Входы и выходы
ldi   temp, 0b01100010 ;
out   DDRD, temp
LDI temp,0b11111111
out   DDRB, temp
//

//UART
LDI    temp, low(129)
STS    UBRR0L,temp
LDI    temp, high(129)
STS    UBRR0H,temp

LDI    temp,0
STS    UCSR0A, temp
//
// Прерывания разрешены, прием-передача разрешен.
LDI    R16, (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0)|(1<<TXCIE0)|(0<<UDRIE0)|(1<<RXB80)|(1<<TXB80)
STS    UCSR0B, R16
//

//Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор
LDI    R16, (0<<UCsZ02)|(1<<UCSZ01)|(1<<UCSZ00)
STS    UCSR0C, R16
//

LDI temp, 0b00000011 //Тестовый сигнал
OUT PORTB, temp

SEI

RJMP WAITING

;************ Конец инициализации
WAITING:
nop
nop
nop
nop
nop
nop
nop
RJMP WAITING
URXC:
CLI
LDS   Data, UDR0   ;Запоминаем принятый байт

cpi Data, 1 ;Сравниваем с 1
brne PC+2   ;
RJMP ON

cpi Data, 0 ;Сравниваем с 0
brne PC+2   ;
RJMP OFF

SEI
reti   ; Выход из прерывания
ON:
CLR temp
LDI temp, (1<<PORTB1)
OUT PORTB, temp
SEI
RJMP Woyting

OFF:
CLR temp
LDI temp, (0<<PORTB1)
OUT PORTB, temp
SEI
RJMP Woyting

Send:
/*   LDI temp, UCSR0A
SBRS temp, RXC0
SBIS    UCSR0A,UDRE0   ; Пропуск если нет флага готовности
RJMP   uart_snt    ; ждем готовности - флага UDRE
*/
STS   UDR0, Data   ; шлем байт
RETI         ; Возврат


Вернуться к обсуждению:
Проблема с UART (ATmega88)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 15:57
Готовые ответы и решения:

Atmega88 + UART = проблема
Приветствую! Пытаюсь соединить два камня по USORT интерфейсу. Для тактирования в обоих камнях...

Проблема с UART
День добрый. Продолжаю изучать AVR и наткнулся на проблему при изучении UART(работаю с платой...

Проблема с UART
Здравствуйте. Программирую МК не давно, и поэтому столкнулся с проблемой при работе через UART....

Проблема с UART
Здраствуйте! Хочу общатся с МК через UART, но возникли проблемы... использую st232bn и МК...

Проблема с UART на Atmega128
Всем доброго времение суток, надеюсь поможете разобраться с проблемой. Предистория: устройство на...

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