#include <xc.h> // wegen MPLABX
#pragma config FOSC = INTOSCCLK // Oscillator Selection bits (INTOSC oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select bit
//(MCLR pin function is MCLR)
#pragma config CP = OFF // Code Protection bit
//(Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit
//(Data memory code protection is disabled)
#pragma config BOREN = OFF // Brown Out Detect (BOR disabled)
#pragma config IESO = OFF // Internal External Switchover bit
//(Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit
//(Fail-Safe Clock Monitor is disabled)
#define _XTAL_FREQ 8000000 // to calibrate __delay_us() and __delay_ms()
void main(void)
{
ANSEL = 0; // alle Pins mit analog Option gehen so auf i/o
TRISC = 0b00110000; // RC4 und RC5 müssen input sein wegen UART
PORTC = 0;
OSCCON = 0b01110000; // 8MHz interne Oszi-Frequenz
BRG16 = 1;
BRGH = 1;
SPBRG = 16; // Baud-Rate 115200
CREN = 1; // schaltet RX ein
TXEN = 1; // diese 3 Werte schalten
SYNC = 0; // den Sender
SPEN = 1; // ein
unsigned char zeichen =0x6c ;
for(int i=0;i<4;i++) // nach dem Einschalten 4 Blinks als Lebenszeichen
{
RC3 = 0;
__delay_ms(200);
RC3 = 1;
__delay_ms(200);
} // Ende 4 Blinks
while (1){
if(RCIF) // Flag (Fähnchen) zeigt an: „Es wurde was empfangen“
zeichen = RCREG; // RCREG enthält das empfangene BYTE
SPEN = 0;
SPEN = 1;// Haupt-aus-ein soll Errors löschen
if (zeichen == 0x61)
RC3 = 1; // kleines a schaltet von Dauerlicht auf Blinklicht
__delay_ms(600);
RC3 = 0;
__delay_ms(600);
}
}