Ich bin neu in der Bildkommunikation mit einem PC über RS232. Ich habe den folgenden Code ausprobiert und Hyperterminal verwendet, um die Ausgabe anzuzeigen. Aber die Ausgabe wird hier und da jedes Mal verschlüsselt, wenn ich das Bild zurücksetze. Ich habe versucht, Stopbits im Hyperterminal von 1 auf 0 zu ändern, aber die Ausgabe bleibt gleich. Die Einstellungen werden auf Hyperterminal gespeichert
Ich verwende PIC16F877a und habe mit dem MPLAB XC8-Compiler codiert. Die Ausgaben befinden sich im Anhang
Kannst du mir bitte sagen wo ich den Fehler gemacht habe.
void main()
{
TRISC = 0x80;
TXSTA=0x24;
RCSTA=0x90;
SPBRG=0x81;
unsigned int i=0;
char name[]="Sample Output";
while(name[i]!='\0')
{
TXREG=name[i];
while(!TXIF);
__delay_ms(1000);
i++;
}
while(1);
}
Ich denke, Sie müssen den Transmit Shift Register Status TRMT und nicht TXIF abfragen. Bei TRMT==1 ist das Register leer und bereit, ein Byte zu übertragen.
Aber auf den zweiten Blick fällt mir auf, dass die falschen Zeichen immer um das gleiche Bit im ASCII-Code abgesetzt sind. Wenn ein Zeichen falsch ist, sollte das erste (niederwertige) Bit im ASCII-Zeichen 1 sein, aber es wird durch eine 0 ersetzt. 'S' wird zu 'R', 'O' wird zu 'N', 'u' in T'. Das scheint ein Signalintegritätsproblem über das Datenkabel zu sein.
Obwohl ich denke, dass Sie das TRMT-Bit abfragen müssen, glaube ich nicht, dass Ihr aktuelles Problem Software ist. Suchen Sie nach allem, was die Qualität der Kabelverbindung beeinträchtigen könnte.
Wladimir Cravero
0x81
Wie bist du auf die gekommenSPBRG
? Wie ist dein Mikro getaktet?Unternehmer
Schätze..
Schätze..
stobbe
Bruce Abbott
Schätze..
Bruce Abbott
Schätze..