- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 2 von 2

Thema: Timer 1 funzt nicht so richtig, wieso?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137

    Timer 1 funzt nicht so richtig, wieso?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Mahlzeit,

    Ich hab hier ein Versuchsaufbau... Schickes kleines Rad aus Lego-Technik, dort sitzen 2 Magneten drauf, darunter ein Hallgeber.

    Der Hallgeber ist über ein Optokoppler mit dem Atmega128 verbunden (int0). Das Interrupt für int0 funktioniert wunderbar (konfiguriert auf "any change" so das bei steigender und bei fallender Flanke das Interrupt ausgelöst wird (ein Magnet schaltet den Hallgeber auf high, der andere auf low, man hat also eine halbe Umdrehung high und eine halbe Umdrehung low... das funktioniert auch wunderbar))...

    Timer1 spuckt allesdings bei recht kleiner Drehzahl nur Müll aus, und es kommt kein Timer-Overflow !!! Im Simulator funktioniert es, nur in der Hardware irgentwie nicht

    Hier das Code-Geschnippsel:

    Code:
    $baud = 38400
    Config Serialin = Buffered , Size = 10
    $crystal = 16000000
    $regfile = "m128def.dat"
    
    Config Pind.0 = Input
    
    Mcucr = &B01010101                                          'int0 = any change
    Enable Int0
    
    On Int0 i1
    
    Config Timer1 = Timer , Prescale = 8 
    Enable Timer1
    On Timer1 Zeit1
    Enable Interrupts 
    
    do
    'noch nix drin
    loop
    
    i1: 
    Stop Timer1
    Drehzahltimer = Timer1
    Timer1 = 0
    Start Timer1
    
    Drehzahlwert = 65535 * Drehzahlueberlauf
    Drehzahlwert = Drehzahlwert + Drehzahltimer
    return
    
    Zeit1:                                                    
    Incr Drehzahlueberlauf
    Print "Überlauf" ; Drehzahlueberlau
    return
    Software: Bascom letzte Version 1.11.7.4
    Controller: ATMEGA128

    Kann da jemand helfen? Weiß nichmehr weiter

    Gruss

    Jan[/code]

  2. #2
    Gast
    Funktioniert jetzt, hab einfach den Int0 nach dem timer konfiguriert, und seitdem geht es +wunder...

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad