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

 
 
> Трабл с USART1 в Mega64, Не работают прерывания !!!
srg_co
сообщение Aug 15 2006, 07:59
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Проект написан в CodeWizardAVR V1.24.8d Professional,
Инициализация портов USART:

// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 4800
UCSR0A=0x00;
UCSR0B=0xD8;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x5F;

// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud rate: 4800
UCSR1A=0x00;
UCSR1B=0xD8;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x5F;

USART0 - работает без проблем
USART1 - не отрабатывают прерывания: usart1_rx_isr, usart1_tx_isr

Проверял через AVRStudio+JTAGICEmkII, регистры проиницализированы нормально.

Попробовал часть кода перенести в IAR 4.12A, все работает !!!

Может кто-то сталкивался с подобными глюками help.gif

Как побороться, проект большой, не хотелось бы переписывать под IAR !
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 50)
bgc
сообщение Aug 15 2006, 08:05
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 30-07-06
Из: Москва
Пользователь №: 19 188



Ну это скорее всего классиaческая тема про фуз бит совместимости с Mega103 - с завода чипы приходят с установленным битом совместимости - второй UART не работате...

Надо просто перевернуть этот бит при прошвке


--------------------
Окружающий мир - не иссякающий источник сюрпризов!
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 15 2006, 09:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(bgc @ Aug 15 2006, 12:05) *
Ну это скорее всего классиaческая тема про фуз бит совместимости с Mega103 - с завода чипы приходят с установленным битом совместимости - второй UART не работате...

Надо просто перевернуть этот бит при прошвке


Бит не установлен, компиляторы разные, процесор один, фузы устанавливались один раз.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 15 2006, 09:29
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



а работаете через putchar-getchar?Если да,то они для каждого usart свои-putchar0-getchar0 и putchar1-getchar1.Если нет,правильно указан вектор обработчиков USART1?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 15 2006, 09:48
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 15 2006, 13:29) *
а работаете через putchar-getchar?Если да,то они для каждого usart свои-putchar0-getchar0 и putchar1-getchar1.Если нет,правильно указан вектор обработчиков USART1?


Вот таблица векторов:

00003c 940c 00f1 JMP _usart1_rx_isr
00003e 940c 0000 JMP 0x00
000040 940c 0114 JMP _usart1_tx_isr
000042 940c 0000 JMP 0x00
000044 940c 0000 JMP 0x00

putchar - getchar - не пользуюсь вообще, пишу свои

//***********************************************
interrupt [USART1_TXC] void usart1_tx_isr( void ) {

char ch;

ch = NextCharStep();
if ( ch )
UDR1 = ch;
;
}

//***********************************************
char NextCharStep( void ) {

if ( ic2 < ls2 ) {
ic2++;
return Test[ic2];
}
else return 0;
}
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 15 2006, 10:43
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Вроде все правильно cranky.gif Попробуй в обработчике поставить сh=0x55 и посмотри осцилом-есть посылка?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 15 2006, 11:10
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 15 2006, 14:43) *
Вроде все правильно cranky.gif Попробуй в обработчике поставить сh=0x55 и посмотри осцилом-есть посылка?

В том то и прикол, первая посылка проходит, должно отработать прерывание и послать следущий байт, а оно не отрабатыват !?!?!?
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 15 2006, 12:17
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



дык может у тебя NextCharStep() ноль присылает?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 15 2006, 14:58
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 15 2006, 16:17) *
дык может у тебя NextCharStep() ноль присылает?

Под IARом то работает.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 15 2006, 15:32
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Щас поднял старый проект на меге128 с 2usart и вспомнил,что тоже была какая-то трабла с usart1/
Попробуй через прерывание по очистке буфера передачи-у меня такая конструкция работает
interrupt [32] void USART_TX_EMP(void)
{
}


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 15 2006, 20:25
Сообщение #11


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Попробовал часть кода перенести в IAR 4.12A, все работает !!!


Перенесите весь код в IAR и забудьте про CV как про страшный сон, и все будет работать.

IAR + JtagIce MkII - самодостаточное сочетание.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Aug 15 2006, 21:24
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Да не IAR нужно учить а ассемблер и знать разницу между командой rjmp и jmp.
jmp это абсолютный переход и занимает 4 байта
rjmp это относительный и занимает 2 байта

