RS232 Treiber SerPortC0 und PipeFull bei XMega

Aufruf der Funktion PipeFull(RxBufferC0) liefert immer false

Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

RS232 Treiber SerPortC0 und PipeFull bei XMega

 · 
Gepostet: 24.09.2013 - 13:45 Uhr  ·  #1
Hallo die Herren,

Treiber: RS232/V24 Treiber SerportC0 (XMGEA)

Fehlerbeschreibung:
Um einen RxBuffer-Überlauf zu detektieren möchte ich die Funktion PipeFull(RxBuffer) benutzen.
Im Handbuch steht auf Seite 68 geschrieben: "Weiterhin kann die Funktion "PipeFull" auf die serielle Schnittstelle angewendet werden: Function PipeFull(RxBuffer):boolean "

Leider liefert die Funktion PipeFull(RxBufferC0) immer false (XMEGA).
ATMEGA funktioniert.

Im angeführten Testprogramm schreibe ich kontinuierlich in den RxBufferC0 ohne diesen zu leeren.
Dafür sind RXD-Pin und TXD-Pin vom XMEGA (XMEGA32A4: Pin 12 und 13) miteinander verbunden.
Mit SerStat prüfe ich auf vorhandene Daten und Toggle in diesem Fall Pin A0.
Falls Pipefull(RxBufferC0) true ist, soll Pin A1 togglen. Die geschieht jedoch nie.

Ist dies ein Bug?

Gruß

Thomas.AC

program XPipeFullTest;

{$NOSHADOW}
{ $WG} {global Warnings off}


Device = xmega32A4, VCC=3.3;
{ $BOOTRST $04000} {Reset Jump to $04000}

Define_Fuses
// Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];
FuseBits2 = [];

Import SerPortC0;

Define

OSCtype = extXTAL=8000000, PLLmul=16, prescA=1, prescB=2, prescC=2, FailDet;
StackSize = $0064, iData;
FrameSize = $0064, iData;
{USART}
SerportC0 = 9600;
TxBufferC0 = 16, iData;
RxBufferC0 = 16, iData;

Implementation

{$IDATA}
var
PA0[@PORTA,0] : bit;
PA1[@PORTA,1] : bit;

begin
DDRA := $FF; // set outputs
EnableInts($87);
loop
SerOutC0($AA);
if SerStatC0 then
TOGGLE(PA0);
endif;
if (PipeFull(RxBufferC0)) then
TOGGLE(PA1);
endif;
endloop;
end XPipeFullTest.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: RS232 Treiber SerPortC0 und PipeFull bei XMega

 · 
Gepostet: 24.09.2013 - 14:01 Uhr  ·  #2
Hallo Thomas,

danke für diese Info. Bug ist jetzt raus.
AVRco update am Wochenende.

rolf
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   51   65 · Page-Gen-Time: 0.023207s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI