Hi zusammen, ich habe folgendes Problem und würde mich über Hilfe sehr freuen: Ich möchte einen Timer in mein C Programm einbauen, um zu überprüfen, ob ein Gerät angeschlossen ist, oder nicht. Wenn sich die Zeitspanne zwischen den Übertragungen vergrößert, soll eine Gegenmaßnahme in Form eines Codes (M,001,000,001,E) ausgeführt werden. Wenn die Zeitspanne gleich bleibt, soll ein anderer Code (dieser variiert) ausgeführt werden. Ich hoffe, dass Ihr mir helfen könnt :) LG Cankar
:
Bearbeitet durch User
Ich habe aber leider keine Ahnung, wie ich einen Timeout erzeugen kann. Es tut mir leid, wenn das nicht so deutlich geworden ist, aber zu dem Zeitpunkt wo ich den Artikel geschrieben habe, habe ich mich anscheinend schon zu lange mit dem Thema befasst. :D Deshalb habe ich mich nach außen hin wahrscheinlich sehr undeutlich ausgedrückt, obwohl es in meinem Kopf klar schien.
Can K. schrieb: > in Form eines Codes (M,001,000,001,E) Sollen wir eine De-Chiffriermaschine anwerfen?
Can K. schrieb: > Ich habe aber leider keine Ahnung, wie ich einen Timeout erzeugen kann. Du benötigst eine (Interrupt-)Funktion, die in regelmäßigen Abständen aufgerufen wird. Bei jeder deiner Übertragungen zum angeschlossenen Gerät merkst du dir einen Zeitstempel. In der Interrupt-Funktion guckst du dir dann die aktuelle Zeit an, und vergleichst sie mit dem Zeitstempel der letzten Übertragung. Wenn die Zeitdifferenz über der von dir festgelegten Timeout-Schwelle ist, startest du deine "Gegenmaßnahme". Ähnlich wie: täglich in den Kühlschrank gucken, aktuelles Datum mit Ablaufdatum der Milch vergleichen, wenn Zeitdifferenz zu groß -> Timeout.
:
Bearbeitet durch User
Wenn du ein größeres C-Projekt hast und nichts für die Zeiterfassung vorgesehen hast, solltest du das schleunigst ändern. Egal, ob es ein µC, oder ein µP ist, gibt es bestimmt einen Timer im 1...16 ms Takt, mit dem auch Tasten validiert werden, oder Abläufe getaktet werden, oder... Wenn du dem mit ein paar Speicherstellen etwas Langzeit- Auflösung (Überläufe zählen) gönnst, kannst du damit ohne viel Aufwand Sekunden, Minuten, Monate,... identifizieren. Einen Monat löst man mit 4 Byte auf eine ms auf! Diese 4 Byte (oder 2 für einige Sekunden), hängst du als Zeitstempel an jeden übertragenen Wert an und vergleichst beim neuen Wert die Differenz der Zeitstempel. Differenz > TimeOut: Tu was....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.