Hallo zusammen,
ich bin grad dabei einen PIC18F µC von Microchip über MPLAB X zu
programmieren. Soweit so gut, dies klappt mit dem pickit3 alles
wunderbar bisher.
Nun möchte ich mein kleines Projekt mit einem WLAN Modul erweitern. Hier
wollte ich eigentlich auch auf microchip zurück greifen, allerdings
bestanden überall lieferschwierigkeiten.
Weshalb ich bei dem kleinen und günstigen ESP8266 gelandet bin. Nun habe
ich diesen und dieser soll über UART mit dem PIC kommunizieren.
Jetzt stehe ich allerdings vor dem Problem das ich nicht so recht weiß
wie ich den ESP8266 mit dem pickit3 ansprechen soll bzw. diesen
einrichte.
Kann mir hier jemand einen Tipp geben wie ich nun am besten vorgehe?
Gruß und Danke schon einmal
> Weshalb ich bei dem kleinen und günstigen ESP8266 gelandet bin.
Sicher hast du nicht nur einen ESP822Chip vorliegen, sondern ein ganzes
Modul dass auch einen Namen hat.
Zum den ESP8266 basierten Modulen findest du im Internet reichlich
Bastelanleitungen.
Für das ESP-01 Modul brauchts du ein Netzteil und einen 3,3V
Spannungsregler, die für mindestens 500mA ausgelegt sind. Denn so viel
braucht das Ding zeitweise. Es hat sich bewährt, dem ESP Modul einen
eigenen Spannungsregler vom Typ LF33CV zu spendieren und ganz nahe zum
Modul einen zusätzlichen 100µF (oder 220µF) Elko an VCC und GND.
Die seriellen Leitungen RxD und TxD verbindest du mit dem PIC, der
idealerweise auch mit 3,3V betrieben wird.
Wenn er PIC mit 3,3V betrieben wird, dann müssen alle Leitungen, die vom
PIC zum ESP Chip gehen, einen Pegelwandler enthalten. Die umgekehrte
Richtung (vom ESP zum OIC) kann direkt verbunden sein.
Bis zu 115200 eigent sich ein simpler Spannungsteiler als Pegelwandler:
1
1,5k
2
5V Tx o---[===]----+------o Rx ESP
3
|
4
|~|
5
|_| 2,2k
6
|
7
GND o--------------+------o GND
8
9
Rx o---------------------o Tx
Auf der Webseite von Espressiv findest du ein PDF mit dem
AT-Befehlssatz. Du solltest das Modul erstmal über einen USB-UART
Adapter mit dem PC verbinden und dich mit dem AT-Befehlssatz und den
Eigenarten des Moduls vertraut machen.
Stefan U. schrieb:> Wenn der PIC [NICHT] mit 3,3V betrieben wird, dann müssen alle Leitungen,> die vom PIC zum ESP Chip gehen, einen Pegelwandler enthalten. Die> umgekehrte Richtung (vom ESP zum OIC) kann direkt verbunden sein.
Sicher, dass das mit dem direkt verbinden funktioniert? Bei mir gab das
immer Probleme wenn der PIC 5 Volt Versorgung hat und die Signale mit
3,..V ankommen. Der PIC18 RX Pin hat Schmidt-Trigger Logik und der Pegel
soll laut Datenblatt >= 0.8*Vdd also mindestens 4V haben...
Jens schrieb:> Jetzt stehe ich allerdings vor dem Problem das ich nicht so recht weiß> wie ich den ESP8266 mit dem pickit3 ansprechen soll bzw. diesen> einrichte.
Stefan hat es nicht explizit erwähnt, aber der ESP hat mit dem PICkit
gar nichts zu tun. (nur mit dem PIC, bzw. dessen Firmware)
Oh ja, ich habe das Wort NICHT vergessen.
Die Signale vom PIC müssen durch den Spannungsteiler auf 3,3V
herabgesetzt werden.
Anders herum:
> Der PIC18 RX Pin hat Schmitt-Trigger Logik ...> laut Datenblatt >= 0.8*Vdd
Hmm, das habe ich übersehen.
Dann muss man da wohl doch einen "richtigen" Pegelwandler einfügen. Das
ist ja blöd.
Hmm, danke erstmal für die Aufklärung und ja es ist nen ESP-01 Modul :D
Den PIC betreibe ich aktuell mit 3,3V.
Die Lösung mit dem Pegelwandler gefällt mir nicht so recht, nun bin ich
am überlegen evtl. doch auf ein Wifi-modul von Microchip (wie auch der
PIC) zu kaufen und es damit umzusetzen, da ich vermute das ich mir
hiermit dann evtl. auch ein wenig arbeit erspare.
Was meint ihr?
Gruß
Ja gut, dennoch weis ich noch nicht wie ich nun das ESP-01 Modul
anspreche bzw einrichte, da ich ja nach wie vr nur den pickit3 als
programmer habe :/ . Ich find im Netz irgendwie nur Beispiele mit nem
Arduino/Atmel µC.
Auf deinem esp8266 modul ist mehr als nur ein wlan-chip vorhanden, da
ist ein ganzer mikrocontroller oben und noch viel mehr.
Wie du das handlest hängt davon ab wie komplex deine Anwendung ist,
erklär das mal ein bisschen dann helf ich dir im Detail weiter.
Mit der Standardfirmware kannst du dem modul über uart solche
AT-Befehle senden, die das Modul konfigurieren.
Wenn du diese AT-Befehle nicht verwenden willst bzw. etwas komplexeres
vor hast, ist im Moment die beste Vorgehensweise, dass du dir die
Arduino IDE mit esp-Erweiterung runterlädst, siehe z.b hier:
https://arduino-hannover.de/2015/04/08/arduino-ide-mit-dem-esp8266/
Dann kannst du über usb auf rs232/uart den mikrocontroller am modul ganz
normal in c programmieren.
Wenn du eine Standardanwendung hast brauchst du gar keinen externen PIC,
das modul ist mit glaub 80 MHz getaktet dass ist eigtl. recht schnell.
Jens schrieb:> Was mit nun auch aufgefallen ist, das mein PIC18F26K22 kein TX/RX hat :(
Nein du hast nicht 1x Tx/Rx sondern sogar 2 EUSART-Module auf dem Chip.
Schon mal ins Datenblatt geschaut?
Also kurz zu dem worauf es eigentlich hinauslaufen soll am ende.
Über eine Weboberfläche soll mittels eines Button etwas geschaltet
werden, für den reinen Anfang nehm ich hier eine LED.
Diese LED kann ich aktuell über einen Taster an und aus Schalten. Das
ganze hab ich mit MPLAB X über den Pickit3 auf den µC geschoben und der
pickit3 versorgt den µC auch komplett mit spannung zur Zeit.
Nun soll an meinen PIC18F26K22 das ESP Modul gehangen (erste Überlegung
war kommunikation via UART), dieses habe ich vor dann einzurichten und
ins WLAN zu hängen und dann vom PC aus zu steuern.
Bin im moment wirklich über jede Hilfe dankbar.
http://www.ebay.de/itm/172346314000?_trk...EBIDX%3AIT
Kauf dir das Ding und du bist deine Sorgen los.
Steuere meinen Roboter damit.
Brauchst nur noch RX und TX zum Micro.
Für RX ESP brauchts du den simplen Spannungsteiler und TX läuft bei dir
auch mit 3,3 Volt.
Gruss
peter schrieb:> Ebay-Artikel Nr. 172346314000> Kauf dir das Ding und du bist deine Sorgen los.
Das Hilft mir leider wenig.
Hintergrund, es existiert ein PIC welcher zur Zeit mittels Bluetooth
ansteuert wird um etwas zu schalten. Nun hab ich die Aufgabe das
vorhandene eben mit WLAN zu erweitern.
Jens schrieb:> Über eine Weboberfläche soll mittels eines Button etwas geschaltet> werden, für den reinen Anfang nehm ich hier eine LED.
Also erstmal zum ESP8266 ESP-01: Die darauf enthaltene Firmware kannst
Du mit AT-Befehlen steuern. Dokumentation dazu gibts im Internet zuhauf.
Dabei arbeiten bzw. reagieren diese Module je nach Firmware-Version
anders, da mit jeder Version bestimmte Befehle geändert, erneuert,
ersetzt, gestrichen wurden. Auf deutsch: Die Firmware ist einfach
scheiße und Du kannst Dich auf das Verhalten mit dem Modul X nicht
verlassen. Willst Du in einem halben Jahr Dein "Gerät" nochmal bauen und
Du kaufst Dir wieder einen ESP8266 ESP-01, ist da eine ganz andere
Software drauf und Du wunderst Dich, dass dieses Ding nicht mehr so
arbeitet wie beim ersten Mal.
Fazit:
Es muss eine eigene Firmware für den ESP8266 her. Da die ESP8266-Module
sehr üppig mit Ressourcen wie Flash und RAM ausgestattet ist, kommt
natürlich der Gedanke: "Wenn ich den ESP8266 schon mit eigener SW
ausstatten muss, warum brauche ich dann noch den PIC?!?". Genau! Also
weg damit.
Die eine LED kannst Du locker mit dem ESP8266 ESP-01 direkt bedienen.
Wenn Du mehr I/Os brauchst, nimmst Du halt den ESP-12F. Den gibts bei
Watterott für eine Handvoll Euro und Du hast ihn nach 2 Tagen.
Wenn Du nun aber meinst: "Ich will aber einen PIC!", dann schreibe ein
eine Firmware für den ESP und ein eigenes Kommunikationsprotoll, damit
Du mit dem PIC Befehle an den ESP-01 schicken kannst. Vielleicht hast Du
dann Deine LED in einem halben Jahr am Leuchten.
Möglicherweise kann er aber auch damit leben, dass in Zukunft verkaufte
ESP-01 Module einen anderen Befehlssatz haben.
Für ein einzelnes Produkt in Handarbeit würde ich mir einfach eins
Ersatzteil auf Vorrat legen und gut ist.
--------------------
Das Hilft mir leider wenig.
--------------------
Der ist doch für WLAN.
Du hast kein Ärger mehr mit dem Flashen , geht einfach über MIni-USB ,
hast kein Spannungszusammenbruch , kannst da 7-20 Volt anschliessen....
für so eine Anwendung eines Webservers mit dem man eine Led toggeln kann
gibt es sogar von arduino ein fertiges demoprogramm für das esp-modul.
Schau dir das was ich vorher gepostet habe einfach mal an, mit dem geht
das wirklich am einfachsten da brauchst da um vieles keine Gedanken
machen.
Erste Schritte für den AT-Befehlssatz des ESP-01 oder ESP-12 Moduls:
Verbinde das Modul mit einem PC und starte dort ein Terminalprogramm
(z.B. Hammer Terminal).
Finde mit dem "AT" Befehl heraus, welche Baudrate das Modul hat. Im
Erfolgsfall antwortet es mit "OK".
Versuche 115200, 57600 und 9600 Baud, 8 Datenbits, ein Stopbit, keine
Parität, keine Flußkontrolle. Bei den meisten Firmware Versionen müssen
Zeilen mit CR+LF abgeschlossen werden. Es gibt aber auch ein paar uralte
Module im Umlauf, wo es nur ein CR sein darf.
Falls die baudrate 9600 ist, versuche sie zu erhöhen. Je nach Firmware
Version sollte das mit einem der folgenden Befehle gehen:
AT+UART_DEF=115200,8,1,0,0
AT+UART=115200,8,1,0,0
AT+CIOBAUD=115200
AT+IPR=115200
Konfiguriere die WLAN Verbindung:
AT+CWMODE=1
AT+RST
AT+CWJAP="MyWlanSSID","password"
AT+CIFSR
Der letzte Befehl sollte die IP-Adresse melden, die das Modul vom DHCP
Service deines WLAN Routers erhalten hat. Die WLAN Einstellungen werden
sofort dauerhaft gespeichert und gelten automatisch beim nächsten
Neustart.
Starte den IP-Server auf dem WLAN Modul:
AT+CIPMUX=1
AT+CIPSERVER=1,23 (23 ist eine beliebige Portnummer)
Diese beiden Befehle musst du nach jedem Neustart erneut absetzen.
Baue eine Netzwerk-Verbindung zum Modul auf (zum Testen empfehle ich das
Programm Netcat). Dazu brauchst du dessen IP Adresse und die gerade
eingestellte Portnummer. Befehl: nc 192.168.2.123 23
Das Modul meldet dann im seriellen Terminal, dass es eine neue
Verbindung angenommen hat. Wenn du nun über Netzwerk (mit Netcat) etwas
an das WLAN Modul sendest, wirst du am seriellen Port (in Hammer
Terminal) eine entsprechende Meldung sehen. Für jedes empfangene Paket
wird eine Verbindungnummer, die Anzahl der Bytes und die Empfangenen
Bytes erscheinen.
Wenn du Daten vom seriellen Port (Mikrocontroller) an eine
Netzwerkverbindung senden willst, gib das ein:
AT+CIPSEND=<Verbindungsnummer>,<Anzahl-Bytes>
Datenbytes
Also zum Beispiel:
AT+CIPSEND=1,5
Hallo
Hier musst du die Nummer der Verbindung eingeben, die das Modul gemeldet
hat, als es die Netzwerk-Verbindung angenommen hat. Nach der Anzahl der
Bytes kommt ein Zeilenumbruch, dann die Nutzdaten (ohne abschließenden
Zeilenumbruch).
Alle ESP Firmware Versionen können 1024 Bytes am Stück senden, manche
können auch etwas mehr. Mit 1024 Bytes bist du jedoch auf der sicheren
Seite.
Diese Befehle funktionieren soweit ich weiß mit allen Versionen der
AT-Firmware, die bisher im Umlauf waren.
Zum Firmware-Upgrade: Beachte dass halbwegs aktuelle Firmware Versionen
einen Programmspeicher-Chip mit 8Mbit oder mehr voraussetzen. Es werden
aber immer noch ESP-01 Module mit nur 4Mbit verkauft (erkennt man am
Aufdruck mit Ziffer 4 oder 8).
Wenn du mit der vorhandenen Firmware klar kommst, dann bleibe dabei.
Firmware Upgrades sind ein bisschen riskant.
So
Kommunikation mit den AT befehlen hat super geklappt.
Hab mir nun noch einen FT232 besorgt und damit einiges hinbekommen.
Jetzt kann ich über eine Website eine LED an bzw. aus Schalten, noch
dazu kann ich seriell mit ner baudrate von 9600 die signale an bzw aus
empfangen.
Soweit so gut, nun aber will ich den PIC wieder ins spiel bringen,
dieser hat mehrere LEDs (rein zum test) und diese möchte ich nun über
UART ansprechen. Zumbeispiel mit den Zeichenkette LED1AN bzw. LED1AUS
Nun tuhe ich mich wieder schwer diesen einzubringen. In der Theorie
brauch ich nur die TX (am ESP) und die RX (am PIC) Leitung anschließen
da der PIC keine Rücksignale sendet.
Hat jemand eine gute Quelle wo gut erklärt wird, wie ich die UART
Kommunikation am PIC aktiviere?
Hat auf jeden fall schon mal ein paar erkenntnisse gebracht.
nun hab ich ein Problem was ich mir nicht erklären kann bei dem pic
Also er hat gearbeitet wie er soll und von jetzt auf gleich ohne das ich
was gemacht hat er seine arbeit eingestellt.
Ich kann neue files drauf laden aber er macht einfach garnichts mehr
Ich hab es auch mit nen ganz simplen programm was nur eine LED blinken
lassen soll versucht, macht einfach nicht mehr :(
Hat der nun aufgegeben? kann ich das irgendwie prüfen?
Jens schrieb:> Hat der nun aufgegeben? kann ich das irgendwie prüfen?
Benutzt du das PICkit3 als Debugger oder nur als Programmiergerät?
(Wenn bisher nur als Programmiergerät, dann würde ich empfehlen den
Blindflug zu beenden...)
Jens schrieb:> Das Hilft mir leider wenig.> Hintergrund, es existiert ein PIC welcher zur Zeit mittels Bluetooth> ansteuert wird um etwas zu schalten.
Dann nimm einen IO-Pin von deinem PIC, verbinde den mit einem IO-Pin vom
ESP8266 und du hast die Vorgabe "Steuerung über PIC" erfüllt ;-)
Da muss man mal flexibel sein.
Nach ner kleinen pause habe ich nun weiter gemacht.
Nachdem es mit dem PIC18F26K22 mit der UART initialisierung überhaupt
nicht klappen wollte, hab ich mit einen PIC18F4550 geliehen.
Nun zum bisherigen Stand. Ich habe den ESP8266 (ESP-01) mit der Arduino
IDE programmiert.
Hier sende ich mit einer Baut von 9600 die signale mit dem ESP
1
Serial.begin(9600);
2
Serial.println("Test");
Diese kann ich auch schon mit dem FTDI und HTerm schon mitlesen.
Nun bekomm ich es auf dem PIC aber nicht so recht gebacken.
Hier der Code dazu.
1
voidinit_uart(void)
2
{
3
unsignedcharconfig=0;
4
unsignedintspbrg=51;// 51 laut DBlatt bei 8Mhz
5
6
TRISCbits.RC6=0;//UART transmitter pin is set as output
7
TRISCbits.RC7=1;//UART receiver pin is set as input
8
9
10
config=USART_TX_INT_OFF&// Transmit Interrupt OFF
11
USART_RX_INT_ON&// Receive Interrupt ON
12
USART_ASYNCH_MODE&// Asynchronous Mode
13
USART_EIGHT_BIT&// 8-bit Transmit/Receive
14
// USART_CONT_RX & // Continuous Reception
15
USART_BRGH_HIGH;// High Baud Rate
16
//(64E6 / 9600 / 16 - 1)); // Baud Rate 9600 // wird über spbrg bestimmt
17
18
//Call the uart constructor from usart.h
19
OpenUSART(config,spbrg);
20
21
INTCONbits.GIE=1;//Global Interrupt Enable Bit
22
INTCONbits.PEIE=1;//Peripheral Interrupt Enable Bit
23
24
//IPR1: Peripheral interrupt priority register
25
IPR1bits.RCIP=0;//Receive interrupt priority bit is low
26
IPR1bits.TXIP=0;//Transmit interrupt priority bit is low
27
28
//PIE1: Peripheral interrupt enable register
29
PIE1bits.RCIE=1;//Enable the UART receive interrupt
30
PIE1bits.TXIE=1;
31
32
//TXSTAbits.TXEN = 1; //Enable the Transmit Enable Bit
33
RCSTAbits.CREN=1;//Enable the Receive Enable Bit
34
35
//Pin hardware high
36
//TRISDbits.TRISD0 = 0; //Activate hardware pin as output pin
37
//LATDbits.LATD0 = 1; //Set hardware pin as output
38
39
//Pin software high
40
//TRISDbits.TRISD1 = 0; //Activate software pin as output pin
41
//LATDbits.LATD1 = 1; //Set software pin as output
42
}
Meine Main
1
voidmain(void)
2
{
3
OSCCONbits.IRCF=0b11111111;//fuer pic18f4550 mit 8MHz laut DB
4
TRISB=0x00;//PORTB als Ausgang
5
init_uart();
6
PIR1bits.RCIF=0;
7
charinput;
8
while(1)
9
{
10
if(PIR1bits.RCIF==1)// Prüft ob etwas ins register geschrieben wurde
11
{
12
input=RCREG;
13
}
14
for(inti=0;i<50;i++)
15
{
16
__delay_ms(20);
17
}
18
}
Nun die Frage, mach ich grundlegend etwas falsch auf dem PIC?
Ich will in erster Linie erstmal wissen was am PIC überhaupt ankommt und
mein gedanke war deshalb, dass ich das was empfangen wird in die
variable input schreibe und dann mit das empfangene ansehe (im debug
modus).
Leider springt er nicht mal in die if da scheinbar nichts ankommt?!?
Lass den TX IR besser mal weg für den Anfang! (oder für immer)
Der ist ja IMMER aktiv, wenn gesendet werden könnte.
Solange noch keine IR Behandlungs-Routine vorhanden ist,
darf man auch ÜBERHAUPT KEINE IR aktivieren!
<edit> Sicher, dass man den TX Pin als Ausgang konfigurieren sollte?
Das USART Modul vom 25K22 sollte sich eigentlich nicht vom 2550er
unterscheiden. </edit>
<edit2>
Jens schrieb:> Leider springt er nicht mal in die if da scheinbar nichts ankommt?!?
Du hast doch ein PICkit. Warum benutzt du das nicht um nach zu schauen
was das Programm gerade so treibt?
<edit3>
Da sind einige primitive USART Code-Beispiele ->
http://picforum.ric323.com/viewtopic.php?p=449#p449
Und da, noch mal mit Erläuterungen
http://www.hs-ulm.de/users/vschilli/Mikrocontroller/uCQ/_downloads/uCquick-X.pdf
(Kapitel 10.1)
Die PDF ist gut, diese wurde mir oben schon verlinkt. Hab mir dies auch
durchgelesen.
Die von dem picforum kannte ich noch nicht, allerdings sehe ich auch
hier keinen wirklichen unterschied zu meiner config
Prüfe nun noch auf
1
RCSTAbits.FERR
2
RCSTAbits.OERR
aber auch hier kein wirklicher erfolg zu verzeichnen :/
Jens schrieb:> allerdings sehe ich auch hier keinen wirklichen> unterschied zu meiner config
Es werden keine IR aktiviert, die nicht behandelt werden?
Der TX Pin wird nicht als Ausgang konfiguriert?
Es wird nicht die OpenUSART() Funktion verwendet
und dann nochmals CREN gesetzt?
...
Das ganze Interrupt Zeug auch raus genommen?
Was passiert, wenn du komplett mein Beispiel verwendest?
Am besten das, welches nicht OpenUSART() verwendet, sondern die Register
direkt setzt.
(Bei der Verwendung der Funktionen muss man eigentlich wissen, ob das
Macro USE_OR_MASK gesetzt ist. Dann muss man die Konfigurationsmasken
ver-odern)
1
/* Configuration bit masks to be 'anded' together and passed as the 'config'
2
* parameter to the 'open' routine. */
3
//-----------AND OR MASK-------------------------------------------------
4
#ifndef USE_OR_MASKS
5
6
#define USART_TX_INT_ON 0b11111111 // Transmit interrupt on
7
#define USART_TX_INT_OFF 0b01111111 // Transmit interrupt off
Alle ;-)
Also das Beispiel eins weiter oben war nur zur Verdeutlichung von
OR_MASK vs. AND_MASK.
Das Folgende must du löschen/aukommentieren bis du einen IR-Handler
geschrieben hast:
1
INTCONbits.GIE=1;//Global Interrupt Enable Bit
2
INTCONbits.PEIE=1;//Peripheral Interrupt Enable Bit
3
4
//IPR1: Peripheral interrupt priority register
5
IPR1bits.RCIP=0;//Receive interrupt priority bit is low
6
IPR1bits.TXIP=0;//Transmit interrupt priority bit is low
7
8
//PIE1: Peripheral interrupt enable register
9
PIE1bits.RCIE=1;//Enable the UART receive interrupt
So funktioniert es nun, das er auf 'DataRdyUSART' reagiert und in die if
bedingung geht
RCREG soll dann in den char input schreiben, hier steht bisher nur ['ÿ';
0xff]. HIer vermute ich nun das ich bei der Baurate etwas falsch gemacht
habe :/
Nun bin ich soweit das ich endlich auch die zeichen empfange die ich
sende, problem hierbei ist nun das ich nur die ersten beiden Zeichen
bekomme, ich verstehe aber nicht weshalb.
einlesen tu ich so
Nun bekomme ich all das was ich empfangen will und bin soweit zufrieden.
Allerdings hängt ich nun an einem weiteren Problem.
Die erste Auswertung klappt, anschließend nichts mehr :/
Es wird jeweils 2ON bzw 2OF gesendet (wird später erweitert)
Wenn ich starte dann wird zB 2ON wird dieses ausgewertet und die LED
angeschaltet, im buffer steht trotz null setzen "\r\0\0" danach drin (im
debug modus gesehen)
wenn ich im debug reset mache dann wird auch der buffer(array) komplett
"\0\0\0" gesetzt
dann geht wieder genau das gleiche von vorne los :(
den buffer größer wählen, damit dieser das \r noch aufnimmt hat mir auch
nichts gebracht
mir fehlt nun der richtige ansatz, wie ich weiter vorgehen soll...
hier mein code aktuell
1
#define _XTAL_FREQ 8000000 // FOSC 8MHz
2
#define BufferRXSize 3//Maximum of one uart receive message
3
4
unsignedcharUartRXBuffer[BufferRXSize];
5
intPositionRX=0;
6
7
8
/*
9
* Die Main
10
*/
11
//int main(int argc, char** argv)
12
voidmain(void)
13
{
14
OSCCON=0xFF;
15
unsignedcharinput;
16
init_uart();
17
LATB=0x00;// 0 in PortB schreiben
18
TRISB=0x00;// PORTB as Output
19
inti,j;
20
while(1)
21
{
22
if(DataRdyUSART())
23
{
24
if(PositionRX<BufferRXSize)
25
26
{
27
UartRXBuffer[PositionRX++]=RCREG;// schreib zeicheen für zeichen ins array
28
29
PIR1bits.RCIF=0;
30
RCREG=0;// fall im RCREG noch was vorhanden, dann leeren