- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 21

Thema: Finde Fehler nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    49
    Beiträge
    622
    Dann setz dir in der Sub ne Variable auf 1 und lösche sie in der irq wieder, wenn sich die minute ändert. Und den "gosub" führst du nur aus wenn variable=0. So ist sichergestellt, dass die sub nur einmal pro minute aufgerufen wird.
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    20.05.2012
    Beiträge
    22
    Hallo danke für die Hilfe hat leider nicht den gewünschten Erflog gebracht !!
    Geändert von hunikuni (02.06.2012 um 21:18 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Ich weiß zwar nicht ob darin das Problem liegt, aber in diesem Teils des Codes fallen zwei Dinge auf:
    Code:
    Led:     Hallimpuls = 0     On Int0 Zaehlen     If Hallimpuls = 0 Then     Toggle Portd.1
    1. Wenn Du in der ersten Zeile die Variable Hallimpuls auf 0 setzt, brauchst D zwei Zeilen später nicht abzufragen, ob sie auch tatsächlich 0 ist
    (das ist aber nur ein "Schönheitsfehler" und dürfte keine Fehlfunktionen nach sich ziehen)

    2. Das Statement "On Int0 Zaehlen" sollte vor die Hauptschleife, denn es muss nur ein einziges mal deklariert werden, welche ISR beim entsprechenden Interrupt ausgeführt werden soll.
    Wenn Du damit erreichen wolltest dass der Interrupt0 als solches aktiviert werden soll, wäre "Enable Int0" der richtige Befehl. Erst nach dieser Anweisung ist der Interrupt "scharf".

    Außerdem sehe ich das gleiche Problem wie Tido: Das Unterprogramm LED wird nach jeweils 10 Hallsensor-Impulsen gleich wieder aufs neue ausgeführt, weil die Bedingung "Stunde = 0 und Minute = 1 (bzw. 3) ja weiterhin erfüllt ist.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    20.05.2012
    Beiträge
    22
    Dank für die Antwort.
    Außerdem sehe ich das gleiche Problem wie Tido: Das Unterprogramm LED wird nach jeweils 10 Hallsensor-Impulsen gleich wieder aufs neue ausgeführt, weil die Bedingung "Stunde = 0 und Minute = 1 (bzw. 3) ja weiterhin erfüllt ist
    Ich dachte Timer läuft weiter und Bedingung Stunde = 0 Minute =1 bzw 3 ist nur einmal erfüllt ist.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Natürlich ist die Bedingung nur "einmal" erfüllt -aber das für eine ganze Minute lang! Und während dieser Zeit wird die Hautschleife schätzungsweise ein paar Millionen male durchlaufen, und jedes mal wird das Unterprogramm ausgeführt!

    Und der Timer läuft sowieso weiter...

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    20.05.2012
    Beiträge
    22
    Danke, aber dann müsste das Led sofort wieder anfangen zu leuchten und nicht aus bleiben ??? Habe ja das Problem dass es ausgeht und nach der definierten Zeit ( hier 3. Minute )nicht wieder an geht !! Oder habe ich einen Denkfehler ??? Werde wahrscheinlich umdrehungsabhängige Motorenabschaltung aufgeben und zeitgesteuterte verwenden.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Werde wahrscheinlich umdrehungsabhängige Motorenabschaltung aufgeben
    Das wäre aber schade, denn (fast) jede Aufgabe lässt sich in Bascom realisieren!

    Vielleicht beschreibst Du nochmal etwas genauer, was denn genau passieren soll? Bislang ist zwar von einem Motor, dann aber wieder von an- und ausgehenden LEDs die Rede - und die Bedeutung der 1 und 2 Minuten (die manchmal ja auch 3 sein können) erschließt sich auch noch nicht so ganz...

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von hunikuni Beitrag anzeigen
    Danke, aber dann müsste das Led sofort wieder anfangen zu leuchten und nicht aus bleiben ???
    Das gezeigte Verhalten rührt daher, da die LED nicht über Reset im Else-Zweig ausgeschaltet wird, sondern über Toggle, da nach 10 Impulsen die Sub verlassen, aber sofort erneut angesprungen wird. Bei diesem zweiten Mal wird also die LED ausgeschaltet. Da aber wahrscheinlich dann keine Hallimpulse mehr kommen, hängt es von da an in der Do/Loop und kann natürlich auch nicht auf die dritte Minute reagieren. Du kannst das überprüfen, indem Du nach Ablauf der ersten Minute genügend Hallimpulse erzeugst, damit die Loop verlassen wird. Danach wirst Du sehen, dass die LED bei Minute 3 angeht. Der Fehler wäre Dir einfacher klar geworden, wenn Du statt Toggle ein Set verwendet hättest.

Ähnliche Themen

  1. Hilfe...finde die fehler nicht heraus
    Von Kuwe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 21.04.2010, 20:29
  2. Antworten: 4
    Letzter Beitrag: 08.01.2008, 19:03
  3. Antworten: 29
    Letzter Beitrag: 07.01.2008, 17:20
  4. ADC - Ich finde den/die Fehler nicht
    Von Christoph2 im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 07.08.2007, 18:34
  5. AVR 90S2313 Problem, und finde nicht den Fehler!
    Von Alex20q90 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.05.2005, 13:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress