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