Не работает прерывание от UART. AVR Tiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Не работает прерывание от UART. AVR Tiny2313

Сообщение ArtemKolesnikov »

Всем привет. Написал программу, код не работает.
Начал сокращать код, чтоб найти откуда не работает и пришел к выводу, что не срабатывает прерывание по приему символа.

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include "usart.h"


//прием символа по usart`у в буфер
ISR(USART_RX_vect)

{
   
   volatile uint8_t uByte = 0;// принятый байт
   
   uByte=UDR;//  Читаем текущий принятый байт
   PORTA = 0xFF;  // Порт А = 1
}

int main( void )
{
  DDRA = 0xff;            /* Порт А как выход */
  UBRRH=0;
  UBRRL=51; //скорость обмена 9600 бод
  UCSRB=(1<<RXCIE)|(1<<RXEN)|(0<<TXEN); //разр. прерыв при приеме, разр приема, запр передачи.
  UCSRC=(0<<UMSEL)|(1<<UCSZ1)|(1<<UCSZ0);  //размер слова 8 разрядов
  sei();
   
  while(1)
  {
   
  }   
  return 0;
}


Моделирую в протеусе, у виртуального терминала так же настроено, 9600, паритет - NONE, 8 бит.
Помогите найти причину, пожалуйста.
Вложения
111+исходн.rar
(13.32 КБ) 143 скачивания
111.rar
AVR Studio 4+WinAVR
(12.09 КБ) 164 скачивания
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Re: Не работает прерывание от UART. AVR Tiny2313

Сообщение ArtemKolesnikov »

Разобрался. UBRR
Ответить

Вернуться в «AVR»