Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Aaalso...... > > Tatsache ist, dass das SYSTEM-Modul TWB.C2 einen Fehler hat. > Es liefert manchmal die ID=1 zurück, obwohl das Modem einen Fehler mit ID=0 > signalisiert. > Das kann man leicht umgehen, betrifft aber nur unseren Treiber, da TWBS.C2 den > Modemstatus nicht auswertet und ist auch nicht Ursache deiner Probleme. > > in der function:process_frame() > > if (header == 0){status= 2;} ersetzen durch: if (header and 0x00FF)!=0xFF {status=2;} > ------------------------------------------------------------------------------------------------------------------------------------- > > > Bei dir ist der Bus offensichtlich zeitweise so stark gestört ist, dass > praktisch jedes Bit kippt und die Fehlererkennung nicht mehr greift, > also auch zerstörte Frames für gut befunden werden. > > Ich habe hier einen Test gemacht (einen Elektromotor am Bus) und das Ergebnis > ist wirklich übel aber bei dieser Bitfehlerrate nicht verwunderlich. > > In diesem Fall hilft es nur, generell jeden Sensor sooft abzufragen bis von den letzten 3 Frames > 2 komplett ( !! ) übereinstimmen. > Ich werde das in unseren Treiber implementieren. > ----------------------------------------------------------------------------------------------------------------------- > Ich würde dir aber mal empfehlen das Testprogramm laufen zu lassen. > es nutzt die Statusabfrage des Modems (es wird dabei kein Sensor angesprochen) > und zeigt wieviele Störungen, jeweils innerhalb 2ms gemessen, am Bus liegen. > du kannst es um eine Alarmfunktion, Min/Max Speicher u.ä. erweitern. > Vielleicht bekommst du raus was die Ursache ist. > ---------------------------------------------------------------------------------------------------------------------- > loop > { > str.clear(frame);str.putchar(frame,0);str.putchar(frame,0); > str.putchar(frame,0);str.putchar(frame,0); > str.putchar(frame,0);str.putchar(frame,0); > str.putchar(frame,0);str.putchar(frame,0); > twb.io(frame); > if (mem.getint(frame,4)and 0x00FF)!=0 > { > s="NOISE ";str.putint(s,mem.getint(frame,4)and 0x00FF); > station_lcd.clear();station_lcd.print(s);sleep 100; > } > > } > > > > > >