Atmega88 RX IT
Fuzesi Arnold
arno at freemail.hu
Wed May 11 14:12:12 CEST 2005
Hát nem jövök rá... :(
Megkerültem a problémát.
if(gbi(UCSR0A,FE0) ){ //framing error
comm_ipntr0=COMM_IBUFSIZE0;
comm_progress0=0;
cbi(UCSR0B,RXEN0); //receiver disabled
sbi(UCSR0B,RXEN0); //receiver enabled
return;
}
Ha valaki esetleg rájön a másik megoldással mi volt a gond, ne titkolja!
Arnold
---- Original Message -----
From: "Fuzesi Arnold" <arno at externet.hu>
To: <elektro at tesla.hu>; <retro at lists.tmp.hu>; <avr-hun at x-dsl.hu>
Sent: Wednesday, May 11, 2005 12:58 PM
Subject: Re: Atmega88 RX IT
> Framing error-ban ragad benn, mostmar tuti.
> A while ciklusban.
>
> Megneztem a proci RX, TX laban stabil 1 van. (amugy egy 75176B rs485
driver
> megy ra.)
>
> Hümmm...
>
> Viszont ha magara hagyom a 75176B-t, akkor a data kimenete 0 !!!!!!!!!!!!
> (még semmi nincs a 75176 driver reszen, sem lezaras, sem szethuzas. De
ennek
> ellenere nem szabadna 0-t adnia...)
>
> Az adatlap az irja, hogy:
> DIFFERENTIAL INPUTS ENABLE OUTPUT
> A - B RE R
> Open L H
>
> Asszem cserelek egyet...
>
> Viszton ha be van dugva az rs485, akkor 1-ben van szépen ahogy kell.
> De ennek ellenere a proci a while ciklusban marad...
>
> Arnold
> ----- Original Message -----
> From: "Fuzesi Arnold" <arno at externet.hu>
> To: <elektro at tesla.hu>; <retro at lists.tmp.hu>
> Sent: Wednesday, May 11, 2005 12:05 PM
> Subject: Atmega88 RX IT
>
>
> > Sziasztok!
> >
> > Van tippetek arra miert "fagy" egy atmega 88 néha, ha az RXC interrupt
> > engedelyezve van?
> > Tipikusan ha glitch megy a rx vonalra, akkor teszi ezt.
> >
> > Nem ertem miert... :(
> >
> > Igy nez ki az IT:
> >
> > #pragma vector=USART_RX_vect
> > __interrupt void USART_RX_handler(void)
> > {
> > uchar temp;
> > /* if(gbi(UCSR0A,FE0)){ //framing error
> > while(gbi(UCSR0A,RXC0)) temp=UDR0;
> > return;
> > }
> > if(gbi(UCSR0A,DOR0)){ //overrun error
> > while(gbi(UCSR0A,RXC0)) temp=UDR0;
> > return;
> > }
> > */
> > temp=UDR0;
> > comm_ibyte0=temp;
> > comm_newbyte0=1;
> >
> > }
> >
> > A fenti kikommentezett reszben van a bibi.
> > Ha ki van kommentezve akkor minden rendben. Csak neha hibazik.
> > Ha nincs, akkor fagyas van.
> >
> > (gbi() makro teszteli az adott bitet, annyit csinal)
> >
> > Adatlap szerint:
> >
> > Flushing the Receive Buffer The receiver buffer FIFO will be flushed
when
> > the Receiver is disabled, i.e., the buffer
> > will be emptied of its contents. Unread data will be lost. If the buffer
> has
> > to be flushed
> > during normal operation, due to for instance an error condition, read
the
> > UDRn I/O loca-tion
> > until the RXCn Flag is cleared. The following code example shows how to
> > flush the
> > receive buffer.
> >
> > azaz:
> >
> > "read the UDRn I/O loca-tion
> > until the RXCn Flag is cleared."
> >
> > Ez hivatott erre a fentiből:
> >
> > while(gbi(UCSR0A,RXC0)) temp=UDR0;
> >
> > Annyit még, hogy a proci ICP, INT0, RX laba ossze van kotve. (tobbfele
> > program lehet a kutyuben, es mindegyik mast hasznal)
> > De mindegyik bemenet, es csak az RX-en van felhuzo bekapcsolva.
> > Tobbi megszakitas tiltva.
> >
> > A bufferelt clockout a portb.0-n (ICP) elvileg tiltva, 1-ben all a neki
> > megfelelo fuse.
> > (0x62 a ra vonatkozo fusebyte)
> >
> > Total nem ertem.....
> >
> >
> > Arnold
> >
> >
> > -----------------------------------
> > Szponzorunk: http://tonerbolt.hu/
>
>
> _______________________________________________
> Avr-hun mailing list
> Avr-hun at x-dsl.hu
> http://www.x-dsl.hu/cgi-bin/mailman/listinfo/avr-hun
>
More information about the Elektro
mailing list