INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > Hallo, > > ich habe das problem das mein Controller entweder Komplett aussteigt oder er schreibt über die RS232 volgendes: CBASIC VERSION 2.0 (10.6.04) oder er gibt die eingegangen daten einfach iweder aus! > > wenn ich ihm folgende daten an die RS232 schicke: > > > > $GPRMC,182825.002,A,4817.4422,N,01128.7676,E,000.0,000.0,030706,001.7,E*6A > > $GPGGA,182826.002,4817.4422,N,01128.7676,E,1,04,02.8,00456.3,M,46.4,M,,*65 > > $GPGSA,A,3,14,05,,,30,,,09,,,,,05.3,02.8,04.5*05 > > $GPGSV,2,1,08,14,31,309,33,05,71,273,42,17,10,053,,26,07,165,*7C > > > > > > bin für jede hilfe dankbar! > > > > Michi > > Das dazugehörende Programm wäre jetzt schon hilfreich..... > > mfg > bitteschön: Dim temp As Byte Dim logLED As Boolean Port [1,4] Dim testLED As Boolean Port [1,5] Dim satLED As Boolean Port [1,6] Dim akkuLED As Boolean Port [1,7] Dim battpower As Boolean Port [1,8] Dim rs232switch As Boolean Port [2,6] Dim HexA,HexB As Byte Dim breiteA,breiteB,breiteC,breiteD As Byte Dim langA,langB,langC,langD As Byte Dim GPSsignal As Boolean Dim GPSsat As Byte Dim loginterval, logcounter As Byte '$INCLUDE "boot.xml" 'rs232switch=1 loginterval = 3 logLED = 0 testLED = 0 logLED = 1 logLED = 0 waitforhandshake do Call pufferleeren 'call anz_satinfo Call pufferleeren 'If logcounter >= loginterval Then Call logging 'End If 'call akkucheck loop Do If InStat <> 0 Then temp = inkey$ End If Loop Until temp =36 '$ afterhandshake temp = InKey$ :If temp <> 71 Then return :End If 'G temp = inkey$ :If temp <> 80 Then return :End If 'P temp = inkey$ :If temp <> 71 Then return :End If 'G temp = inkey$ :If temp <> 71 Then return :End If 'G temp = inkey$ :If temp <> 65 Then return :End If 'A Print "Datensatz Start" testLED = 1 Do Loop Until inkey$ = 44 Do Loop Until inkey$ = 44 HexA = inKey$-48 HexB = inkey$-48 breiteA = (HexA*10)+HexB HexA =inkey$-48 HexB =inkey$-48 breiteB = (HexA*10)+HexB temp = inkey$ ' Empfängt "." HexA =inkey$-48 HexB =inkey$-48 breiteC = (HexA*10)+HexB HexA =inkey$-48 HexB =inkey$-48 breiteD = (HexA*10)+HexB Do Loop Until inkey$ = 44 temp =inkey$ Do Loop Until inkey$ = 44 HexA = inKey$-48 'grad HexB = inkey$-48 'grad temp = inkey$-48 'grad langA = (HexA*100)+(HexB*10)+temp HexA =inkey$-48 'min HexB =inkey$-48 'min langB = (HexA*10)+HexB temp = inkey$ 'komma HexA =inkey$-48 'dezmin HexB =inkey$-48 'dezmin langC = (HexA*10)+HexB HexA =inkey$-48 'dezmin HexB =inkey$-48 'dezmin langD = (HexA*10)+HexB 'dezmin Do Loop Until inkey$ = 44 Do Loop Until inkey$ = 44 If inkey$-48 > 0 Then GPSsignal = 1 logcounter = logcounter + 1 Else GPSsignal = 0 End If temp = inkey$ 'Print GPSsignal hexA= inkey$-48 hexB= inkey$-48 GPSsat=(HexA*10)+HexB 'print gpssat Do temp = inkey$ Loop Until temp = 13 Or temp = 10 testLED = 0 print "datensatz ende" Return 'GoTo waitforhandshake Sub pufferleeren do If InStat <> 0 Then temp = inkey$ If temp = 36 Then GoSub afterhandshake End If Print "FIFO geleert" End If Loop Until InStat = 0 End Sub Sub anz_satinfo If GPSsignal = -1 Then For temp = 1 To GPSsat satLED = 1 Pause 1 satled = 0 Pause 1 Next Pause 5 End If end sub Sub logging 'Ansteuerung eines I2C EEPEROM logcounter=0 logLED = 1 Pause 1 logLED = 0 End Sub Sub akkucheck If battpower = 0 Then akkuLED = 1 Pause 1 akkuLED = 0 pause 5 else akkuLED = 1 end if End Sub |
Antwort schreiben |