-         

Ergebnis 1 bis 3 von 3

Thema: Timer0... und ich komm garnicht mit klar

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32

    Timer0... und ich komm garnicht mit klar

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Ich möchte den Timer0 starten der dann nach einer Sekunde den Wert einer Variable setzt.(zB. B= 0) Dann soll der Timer anhalten, bis ich ihn ein weiteres mal starte. Leider komme ich mit den Einstellungen für 1 Sekunde überhaupt nicht klar. Kann mir vielleicht jemand einen Tip geben oder ein einfaches Beispiel ? Danke vorab !!!

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    14.09.2005
    Alter
    61
    Beiträge
    77
    So ungefähr könnte das gehen.

    Die Timervorgabe und Prescale = 256 hängen natürlich von der Frequenz ab.

    Code:
    $crystal = 8000000
    Config Timer1 = Timer, Prescale = 256
    Const Timervorgabe = 34286
    On Timer1 Timer_irq
    
    Enable Timer1
    Enable Interrupts
    
    'Hauptprogramm
    Do
    
    If x=y 
    Timer1 = Timervorgabe
    Start Timer 
    Endif
    
    Loop
    
    
    Timer_irq:
    Stop Timer1 
    Toggle Led1
       Return

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    64
    Beiträge
    277

    Re: Timer0... und ich komm garnicht mit klar

    Zitat Zitat von Looser
    Ich möchte den Timer0 starten der dann nach einer Sekunde den Wert einer Variable setzt.(zB. B= 0) Dann soll der Timer anhalten, bis ich ihn ein weiteres mal starte. Leider komme ich mit den Einstellungen für 1 Sekunde überhaupt nicht klar.
    Das wundert mich nicht. Timer0 ist ein 8 Bit Timer. Um da tatsächlich auf eine Sekunde in einem Rutsch zu kommen, müsstest Du den µC mit höchstens 250kHz betreiben.

    Schnappe Dir das Timerberechnungstool...

    http://www.roboternetz.de/phpBB2/dlo...le&file_id=169

    ... dann fällt das sofort auf.

    Selbstverständlich kannst Du in in der ISR eine Variable inkrementieren, damit Du bei zb.B. 100 Hz Interruptfrequenz auf eine Sekunde kommst.

    Frisch ans Werk

    Henrik

Berechtigungen

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