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

 
 
> 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
Ответов
arttab
сообщение Sep 5 2005, 09:45
Сообщение #2


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

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



кварц на 8 МГц (передатчик передает. я в терминале принемаю).
2 стоп бита? флаг ставит, а в прерывание не входит!?
глобальное прерывание вкл. за стеком IAR следит
прерывание по таймеру1 входит

колдунство требуется...


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Alex11
сообщение Sep 5 2005, 19:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Два дурацких вопроса: вектор изменен правильно при переносе на Mega64? - он там другой. И что там с битиком IVSEL в MCUCR?
Go to the top of the page
 
+Quote Post
arttab
сообщение Sep 6 2005, 01:30
Сообщение #4


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

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



Цитата(Alex11 @ Sep 6 2005, 02:36)
Два дурацких вопроса: вектор изменен правильно при переносе на Mega64? - он там другой. И что там с битиком IVSEL в MCUCR?
*


Дык, ИАР. файлик определений цеплять не забываю по конкретный мк. да и ругаться он без него будет.
А битик не трогаю. прерывания по таймеру1 есть.... вектора не прыгнули

Вчера мучил мк и мозги. Вот к чему пришел:

#define ENABLE_BIT_DEFINITIONS
//#define IAR_SYSTEMS_ASM__

#include "inavr.h"
#include "iom64.h"
#include "stdio.h"

void main(void);

unsigned char temp = 0;
/*
#pragma vector=RESET_vect
__interrupt void my_RESET_vect()
{
}
*/
#pragma vector=USART1_RXC_vect
__interrupt void my_USART1_RXC_vect(void)
{
temp=UDR1;
UDR1='s';

__enable_interrupt();
}//#pragma vector=USART_RXC_vect

void main(void)
{


__disable_interrupt(); //CLI

__watchdog_reset(); //сброс дога

WDTCR |= (1<<WDCE) | (1<<WDE); // Write logical one to WDCE and WDE
WDTCR = 0x00;

// USART1

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

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

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

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

UBRR1L = 0x19; // 33 - 9600 bod

UDR1='k';
met:

//||||||||||||||||\\\\\\\\\\\\\\//
if (UCSR1A_Bit7) //& 0x80)//(1<<RXC1))
{
// temp=UDR1;
UDR1='z';
}//if (UCSRA & (1<<RXC))
/////////////|||||||||||||\\\\\\\\\\\\//


goto met;
}//void main(void)

сначала отсылает 'k' , а по приему 'z'. Значит прерывание не работает.
пробовал в сою прогу вставить по флагу - фиг вам.


--------------------
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 - 11:48
Рейтинг@Mail.ru


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