Hallo Zusammen,
hat jemand eine Vorstellung, wie ich eine Software Crash am PC an meinem HW erkennen kann und diese dann abschalte?
Ich habe einen Timer1 eingebaut und diese immer per PING zu einem Bestimmten Zeit vom PC zum HW gesendet und jedes Mal den Timer1 dann zurück gesetzt.
Alles anzeigen
Nun aber wenn ich den Timer für 8sec. einstelle und dann alle 8 sec. vom PC einen Ping sende, bleibt in der Zeit mein Do...Loop Schleife irgendwie stehen.
Wer hat da einen Rat?
VG
Katip
hat jemand eine Vorstellung, wie ich eine Software Crash am PC an meinem HW erkennen kann und diese dann abschalte?
Ich habe einen Timer1 eingebaut und diese immer per PING zu einem Bestimmten Zeit vom PC zum HW gesendet und jedes Mal den Timer1 dann zurück gesetzt.
BASCOM-Quellcode
- $regfile = "usb162.dat"
- $crystal = 8000000
- '$baud = 19200
- $hwstack = 64
- $swstack = 86
- $framesize = 86
- '-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Config für den TimeOut Orange LED
- Config Portd.4 = Output
- Timeoutled Alias Portd.4
- Timeoutled = 1
- '-------------------------------------------------- WATCHDOG ZÄHLER FÜR DEN TIMEOUT ------------------------------------------
- Config Timer1 = Timer , Prescale = 1024 'Timer konfigurieren
- On Timer1 Timerroutine 'Timerinterrupt Subroutine zuweisen
- Enable Timer1 'Timer aktivieren
- Enable Interrupts
- Stop Timer1
- Dim Isttimeraktiviert As Byte
- '################################################### WENN TIMEOUT AUSLÖST ##########################################################################
- Timerroutine:
- Config Timer1 = Timer , Prescale = 256 'Wenn Timeout auslöst:
- Timer1 = 59286 'Timer auf neuen Startwert 210ms einstellen
- Toggle Timeoutled 'Orange LED blinken lassen
- Wert1 = -1
- Hc595_reset = 0 'Ausgänge werden geresettet
- Hc595_reset = 1 'Und zum Widereinschalten freigegeben
- Portb.7 = 1 'Hier wird der G PIN von den 74HC595'er auf 1 gesetzt, damit alle Kanäle ausgeschaltet werden.
- Timeout_ausgeloest = 1 'Bei dieses Gerät hat der Timeout ausgelöst, da wird einfach die Adresse gesendet
- Return
- '################################################ ENDE TIMEOUT AUSLÖSUNG ############################################################################
- DO
- '---------------------------------TIMEOUT ZEIT INTERVAL SETZEN----------------------------------------------
- If Wert1 = Deviceadresse Then 'Wenn die Adresse nicht abgefragt wird, wird dann beim Aktivieren der Timeout für einen Gerät, alle aktiviert.
- If Wert14 = 1 Then 'Timeout Interval Änderung erlauben
- Wert14 = 0 'Dann wieder auf null setzen für das nächste Mal
- Config Timer1 = Timer , Prescale = 1024
- Select Case Wert13
- Case 0 : Timerwert = 53036 'Timer auf 1.6s setzen
- Case 1 : Timerwert = 46005 'Timer auf 2.5s. setzen
- Case 2 : Timerwert = 38192 'Timer auf 3.5s. setzen
- Case 3 : Timerwert = 30380 'Timer auf 4.5s. setzen
- Case 4 : Timerwert = 22567 'Timer auf 5.5s. setzen
- Case 5 : Timerwert = 14755 'Timer auf 6.5s. setzen
- Case 6 : Timerwert = 6942 'Timer auf 7.5s. setzen
- Case 7 : Timerwert = 692 'Timer auf 8.0s. setzen
- End Select
- End If
- End If
- '---------------------------------TIMEOUT ZEIT INTERVAL SETZEN ENDE----------------------------------------------
- '---------------------------PING-------------------------------------------------
- If Wert11 = 1 And Isttimeraktiviert = 1 Then 'Wenn PING ankommt
- Wert11 = 0 'Wert11 wird zurückgesetzt
- Timer1 = Timerwert 'Timer auf 1sec. setzen
- Timeoutled = 0 'Orange LED ausschalten
- Timeout_ausgeloest = 0
- End If
- ' '--------------------------PING ENDE----------------------------------------------------
- '-------------------------------------TIMEOUT AKTIVIEREN / DEAKTIVIEREN----------------------------------------
- If Wert1 = Deviceadresse Then 'Wenn die gesendete DeviceAdresse von der PC Software übereinstimmt
- Interfaceactivated = 1 'Blaue LED einschalten
- Wert1 = -1 'Die DeviceAdresse Wert wird auf -1 gesetzt, damit die Blaue LED wieder ausschaltet, denn die IF Funktion befindet sich in einer Loop Schleife
- If Wert12 = 1 Then
- Wert12 = 0
- Start Timer1 'TimerOut aktivieren
- Timer1 = Timerwert 'Timer auf 1sec. setzen
- Isttimeraktiviert = 1 'TimeOut aktiv Variable auf 1 setzen
- Elseif Wert12 = 0 Then
- Wert12 = 0
- Stop Timer1 'TimeOut deaktivieren
- Isttimeraktiviert = 0 'Variable wieder auf NULL setzen
- End If
- Loop
Nun aber wenn ich den Timer für 8sec. einstelle und dann alle 8 sec. vom PC einen Ping sende, bleibt in der Zeit mein Do...Loop Schleife irgendwie stehen.
Wer hat da einen Rat?
VG
Katip
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von katipefendi ()