компиллер вполне логично выдал адресацию в словах ,тотя по факту в таблице указывается в байтах,
и АВРстудийный компиллер тож адрессацию в листинге дает в байтах,зато результат компиляции в словах.Короче тут черт голову попутает со всем этим.Ставте в таблице rjmp ,а то растянули ее в два раза и помните что в таблице всегда должна быть команда rjmp или reti и все.
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 16 2006, 06:34
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 15 2006, 19:32) *
Щас поднял старый проект на меге128 с 2usart и вспомнил,что тоже была какая-то трабла с usart1/
Попробуй через прерывание по очистке буфера передачи-у меня такая конструкция работает
interrupt [32] void USART_TX_EMP(void)
{
}


А как быть с приемником, там тоже не работает прерывание ?

Цитата(defunct @ Aug 16 2006, 00:25) *
Цитата
Попробовал часть кода перенести в IAR 4.12A, все работает !!!


Перенесите весь код в IAR и забудьте про CV как про страшный сон, и все будет работать.

IAR + JtagIce MkII - самодостаточное сочетание.


Ну очень много переделывать придется sad.gif
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2006, 06:41
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



нет,по приему все стандартно через interrupt [USART1_RXC] void usart1_rx_isr(void)
Попробуй,переделывается пара строчек кода-разреши прерывания по очистке буфера TX и поменяй
вектор обработчика.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 16 2006, 07:47
Сообщение #15


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(bodja74 @ Aug 16 2006, 01:24) *
компиллер вполне логично выдал адресацию в словах ,тотя по факту в таблице указывается в байтах,
и АВРстудийный компиллер тож адрессацию в листинге дает в байтах,зато результат компиляции в словах.

Короче тут черт голову попутает со всем этим.


Но как происходят переходы прекрасно видно в симуляторе VMLAB
или PROTEUS и ошибку сразу видно.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2006, 08:33
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Во блин,иногда они возвращаются help.gif Чур меня blink.gif
Щас пойдут ссылки на сайт с 3 буквами,где давно решены все проблемы человечества. santa2.gif
Изыди,нечистый. smile3009.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 16 2006, 09:51
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 16 2006, 12:33) *
Во блин,иногда они возвращаются help.gif Чур меня blink.gif
Щас пойдут ссылки на сайт с 3 буквами,где давно решены все проблемы человечества. santa2.gif
Изыди,нечистый. smile3009.gif


Это Вы про что ??

VMLAB/PROTEUS ?
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2006, 11:25
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Это я про господина Shurmas,вы не в курсе про происходившее здесь изгнание духов.
ну да бог с ним.
srg_co как дела с USART1?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 16 2006, 11:47
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 16 2006, 15:25) *
Это я про господина Shurmas,вы не в курсе про происходившее здесь изгнание духов.
ну да бог с ним.
srg_co как дела с USART1?


Попробую поработать с USART_TX_EMP.

По приему то стандартно, но не мычит ведь, ввобще не принимает ни одного байта.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2006, 12:15
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 16 2006, 12:22
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 16 2006, 16:15) *
так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


interrupt [USART1_RXC] void usart1_rx_isr( void ) {

char ch;

PORTD.4 = ~PORTD.4;
ch = UDR1;
BuffStep[RecvStp] = ch;
RecvStp++;
//переполение буфера
if ( RecvStp > BUFFSIZE-1 ) {
RecvStp = 0;
memset( BuffStep, 0x00, BUFFSIZE );
return;
}
//строка принята, выведем ее
if ( ch == CRLF ) {
PutStrCom( BuffStep );
}
}

void PutStrCom( char *str ) {

strcpy( BuffSend, str );
strcat( BuffSend, CrLf );
ic = 0;
ls = strlen( BuffSend );
UDR0 = BuffSend[ic];

К PORTD.4 подключен светодиодик, при приеме должен мигать, не мигает.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2006, 13:36
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



можно несколько замечаний?
BuffStep[RecvStp] = ch;
RecvStp++;
можно обьединить BuffStep[RecvStp++] = ch;
PORTD.4 = ~PORTD.4;-по моему,так работать не будет
я делал по другому
bit morg;
morg ^= 1;PORTD.4 =morg;
а что за команда return из прерывания?В CV она не нужна,все делается автоматом по закрытии скобок
обработчика.
Да,а что вы принимаете?Там точно есть посылки и протокол совпадает с установленным вами?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 06:01
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 16 2006, 17:36) *
можно несколько замечаний?
BuffStep[RecvStp] = ch;
RecvStp++;
можно обьединить BuffStep[RecvStp++] = ch;
PORTD.4 = ~PORTD.4;-по моему,так работать не будет
я делал по другому
bit morg;
morg ^= 1;PORTD.4 =morg;
а что за команда return из прерывания?В CV она не нужна,все делается автоматом по закрытии скобок
обработчика.
Да,а что вы принимаете?Там точно есть посылки и протокол совпадает с установленным вами?


PORTD.4 = ~PORTD.4; - это работает в CVAVR

return - что бы пропустить выполнение следующего кода.

Посылки и протокол совпадает полностью.



Цитата(WHALE @ Aug 16 2006, 10:41) *
нет,по приему все стандартно через interrupt [USART1_RXC] void usart1_rx_isr(void)
Попробуй,переделывается пара строчек кода-разреши прерывания по очистке буфера TX и поменяй
вектор обработчика.


Попробовал, без измененей, отправляет один байт и усе.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 17 2006, 06:30
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



попробуй тогда действительно в симуляторе каком-нибудь-avr-studio,vmlab,proteus.
у тебя что-то не-то во внешних программных модулях.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 06:38
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 17 2006, 10:30) *
попробуй тогда действительно в симуляторе каком-нибудь-avr-studio,vmlab,proteus.
у тебя что-то не-то во внешних программных модулях.

Пробовал в avr-studio+jtagicemk2, криминала не нашел, биты в конфигурации порта установлены правильно.
Go to the top of the page
 
+Quote Post
pokos
сообщение Aug 17 2006, 06:57
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445



Похоже, застревает оно в прерывании, выйти не могёт.

Сообщение отредактировал pokos - Aug 17 2006, 07:01
Go to the top of the page
 
+Quote Post
aesok
сообщение Aug 17 2006, 07:01
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(srg_co @ Aug 16 2006, 16:22) *
Цитата(WHALE @ Aug 16 2006, 16:15) *

так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


interrupt [USART1_RXC] void usart1_rx_isr( void ) {

char ch;

.....
//строка принята, выведем ее
if ( ch == CRLF ) {
PutStrCom( BuffStep );
}
}




Вы и не сможете вывести более 1 смвола с помощю PutStrCom, вы же находитесь а обработчике прерывания, и прерывыния запрещенны.

Анатолий.
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 17 2006, 07:37
Сообщение #28


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(srg_co @ Aug 17 2006, 10:01) *
PORTD.4 = ~PORTD.4; - это работает в CVAVR


~PORTD.4; так тоже работает в CVAVR
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 08:27
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(Shurmas @ Aug 17 2006, 11:37) *
Цитата(srg_co @ Aug 17 2006, 10:01) *

PORTD.4 = ~PORTD.4; - это работает в CVAVR


~PORTD.4; так тоже работает в CVAVR


Нет, не будет.

Цитата(aesok @ Aug 17 2006, 11:01) *
Цитата(srg_co @ Aug 16 2006, 16:22) *

Цитата(WHALE @ Aug 16 2006, 16:15) *

так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


interrupt [USART1_RXC] void usart1_rx_isr( void ) {

char ch;

.....
//строка принята, выведем ее
if ( ch == CRLF ) {
PutStrCom( BuffStep );
}
}




Вы и не сможете вывести более 1 смвола с помощю PutStrCom, вы же находитесь а обработчике прерывания, и прерывыния запрещенны.

Анатолий.


Вот PutStrCom:

void PutStrCom( char *str ) {

strcpy( BuffSend, str );
strcat( BuffSend, CrLf );
ic = 0;
ls = strlen( BuffSend );
UDR0 = BuffSend[ic];
}

Она как раз и вывод один символ в другой порт, а продолжает выводить уже прерывание USART0
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 17 2006, 08:46
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(aesok @ Aug 17 2006, 11:01) *
Цитата(srg_co @ Aug 16 2006, 16:22) *

Цитата(WHALE @ Aug 16 2006, 16:15) *

так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


interrupt [USART1_RXC] void usart1_rx_isr( void ) {

char ch;

.....
//строка принята, выведем ее
if ( ch == CRLF ) {
PutStrCom( BuffStep );
}
}




Вы и не сможете вывести более 1 смвола с помощю PutStrCom, вы же находитесь а обработчике прерывания, и прерывыния запрещенны.

Анатолий.

При чем тут прерывание,он фукцию вызывает из обработчика,что конвенцией не запрещено,хоть и не
желательно.
Насчет return-по моему лучше будет else if ( ch == CRLF ) {
и насчет проверки в симуляторе-то что регистры проинициализрованы правильно,понятно,но что происх
одит в обработчиках?Отключите глаз,попробуйте в софтовом эмуляторе студии поставить галочку в
usart1->ucsra->rxc.
вы попадете вобработчик,и посмотрите,что там происходит


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 09:05
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 17 2006, 12:46) *
Цитата(aesok @ Aug 17 2006, 11:01) *

Цитата(srg_co @ Aug 16 2006, 16:22) *

