-
-
Neuer Benutzer
Öfters hier
Hi, also ich würde schon empfehlen ein paar Sachen anderes zu machen, man fängt damit an das man nicht im Timer die Information sendet. Im Timer solltest du nur ein Variable setzen und im Hauptprogramm prüfen ob die Variable gesetzt ist.
If Usb_schreiben_ok = 1 then
Usb_schreiben_ok = 1
Gosub Usb_schreiben
End If
---
Timer1:
If Wartezeit = Delayms And Logging = 1 Then 'Wartezeit zwischen den Messungen
Wartezeit = 0 'Wartezeit zurücksetzen
Usb_schreiben_ok = 1
End If
return
-----------------------------------------------
so kann es nicht passieren das du:
A: Den Timer durcheinander bringst (Es können keine weitere interrupts ausgeführt werden während du diesen Timer noch Aktiv hast, erst wieder beim return).
B: Verhinderst das die Funktion aufgerufen wird bevor du das Hauptprogramm erreicht hast (Ich habe jetzt nicht ausführlich geguckt ob dieses der Fall ist, da du ja nicht wirklich viel machst zwischen Enable Interrupts und dem Maincode (Do loop)).
Musste man auch nicht Com1 vorher definieren 8 bit, No Parity, 1 Stop oder so bevor man den Benutzt als Binary? oder sind das Defaults?
Kannst ja mal ein paar Tests machen:
1. versuche mal den Timer 1 erst direkt vor dem DO zu enabeln.
2. Das oben beschrieben mit den Bit setzen und dann in Main ausführen.
3. Buffer mal die ausgabe: Config Serialout = Buffered , Size = 250
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen