Gast
#1279414
Hallo,
habe versucht mit meinem Pic 18f4550 über RS232 zu senden und bekomm es
trotz vieler anleitungen und datenblätter nicht hin vielleicht kann mir
hier einer helfen!!!
Ich habe ein OLIMEX Board mit 20MHz Quartz und Programmer.
Ich kann meine uart sim. über MPLAB aber nach dem es auf dem Chip ist
nicht empfangen.
Hier mal der code:
#include <p18cxxx.h>
#pragma config FOSC = HS //Osci
#pragma config PWRT=ON //Power-up timer
#pragma config WDT=OFF //watchdogtimer
#pragma config PBADEN=ON //POTRB A/D Eingänge
#pragma config LVP=OFF // Single Supply ICSP
#pragma config ICPRT = ON //ICPORT enabled
#pragma config BOR = OFF
#define TAKT 20000000
#define BAUD 9600
unsigned char ch='a';
void InitUsart(void) {
TRISCbits.TRISC6 = 1;//RC6 als Eingang,TX senden
TRISCbits.TRISC7 = 1;//RC7 als Eingang,RX empfangen
// Für Empfang
RCSTA = 0b10010000; //Seriell ein,8Bit,dauerbetrieb
// Senden
TXSTA = 0b00100100;//8Bit,async,hohe Baudr.
SPBRG = TAKT/(16*BAUD)-1;//Taktrate aus Baudratenregister
}
void WriteByte(unsigned char byte) {
// warten bis register leer
while(!PIR1bits.TXIF);
// senden
TXREG = byte;
}
Vielleicht sieht jemand meinen Fehler... habe den rest des Programms
weggelassen weil dort nur endlos in die WriteByte funktion gesprungen
wird...
Danke
Steff