- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Interrupt auswertung

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2004
    Beiträge
    14
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Also ich hab das jetzt nochmal ausprobiert so wei es gesagt hast. Dannach hats auch weider was angezeigt aber allerdings sehr merk würdig. Und zwar im LCD steht dann 82400 zb. Und wenn ich die drehzahl verändere am Lüfter dann gehen bloß die zahlen nach der 8 runter. Die sind dann zwar fast richtig. pendel aber immer noch recht stark zwischen 500-1000, je nachdem wie schnell der Lüfter dreht.
    Und das merkwürdigste is, das ich schon von anfang an werte im Im 60000-80000 bereich hab, und das obwohl der Lüfter entweder aus, oder sogar ganz ab is.
    Hier mal der veänderte code.
    Code:
    $regfile = "M8def.dat"
    $crystal = 8000000
    Config Lcd = 20 * 4
    Config Lcdbus = 4
    Config Lcdpin = Pin
    Config INT0 = LOW LEVEL
    Dim Zehler As Long
    Dim Ausgabe As Long
    
    On Int0 Int0_int
    
    
    Enable Int0
    Enable Interrupts
    Do
    Wait 2
      Ausgabe = Zehler
      Cls
      Lcd Ausgabe
      Zehler = 0
    Loop
    
    Int0_int:
    Incr Zehler
    
    Return
    
    
    
    'Dies ist der Programmteil, der in dem von ihnen gewählten
    'Intervall aufgerufen wird
    
    
    End                                                         'end program
    Ach ich hab übrigens mit Rising und Falling bzw. Low Level bei der Int0 config experimentiert. wenn ich Rising bzw. Falling drin stehen hab, kommen werte bloß im Hunderter bereich zustande, die sich auch nicht großartig veränderen wenn man die drehzahl ändert.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2004
    Beiträge
    14
    Ah ich habe mal ein bisschen nach geforstet. Und rausgefunden der Ausgang für das Tachosignal ein open-collector-ausgang is(hoffentlich richtig geschrieben). Und ich denke mir mal das dadurch die schaltung nicht richtig funkt.. Aber wie soll ich das jetzt änderen?!? Einfach ein Pull-Up wiederstand dran hängen?!?

  3. #13
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Hi,
    also da stecken noch ein paar Mankos in deinem Code. So darf der Interrupt nicht auf LowLevel definiert werden, sonst werden ständig Interrupts ausgelöst wenn das Signal auf GND liegt. Es soll aber nur ein Interrupt pro Takt aufgerufen werden. Der Fehler erklärt auch warum trotz nicht angeschlossenen Tachosignal werte entstehen. Leider hab ich mich mit Tachosignal noch nicht beschäftigt, aber ich nehme doch an das es pro Umdrehung einfach einen Impuls liefert.
    Also solltest du erst mal checken ob die Impulse wirklich kommen. Ich hab dir das Programm ein wenig verändert. Probier es so mal.
    Jetzt reagiert der Interrupt auf fallende Pegel. Zudem ist ein Pullup Widerstand eingeschaltet, so das der Port generell auf High gelegt wird.
    Wenn alles klappt, müsste jetzt der Wert am Display mit den Umdrehungen ansteigen. Ich hab dir noch ein Wait eingefügt, damit du auch was am Display lesen kannst.

    Gruß Frank

    Code:
    $regfile = "M8def.dat"
    $crystal = 8000000
    Config Lcd = 20 * 4
    Config Lcdbus = 4
    Config Lcdpin = Pin
    
    Config pind.2=input
    portd.2=1  'PullUp ein
    
    Config Int0 = Falling
    Dim Zehler As Long
    Dim Ausgabe As Long
    
    On Int0 Int0_int
    
    
    Enable Int0
    Enable Interrupts
    Do
      Ausgabe = Zehler
      Cls
      Lcd Ausgabe
      Wait 1
    Loop
    
    
    Int0_int:
    Incr Zehler
    Return
    
    End

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2004
    Beiträge
    14
    Ich jetzt gerade mal einen 10KOhm pullup wiederstand dran gelötet und jetzt funkt das, war am anfang bloß ein bisschen Irritiertweil da bloß 35 stand die sich aber reglen ließen. Dann is mir ja eingefallen das ich ja bloß die Umdrehung pro sekunde messe und ich das ganze ja mal 60 rechnen muß und nun funkt das. Freu .

    Und jetzt sehe ich denn code von dir wo der Interne Pullup aktiviert wird, und da könnte ich mir in denn hintern tretten das ich nicht selbst dran gedacht hab.
    Ach und das mit dem Low Level stand da noch drin weil ich damit experimentiert hab. Hatte es auch schon mit Falling ung Rising probiert. Aber jetzt funkts...
    \/

  5. #15
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Na dann ist ja alles bestens - dann viel Spaß noch bei der Vollendung des Programms

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test