Цитата(WHALE @ Aug 16 2006, 16:15) *

так еще и прием не работает?не,че-то в консерватории не-то.Приведите текст приемного модуля.


interrupt [USART1_RXC] void usart1_rx_isr( void ) {

char ch;

.....
//строка принята, выведем ее
if ( ch == CRLF ) {
PutStrCom( BuffStep );
}
}




Вы и не сможете вывести более 1 смвола с помощю PutStrCom, вы же находитесь а обработчике прерывания, и прерывыния запрещенны.

Анатолий.

При чем тут прерывание,он фукцию вызывает из обработчика,что конвенцией не запрещено,хоть и не
желательно.
Насчет return-по моему лучше будет else if ( ch == CRLF ) {
и насчет проверки в симуляторе-то что регистры проинициализрованы правильно,понятно,но что происх
одит в обработчиках?Отключите глаз,попробуйте в софтовом эмуляторе студии поставить галочку в
usart1->ucsra->rxc.
вы попадете вобработчик,и посмотрите,что там происходит


Имитировать прерывание ?
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 17 2006, 09:29
Сообщение #32


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(srg_co @ Aug 17 2006, 12:27) *
Цитата(Shurmas @ Aug 17 2006, 11:37) *

~PORTD.4; так тоже работает в CVAVR


Нет, не будет.



"спешал фо ю" чичас проверил - работает! как и всегда это работало в CVAVR !
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 09:50
Сообщение #33


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(Shurmas @ Aug 17 2006, 13:29) *
Цитата(srg_co @ Aug 17 2006, 12:27) *

Цитата(Shurmas @ Aug 17 2006, 11:37) *

~PORTD.4; так тоже работает в CVAVR


Нет, не будет.



"спешал фо ю" чичас проверил - работает! как и всегда это работало в CVAVR !


Понял, а версия CVAVR у Вас какая ?
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 17 2006, 09:53
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



да,имитировать прерывание.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 17 2006, 10:04
Сообщение #35


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(srg_co @ Aug 17 2006, 13:50) *
а версия CVAVR у Вас какая ?


1.24.8b фул и дема 1.25.1
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Aug 17 2006, 10:16
Сообщение #36


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Извините! я ошибся. он это компилит но выдает вонинг что код возможно не бкдет работать и действительно не работает.

Извините еще раз.
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 17 2006, 10:33
Сообщение #37


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 17 2006, 13:53) *
да,имитировать прерывание.


Понял попробую вечерком.

Цитата(Shurmas @ Aug 17 2006, 14:16) *
Извините! я ошибся. он это компилит но выдает вонинг что код возможно не бкдет работать и действительно не работает.

Извините еще раз.


Все мы человеки, все могут ошибаться, не ошибается тот кто ничего не делает.
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 18 2006, 07:03
Сообщение #38


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 17 2006, 13:53) *
да,имитировать прерывание.

Попробывал, USART0 - все ОК, USART1 - не фурычит !
Go to the top of the page
 
+Quote Post
arttab
сообщение Aug 18 2006, 07:51
Сообщение #39


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

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



Мегу 64 юзал под IAR - все OK! Оба UARTA. попробуйте в avrstudio посимулировать ваш код.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 18 2006, 09:37
Сообщение #40


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(arttab @ Aug 18 2006, 11:51) *
Мегу 64 юзал под IAR - все OK! Оба UARTA. попробуйте в avrstudio посимулировать ваш код.

В том то и дело, что в ИАР все гуд, а под CV - глюки.
Симулировать пробовал, не работают прерывания.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 19 2006, 12:32
Сообщение #41


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(srg_co @ Aug 18 2006, 12:37) *
В том то и дело, что в ИАР все гуд, а под CV - глюки.
Симулировать пробовал, не работают прерывания.

Вы все еще возитесь с этой проблемой в CV?
За это время можно было весь проект трижды перенести в IAR.
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 20 2006, 08:50
Сообщение #42


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(defunct @ Aug 19 2006, 16:32) *
Цитата(srg_co @ Aug 18 2006, 12:37) *

В том то и дело, что в ИАР все гуд, а под CV - глюки.
Симулировать пробовал, не работают прерывания.

Вы все еще возитесь с этой проблемой в CV?
За это время можно было весь проект трижды перенести в IAR.

Да sad.gif , видимо придется этим заняться.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 20 2006, 09:36
Сообщение #43


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(srg_co @ Aug 20 2006, 12:50) *
Цитата(defunct @ Aug 19 2006, 16:32) *

Цитата(srg_co @ Aug 18 2006, 12:37) *

В том то и дело, что в ИАР все гуд, а под CV - глюки.
Симулировать пробовал, не работают прерывания.

