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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ATmega 16L проблема с UART
Палыч
сообщение Apr 18 2008, 08:36
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(ProfessorBraz @ Apr 18 2008, 11:20) *
потому-что после reti программа переходит вот сюда
Это не переход на адрес 0. Очень похоже на бесконечный цикл, в конце программы, в который попадают при выходе из main. Сама main у Вас как выглядит?
Go to the top of the page
 
+Quote Post
ProfessorBraz
сообщение Apr 18 2008, 08:51
Сообщение #17





Группа: Новичок
Сообщений: 9
Регистрация: 17-04-08
Пользователь №: 36 821



Цитата(Палыч @ Apr 18 2008, 12:36) *
Это не переход на адрес 0. Очень похоже на бесконечный цикл, в конце программы, в который попадают при выходе из main. Сама main у Вас как выглядит?

вот так
Код
int main(void)
{
    //Init UART
    InitUSART0_Int();
    USART_Init_Function(&i16RcvByte, &vOnEvent, &vOnError);
    InitFD();
    InitSM();
    // Interrupt erlauben
    sei();
    Global.bShortTaskEnable = true;    

    while(1){;}        
}
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 18 2008, 08:58
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Тот rjmp по адресу E7 - это скорее всего while(1){;}
Вас, наверное, смутили нули при jmp'е? Так обратите внимание, что они входят в выражение "РС-0х000", что означает "этот адрес", т.е. команда перехода на самою себя.
Go to the top of the page
 
+Quote Post
ProfessorBraz
сообщение Apr 18 2008, 09:21
Сообщение #19





Группа: Новичок
Сообщений: 9
Регистрация: 17-04-08
Пользователь №: 36 821



Цитата(Палыч @ Apr 18 2008, 12:58) *
Тот rjmp по адресу E7 - это скорее всего while(1){;}
Вас, наверное, смутили нули при jmp'е? Так обратите внимание, что они входят в выражение "РС-0х000", что означает "этот адрес", т.е. команда перехода на самою себя.


а после этого он переходит вот сюда
Код
+0000001A:   940C0047    JMP     0x00000047       Jump
+0000001C:   940C0047    JMP     0x00000047       Jump

а от туда уже
Код
+00000047:   940C0000    JMP     0x00000000       Jump
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 18 2008, 09:30
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Ну, Вы, блин, даёте! Это не RJMP PC-0x0000 переходит на адрес 1A!
Адрес 1А - адрес вектора "USART, Tx Complete". У Вас разрешено прерывание по этому событию, но, обработчика прерывания, скорее всего, - нет. Вот программа и выходит на вектор, куда во избежании всяких неприятностей по-умолчанию занесены переходы, которые приводят на адрес 0.
Go to the top of the page
 
+Quote Post
ProfessorBraz
сообщение Apr 18 2008, 10:13
Сообщение #21





Группа: Новичок
Сообщений: 9
Регистрация: 17-04-08
Пользователь №: 36 821



у меня только два прерывания и оба оброботчика присутствуют
Код
#if defined (__AVR_ATmega16__) || \
        defined (__AVR_ATmega32__)                                        
            #define ATMEGA_USART                                        
            #define USART0_RECEIVE_INTERRUPT    USART_RXC_vect            
            #define USART0_TRANSMIT_INTERRUPT    USART_UDRE_vect            
            #define USART0_STATUS    UCSRA                                    #define USART0_CONTROL    UCSRB                        
            #define USART0_DATA        UDR                        
            #define USART0_UDRIE    UDRIE                            
            #define USART0_UBRRH    UBRRH                            
            #define USART0_UBRRL    UBRRL


Палыч! Вы супер! a14.gif
Найдено. Проблема была в отсутствующем обработчике прерывания.
Код
ISR(USART0_TX_COMPLETE_INT)
{
}

Не смотря на то, что я это прерывание не разрешал, впрочем и не запрещал, возможно оно разрешилось автоматически вместе с Тх интераптом.

Вообщем проблема решена! Огромное всем спасибо! beer.gif
До следующих проблем!
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 18 2008, 12:43
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Если бы Вы в своём вопросе привели бы всю информацию, что "нарыли", то первым же ответным постом получили бы нормальный ответ. Никто бы не гадал на кофейной гуще, и проблема была бы решена ещё вчера.... Примите это к сведению, если будете задавать вопрос.
Go to the top of the page
 
+Quote Post

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

 


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


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