- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 15

Thema: Drehzahl- und Geschwindigkeitsmessung ATMEGA88 BASCOM

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Hier jetzt mal der aktuelle Code.

    Code:
    $regfile = "m88def.dat"
    $prog &HFF , &HE2 , &HDF , &HF9                   ' generated. Take care that the chip supports all fuse bytes.
    $hwstack = 128
    $framesize = 128
    $swstack = 128
    
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portd.0 , _
           Db7 = Portd.1 , E = Portb.4 , Rs = Portb.5
    Config Lcd = 16 * 2
    Cursor Off
    
    Config Timer1 = Timer , Prescale = 64
    
    Config Int0 = Falling
    Config Int1 = Falling
    
    On Int0 Ges                                       'Geschwindigkeit
    On Int1 Dre                                       'Drehzahl
    On Timer1 Timer_irq
    
    Enable Int0
    Enable Int1
    Enable Timer1
    
    Config Sda = Portc.4
    Config Scl = Portc.5
    Config Portd.2 = Input
    Config Portd.3 = Input
    Config Portd.0 = Output
    
    Pind.2 = 1
    Pind.3 = 1
    
    Dim G_pre As Long
    Dim G_set As Word
    Dim G_calc As Single
    Dim G_out As Integer
    
    Dim D_pre As Long
    Dim D_set As Word
    Dim D_out As Integer
    
    Do
          Upperline : Lcd " " ; D_out ; "  " ; G_calc ; "                   "
          Lowerline : Lcd " " ; Timer1 ; "                   "
          Waitms 1000
    Loop
    
    Ges:
        G_calc = G_set - G_pre
        G_pre = G_set
        G_set = Timer1
    Return
    
    Dre:
        D_out = D_set - D_pre
        D_pre = D_set
        D_set = Timer1
    Return
    
    Timer_irq:
       D_pre = D_pre - 65535
       G_pre = G_pre - 65535
    Return
    
    
    End
    Was mach ich falsch, dass er die Trigger INT0/1 gegen Masse nicht erkennt und die Differenz zwischen den 'pre" und 'set' nicht ausgibt?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hi,

    unabhängig von allem anderen: Du musst die Interrupts noch global einschalten

    Code:
    Enable Interrupts
    Gruß
    Malte

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,

    Zitat Zitat von therealosram Beitrag anzeigen
    Was mach ich falsch, dass er die Trigger INT0/1 gegen Masse nicht erkennt und die Differenz zwischen den 'pre" und 'set' nicht ausgibt?
    Gibt er nichts aus oder nur das falsche? Auf jeden Fall fehlt das "Enable Interrupts". Ob der Rest paßt habe ich nicht überprüft.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Art wie Überläufe berücksichtigt werden sieht interessant aus - könnte aber fast funktionieren (2^16 ist einer mehr). Ein Problem gibt es ggf. mit einem Überlauf beim Ergebnis, da nur integer. Der grobe Fehler ist erst einmal das fehlende globale einschalten der Interrupts.

    Schließlich gibt es ggf. noch eine seltenes Problem wenn der Timer Überlauf und der Int0/1 fast gleichzeitig kommen. Da ist es nicht so einfach zu entscheiden ob der Überlauf vor oder hinter dem Interrupt kommt. Ich fürchte der Prescaler von 64 reicht noch nicht aus um da seltene Fehler zu vermeiden. Wie das richtig gehen kann, steht im RN-Wissen unter Timer(AVR), da allerdings unter Ausnutzung der Hardware ICP Funktion.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Oh man. Wie so oft lag das Problem zwischen den Ohren.
    Oder wie hier mal jemand schrieb: "uC machen nicht immer was sie sollen, aber alles was man ihnen sagt..."

    Jetzt gehts.
    Hab bei 8000 U/min = 16 clicks und bei 1000 U/min = 130 Clicks. Die Genauigkeit reicht völlig aus, da ich eh nur 1000er Schritte brauch.
    Dafür ist dann die Geschwindigkeit genauer messbar. Bis zu 65535. Soll etwa 3-60 Km/h anzeigen.

    Ist für ne Fahrende Bierkiste

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.700
    ... etwa 3-60 Km/h ... Ist für ne Fahrende Bierkiste ...
    Uuuups - oder hicks? Formula Bierkiste?
    Ciao sagt der JoeamBerg

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    ... etwa 3-60 Km/h ... Ist für ne Fahrende Bierkiste ...
    Uuuups - oder hicks? Formula Bierkiste?
    Ich empfehle Youtube zum Thema 'Fahrende Bierkiste' zu befragen

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Na dann Prost! Poste mal ein Foto wenn sie fertig ist ...

Ähnliche Themen

  1. Atmega88 wird in bascom nicht erkannt
    Von nrg_mario im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 09.07.2011, 18:19
  2. MCS-Bootloader für ATmega8 und ATmega88 compilieren
    Von felack im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 24.09.2008, 14:47
  3. IR-Empfänger an ATMega88 und Timer2
    Von Schokohoernl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 21.02.2007, 00:23
  4. 4 x PWM mit ATMega88 und BASCOM
    Von Trabukh im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 04.08.2006, 09:35
  5. Atmega88 und rc5 codes
    Von Furtion im Forum AVR Hardwarethemen
    Antworten: 19
    Letzter Beitrag: 30.12.2005, 22:21

Stichworte

Berechtigungen

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

Labornetzteil AliExpress