Глобальная Переменная И Прерывания

4-11-2013, 14:40 От: admin Посмотрели: 665
Добрый день, дорогие форумчане!

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

Вот код:


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define XTAL 8000000L
#define baudrate 9600L
#define bauddivider (XTAL/(16*baudrate)-1)

volatile unsigned char ccc='d'; //вот она

ISR(USART_RXC_vect)
{
unsigned char temp;
temp=UDR; //без этого прерывание встает
ccc=temp;
}
inline void HrdInit(void)
{
PORTD=(1<<5|1<<4);
DDRB=(1<<3|1<<4);
PORTB=(1<<3|0<<4);
}
void uart_SendByte(unsigned char B)
{
while(!(UCSRA & (1<<UDRE))) ;
UDR=b;
}
unsigned char uart_RecByte(void)
{
while(!(UCSRA&(1<<RXC))) ;
return UDR;
}
void USART_init()
{
UBRRH=(unsigned char)(bauddivider>>8);
UBRRL=(unsigned char)(bauddivider);
UCSRA = 0;
UCSRB = 1<<RXEN|1<<TXEN|1<<RXCIE|0<<TXCIE;
UCSRC = 1<<UCSZ0|1<<UCSZ1;
}
void main()
{
USART_init();
HrdInit();
asm("SEI");
while(1)
{
if(!(PIND & (1<<4)))
{
uart_SendByte(ccc);
}
}



В теории программа должна по получению байта записывать его в глобальную переменную и по нажатию кнопки выдавать в канал, но выдает она только то, что в нее занесли при инициализации (либо 0). Подобную тему на этом форуме уже находил, но ничего полезного там не нашел. Заранее спасибо
Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Глобальная Переменная И Прерывания все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930