- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 15

Thema: Drehzahl- und Geschwindigkeitsmessung ATMEGA88 BASCOM

Baum-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

    Frage Drehzahl- und Geschwindigkeitsmessung ATMEGA88 BASCOM

    Hallo an das Forum,

    Ich weiß, hier verwenden die meisten Leute C oder Assembler.
    Ich würde aber gerne weiter in Bascom Programmieren, da es VB ähnelt und ich damit beruflich zu tun habe.

    Ich würde gern für eine Fahrende Bierkiste Drehzahl und Geschwindigkeit auslesen.
    Der Bau der Geber stellt kein Problem dar. Die Zündung und die Antriebswelle sollen pro Umlauf nur ein Signal abgeben, aber ich verstehe die Funktionsweise der Timer nicht.

    Mein Plan ist den Timer1 laufen zu lassen, die Drehzahl aus der Differenz eines alten und neuen Wertes zu errechnen und bei Erreichen des Geschwindigkeitssensor den Timer auf null zu setzen.

    Der Timer läuft hoch, aber die Interrupts lösen anscheinend nicht aus

    hier der Code:
    Code:
    $regfile = "m88def.dat"
    $crystal = 16000000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    'Display Einrichten
    Config Lcdpin = Pin , _
           Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portb.4 , Rs = Portb.5
    
    Config Lcd = 16 * 2
    
    Dim Drehzahl As Word
    Dim Geschwindigkeit As Word
    Dim D_timer_1 As Single
    Dim D_timer_2 As Single
    Dim G_timer As Single
    Dim Timer_multi As Single
    
    Config Pind.2 = Input                             'drehzahl
    Config Pind.3 = Input                             'Geschwindigkeit
    
    Portd.2 = 1
    Portd.3 = 1
    
    On Int0 Dreh_route
    On Int1 Gesw_route
    On Timer1 Timer_over
    
    Config Int0 = Rising
    Enable Int0
    Config Int1 = Rising
    Enable Int1
    Enable Interrupts
    
    Enable Timer1
    Start Timer1
    
    Config Timer1 = Timer , Edge = Rising , Prescale = 1024       'so niedrig, dass erlangsam zählt
    
    Timer_multi = 1
    
    Do
            Cls
            Upperline : Lcd Drehzahl ; "  " ; Geschwindigkeit
            Lowerline : Lcd D_timer_1 ; " " ; Timer1
            Waitms 20
    Loop
    
    End
    
    Dreh_route:
            D_timer_2 = Tcnt1 * Timer_multi
            If D_timer_2 > D_timer_1 Then Drehzahl = D_timer_2 - D_timer_1
            D_timer_1 = D_timer_2
    Return
    
    Gesw_route:
            G_timer = Timer1 * Timer_multi
            Geschwindigkeit = G_timer
            Timer1 = 0
            Timer_multi = 0
    Return
    
    Timer_over:
            Timer_multi = Timer_multi + 1
            If Timer_multi > 100 Then Timer_multi = 1
    Return
    
    End
    Geändert von therealosram (01.08.2014 um 00:48 Uhr)

Ä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, 19: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, 15:47
  3. IR-Empfänger an ATMega88 und Timer2
    Von Schokohoernl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 21.02.2007, 01:23
  4. 4 x PWM mit ATMega88 und BASCOM
    Von Trabukh im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 04.08.2006, 10:35
  5. Atmega88 und rc5 codes
    Von Furtion im Forum AVR Hardwarethemen
    Antworten: 19
    Letzter Beitrag: 30.12.2005, 23:21

Stichworte

Berechtigungen

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

Labornetzteil AliExpress