реклама на сайте
подробности

 
 
> ATMEGA64 глюк с UASR1, нет прерывания по приему
arttab
сообщение Sep 5 2005, 07:55
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



перенес проект с меги8 (отлажиный - рабочий) на 64. но нет прерывания по приему в usart1
fuse - запрограм. только SUT0
настройка
// USART1

UCSR1A = 0x00; // U2X нет, MPCM нет

UCSR1B = 0x98; // RXCIE,TXCIE,UDRIE,RXEN,TXEN,UCSZ2,RXB8,TXB8
// 1, 0, 0, 1, 1, 0, 0, 0
// включ. приемник и передач.

UCSR1C = 0x0E; // xxx,UMSEL,UPM1:0:, USBS, UCSZ1:0, UCPOL
// 0, 0, 00, 1, 11, 0
// рез.,ас., без парит., 2 стопа, 8 бит

UBRR1H = 0x00; //URSEL,UBRR11:8:
//

UBRR1L = 0x19; // 19200 bod

преревание
#pragma vector=USART1_RXC_vect
__interrupt void my_USART1_RXC_vect(void)
{
temp=UDR1;
UDR1='s';
my_FLAGS_A.FEF2 = 1;
if (my_FLAGS_A.FRST==0)
{
if (count_res==255)
{count_res=0;}
Resiv(temp);
}//if (my_FLAGS_A.FRST==0)


ответа нет, в прерывание не заходит, но передатчик работает (вставлял переобически посылать байт по прерыванию таймера 1). Флаг по приему выставляется (опять же вставлял код для проверки)
Ни чего не понимаю. Ну чего ей надо?
Хелп...!!!!


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ValeraVi
сообщение Sep 6 2005, 15:06
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-07-05
Из: Kyiv, Ukraine
Пользователь №: 7 211



2 arttab
че-то не совсем ясно smile.gif, выше вы говорили что глобальные прерывания вы разрешили, а в примере они у вас запрещаются при инициализации:
void main(void)
{


__disable_interrupt(); //CLI
и больше нигде не разрешаются кроме как в прерывании по получению байта из ком порта, которое никогда не произойдет smile.gif
Поставте перед
UDR1='k';
разрешение прерываний:
__enable_interrupt();
и все должно заработать.
Go to the top of the page
 
+Quote Post
arttab
сообщение Sep 7 2005, 01:26
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Цитата(ValeraVi @ Sep 6 2005, 22:06)
2 arttab
че-то не совсем ясно :), выше вы говорили что глобальные прерывания вы разрешили, а в примере они у вас запрещаются при инициализации:
*


в проге было разрешение - при копировании в форум ложанулся

Загадку вчера разгадал - программно-аппаратная фигня:
по RXD1 поставил защитный резистор 20к и включил резистор подтяжки... Уровня сигнала не хватало, а оссилом не собрался глянкть.
И опыт, сын ошибок трудных....
Всем спасибо за участие


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016