Вы все еще возитесь с этой проблемой в CV?
За это время можно было весь проект трижды перенести в IAR.

Да sad.gif , видимо придется этим заняться.

И USART1 у вас в CV не работает,и прерывания не симулируются blink.gif
у меня в СV усе работало и в студии все симулировалось.явно что-то с векторами не то.
Ну переносите,бог в помощь biggrin.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 24 2006, 12:08
Сообщение #44


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(WHALE @ Aug 20 2006, 13:36) *
Цитата(srg_co @ Aug 20 2006, 12:50) *

Цитата(defunct @ Aug 19 2006, 16:32) *

Цитата(srg_co @ Aug 18 2006, 12:37) *

В том то и дело, что в ИАР все гуд, а под CV - глюки.
Симулировать пробовал, не работают прерывания.

Вы все еще возитесь с этой проблемой в CV?
За это время можно было весь проект трижды перенести в IAR.

Да sad.gif , видимо придется этим заняться.

И USART1 у вас в CV не работает,и прерывания не симулируются blink.gif
у меня в СV усе работало и в студии все симулировалось.явно что-то с векторами не то.
Ну переносите,бог в помощь biggrin.gif

А какая версия CV у Вас ?
Go to the top of the page
 
+Quote Post
vet
сообщение Aug 24 2006, 12:21
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Компилятор крайним оказался? ну-ну smile.gif
Работаю в CV пять лет; со всей периферией он работает отлично, и с USART1 тоже.
Ищите ошибку в программе. Проверьте настройки проекта.

Сообщение отредактировал vet - Aug 24 2006, 12:27


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 24 2006, 14:14
Сообщение #46


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(vet @ Aug 24 2006, 16:21) *
Компилятор крайним оказался? ну-ну smile.gif
Работаю в CV пять лет; со всей периферией он работает отлично, и с USART1 тоже.
Ищите ошибку в программе. Проверьте настройки проекта.

Я не говорил, что он кривой, а баги в нем есть, достаточно историю версий посмотреть.
Go to the top of the page
 
+Quote Post
vet
сообщение Aug 25 2006, 06:04
Сообщение #47


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Как и в любой программе.
За все время работы сталкивался с багами в CV один или два раза, оба проявились на нетипичных сишных конструкциях.
Повторюсь, никаких багов при работе из CV с периферией меги128 не замечал. Просто отладьте программу; компилятор - последнее, что стоит рассматривать, как причину её неработоспособности.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 25 2006, 08:09
Сообщение #48


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(vet @ Aug 25 2006, 10:04) *
Как и в любой программе.
За все время работы сталкивался с багами в CV один или два раза, оба проявились на нетипичных сишных конструкциях.
Повторюсь, никаких багов при работе из CV с периферией меги128 не замечал. Просто отладьте программу; компилятор - последнее, что стоит рассматривать, как причину её неработоспособности.

Вау, нашел в чем проблема ! Выключил прерывание Timer3 по переполнению и все заработало. Хотя прерывание от таймер работало исправно, идем дальше, по прерыванию таймер инициализировался значением: 0xFFFF, включаю таймер, ставлю значение: 0x1234, все продолжает работать blink.gif

Какие мысли у народа есть по этому поводу ?
Go to the top of the page
 
+Quote Post
vet
сообщение Aug 25 2006, 09:26
Сообщение #49


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Разберитесь, с какой частотой возникало прерывание от таймера.
У меня подозрение, что м/к из него не вылезал, и до обработки прерывания от USART1 дело просто не доходило.

Подсказка: обсуждаемые прерывания по убыванию приоритета - USART0_RX > TIMER3_OVF > USART1_RX.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 25 2006, 14:02
Сообщение #50


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(vet @ Aug 25 2006, 13:26) *
Разберитесь, с какой частотой возникало прерывание от таймера.
У меня подозрение, что м/к из него не вылезал, и до обработки прерывания от USART1 дело просто не доходило.

Подсказка: обсуждаемые прерывания по убыванию приоритета - USART0_RX > TIMER3_OVF > USART1_RX.

У меня была мысль по этому поводу, таймер генерит примерно 16800Hz

В общем будем считать что проблема решена, всем огромное спасибо за помощь!
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 25 2006, 15:29
Сообщение #51


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Вообще-то такие проблемы решаются довольно быстро в симуляторе VMLAB,там есть такая фича-симуляцяция 2 процессоров.Очень неплохо позволяет отлавливать баги межпроцессорного обмена.
Правда,в вашем случае все было еще проще smile.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:25
Рейтинг@Mail.ru


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