Re: 2 serielle Schnittstelle funktioniert nicht Kategorie: IDE (von PeterS - 28.04.2010 17:58) | |
Als Antwort auf 2 serielle Schnittstelle funktioniert nicht von Martin - 27.04.2010 15:56
| |
> Hallo zusammen, > > ich habe ein problem mit der 2. Seriellen Schnittstelle beim Mega 128...... > > Da mein GPS Tracker jede Sekunde einen NMEA Datensatz sendet war der irq mode für > die Seriellen Schnittstellen leider nicht zu gebrauchen.... > Der Buffer lief ständig über.... > > Im polled Mode klappt alles wunderbar auf der 1. seriellen Schnittstelle....Habe den Tracker > direkt (TTL Pegel angeschlossen) > wenn ich ihn aber an der zweiten Schnittstele anschlie�e tut sich nix..... > > Nach einem Reset des boards....liegt der rx pin der 1. schnittstelle auf high.... > der der zweiten auf low.... > > ich habe auch schon eine andere unit genommen.....das gleiche!!!! > > ist es ein Fehler im Interpreter? > > void Serial (void) > { > > Serial_Init(1,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > AbsDelay(100); > Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > AbsDelay(100); > > } > > > > > word msg_lex,msg_pc; > char msg; > char Gps_in[255],Gps_comp[10]; > int z,comp,ss; > > void serial_rd (void) > { > ss=0; > while(1) > { > z=1; > Str_Fill (Gps_in,0,255); > > while (Gps_in[0]!=36) > { > Gps_in[0]=Serial_Read(ss); > } > while(Gps_in[z-1]!=42) > { > Gps_in[z]=Serial_Read(ss); > z=z+1; > } > > Gps_in[z]=Serial_Read(ss); > z=z+1; > Gps_in[z]=Serial_Read(ss); > > if (Str_SubStr(Gps_in,"$GPGGA")!=0xffff) > { > Msg_WriteText(Gps_in); > Msg_WriteChar(13); > } > } > } > > > wenn ich also ss auf "0" setze funktioniert alles bestens. > Nur wenn ss=1 kommt fast immer nix....ab und zu mal eine Zeile, aber wenn dann nur müll! > > gru� > > Martin Kann ich mir nicht erklären. Benutzt Du auch die aktuelle IDE 2.1? Gruss Peter | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum