Atmega USART overrun - mi a gond szerintetek?
Füzesi Arnold
arno at freemail.hu
Thu Apr 1 19:48:58 CEST 2004
Nem ertem...
Adott egy progi, jo nagy meg minden...
Idonkent a sorosport buffer overrunt jelez, es nem ertem miert.
Rs485 busz, kimegy a parancs, a madzag vegen egy PIC csamcsog valamit,
visszaszol.
Ez a visszaszolas okoz buffer overrunt neha.
A receive megszakitast a bekapcsolaskor engedelyezem, es onnantol nem nyulok
hozza.
Nagyon ritkan letiltom egy ropke pillanatra a megszakitasokat, szoval ugy
erzem ez sem okozhatja:
Ime:
//timerek
intsave=__save_interrupt();
__disable_interrupt();
timer[timerID]=value;
__restore_interrupt(intsave);
//eeprom
intsave=__save_interrupt();
__disable_interrupt();
EECR |= 0x04; //enable write
EECR |= 0x02; //start write
__restore_interrupt(intsave);
Amire gyanakodtam az az, hogy valamelyik megszakitas nem hagyja szohoz jutni
az USART0 vetelt.
Csak :
Timer0
UART0: UDRE, Rx, TXC
UART1: UDRE, Rx, TXC
Megszakitasokat hasznalok.
Egyik sem ragadhat be elvileg.
AZ UDRE megszakitasok kozott is kell lennie eleg idonek az RX
feldolgozashoz.
Kezdem nagyon nem erteni...
Van tippetek?
Az a gond, hogy nem tudom reprodukalni...
Arnold
More information about the Elektro
mailing list