[elektro] Atmega48 - USART Framing Error törlés

Papp Zoltán zombi at c2.hu
Sat May 30 22:29:34 CEST 2009


2009.05.29. 02:31:59 dátumon Fuzesi Arnold <arnold.fuzesi.lista at gmail.com> írta:

> Sziasztok!
>
> Mi a pontos menete ennek?!
> Ez megfelelo" vagy ennel többet kíván?!
> Megzuhan egy mu"ködo" kód errefele és nem értem mi a gondja...
>
> /******************************************************************************/
> #pragma vector=USART_RX_vect
> __interrupt void USART_RX_handler(void)
> {
>
> 	if(gbi(UCSR0A,FE0) || gbi(UCSR0A,DOR0) ){	//error
> 		cbi(UCSR0B,RXEN0);
> 		sbi(UCSR0B,RXEN0);		
> 		return;
> 	}
>
> 	temp=UDR0 blablablabla
>
> Kösz,Arnold
>
> -----------------------------------------
>           elektro[-flame|-etc]
> 

Szerintem az a baj, hogy ha hiba van, nem olvasod ki a buffert. Mert attól, hogy hiba van, még a bufferbe letárolódik a karakter. 
Az Atmega leírásában benne is van, hogy akkor törlődik a hiba-bit, amikor olvasod az UDR-t.
Azaz a return előtt mindenképpen javasolnék egy temp=UDR-t.

Üdv
-- 
Papp Zoltán
OneWay Electronics Kft
Hangszerviz
szkájp: oneway[aláhúzás]papp[aláhúzás]zoltan



More information about the Elektro mailing list