PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Absurdes RS232 Problem 18F2320 & usart.h



PIC_Newbie
12.02.2008, 20:02
Folgendes Problem

dieser Code funktioniert wunderbar:

...
char sdata[5];

sdata[0]='C';
sdata[1]='D';
...

while(1)
{
WriteUSART(sdata[0]);
Delay1KTCYx(1);
}

Auf meinem Terminal erscheinen jede Menge C

Wenn ich aber beide Komponenten ausgeben möchte
mit folgendem Code:

...
char sdata[5];

sdata[0]='C';
sdata[1]='D';
...

while(1)
{
WriteUSART(sdata[0]);
Delay1KTCYx(1);
WriteUSART(sdata[1]);
Delay1KTCYx(1);
}

An meinem Terminal kommt nix an.
Oszi zeigt auch nichts an, aber der Chip läuft (Fosc am pin gemessen)

Das gleiche Phänomen taucht auch bei anderen Chips auf (18F1320, 18F2420)

PicNick
12.02.2008, 20:15
Da müßt' man wohl mehr wissen über die Funktionen:
WriteUSART(sdata[0]);
Delay1KTCYx(1);

Dein Sourcecode scheint ja unverdächtig

PIC_Newbie
12.02.2008, 20:32
Die Funktionen WriteUSART(char) und Delay1KTCYx(char)
sind von Microchip und funktionieren auch.

Nur die Ausgabe von zwei Bytes nacheinander (oder auch mehr)
geht nicht, und ich hab absolut keine Ahnung warum.

Die Ausgabe als String geht auch nicht.

Duke of Doom
16.02.2008, 20:51
sieht ganz nach entlosschleife aus...... Versuch vor dem Aufruf von putcUSART ein while(BusyUSART());

PIC_Newbie
17.02.2008, 22:13
Danke, hat geklappt