Forum: Mikrocontroller und Digitale Elektronik R232 richtig einstellen für einen Pic18


von Kay S. (mikromaster)


Lesenswert?

Hallo,

ich arbeite gerade mit dem demo board MPLAB-ICD mit einen Pic18f44k22 
Mikrocontroller darauf. Das Problem besteht darin das er gar keine 
Zeichen gesendet werden obwohl ich die in das entsprechende TEXREG 
Register schreibe.Ich muss die serielle Schnittstelle per Hand 
Programieren da er wenn ich die Vorgefertigten Include Dateien verwende 
z.B. usart.h die darin deklarierten Programmfunktionen nicht findet.
Vieleicht kann mir jemand weiter helfen und mir sagen was ich falsch 
mache.

Danke im Vorraus






#include <p18f44k22.h>
#include <stdio.h>

#pragma config FOSC = ECHPIO6, WDTEN = OFF, PBADEN = OFF, LVP = OFF, 
PWRTEN = OFF, XINST = OFF

 void UART_setup(void){

SPBRG = 20;        // Baudrate 57600 Baud  SPBRG- Berechnung  59524 = 
20000000/(16*(20+1)) = Fehlerquote unter 5%
 SPBRGH =  0;

 TXSTAbits.BRGH = 1; // high data rate for sending
 RCSTAbits.SPEN = 1; // enable serial port pins
 TXSTAbits.SYNC = 0;  // Asynchron
 TXSTAbits.TX9  = 0; // 8-bit transmission
 TXSTAbits.TXEN = 1; // enable the transmitter
 RCSTAbits.RX9 = 0;// 8-bit reception
 }

 //-----------------------------------------------------
 // writes a character to the serial port
 void putChar(unsigned char ch){

unsigned char string;

string = ch;

while(!PIR1bits.TXIF){

TXREG=string;
 }
  }

 //-----------------------------------------------------
 void main(void){

unsigned char charRx;



 TRISC = 0b10000000;



UART_setup();
 while(1){


putChar('d');

 }
 }

von holger (Gast)


Lesenswert?

>while(!PIR1bits.TXIF)
>{
>
>TXREG=string;
> }

Solange senden nicht fertig immer schön
weiter Daten in TXREG schreiben.

Vollspacke;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.