- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 19

Thema: Frequenzmesser bis 100Hz

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Hallo,

    weil ich eigentlich auch gerade an einen Drehzahlmesser gedacht habe (und ich nehme an, es handelt sich noch um das Thema mit dem Benzinmotor)
    habe ich das mal ausprobiert.
    Ich habe leider auch nur einen ATmega16 herumliegen, das Programm ist also auch für Mega16, jedoch sollte es reichen, einfach die Pins, an die das Display angeschlossen ist, zu ändern.

    Der Eingang ist Int0 (den es ja auch beim Mega8 gibt).
    Die Umrechnung ist jetzt so ausgelegt, dass der Timer1 1Mio mal pro Sekunde tickt. Wenn man z.B. einen Quarz anderer Frequenz verwenden möchte müsste man das halt entweder im Prescaler oder in der Umrechnung ändern.

    Code:
    $regfile "M16def.dat"
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    $crystal = 1000000
    
    'Initialisiere Timer1
    Config Timer1 = Timer , Prescale = 1
    Enable Timer1
    On Timer1 Isr_timer1
    
    'Das LCD konfigurieren
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    
    'Den Int0 konfigurieren, er dient zum erfassen der Pulse
    Config Int0 = Rising
    Enable Int0
    On Int0 Isr_puls
    
    'Die Interrupts global aktivieren
    Enable Interrupts
    
    'Variablen Definieren
    Dim Timer1_overflows As Byte
    Dim Ticks As Long
    Dim Rpm As Long
    
    'Variable auf Null setzen, nur um sicher zu gehen
    Timer1_overflows = 0
    'Anfang Hauptprogramm +++++++++++++++++++++++++++++++++++++++++
    Do
    
    'Die Ticks in Umdrehunge pro Sekunde umrechnen
    Rpm = 60000000 / Ticks
    
    Cls
    Locate 1 , 1
    Lcd "Umdrehungen: "
    Locate 2 , 1
    Lcd Rpm
    
    'Eine viertelsekunde warten, damit das Display nicht zu häufig
    Waitms 250
    
    Loop
    'Ende Hauptprogramm +++++++++++++++++++++++++++++++++++++++++
    
    
    
    Isr_puls:
    'Es wurde ein Puls registriert
    
    
    'Anzahl der Ticks ermitteln
    Ticks = Timer1_overflows * 65536
    Ticks = Ticks + Timer1
    
    'Zurücksetzen
    Timer1 = 0
    Timer1_overflows = 0
    
    Return
    
    Isr_timer1:
    'Timer 1 ist übergelaufen
    Timer1_overflows = Timer1_overflows + 1
    Return
    Der Code ist getestet und hat bei mir funktioniert.

    Klicke auf die Grafik für eine größere Ansicht

Name:	102_0185.jpg
Hits:	24
Größe:	87,4 KB
ID:	23694

    Natürlich, es wurde ja schon Code gepostet, aber das habe ich jetzt gerade eben ausprobieren müssen und villeicht nützt es dir ja etwas

    EDIT: Habe gerade gesehen, dass die Textphrase "Umdrehungen * 1/min: " garicht platz hat am LCD, siehe Foto.
    Also im Code auf "Umdrehungen: " geändert...

    Mfg Thegon
    Geändert von Thegon (11.11.2012 um 08:00 Uhr)

Ähnliche Themen

  1. Frequenzmesser
    Von Matze 3 im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 01.03.2012, 11:53
  2. Frequenzgenerator mit Frequenzmesser
    Von Meister Joda im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 12.08.2010, 17:04
  3. Stimmgerät / Frequenzmesser
    Von EDatabaseError im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 30.03.2007, 13:01
  4. Probleme bei C->Basic Frequenzmesser
    Von EDatabaseError im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 22.09.2006, 14:17
  5. Frequenzmesser mit ATtiny2313
    Von Raven² im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 18.04.2006, 17:46

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress