-         

Ergebnis 1 bis 8 von 8

Thema: Blinker in Bascom mit Timer0

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.08.2007
    Beiträge
    7

    Blinker in Bascom mit Timer0

    Anzeige

    Hallo zusammen.
    ich will mit Bascom einen blinker programmieren der alle 3s einen befehl ausführt. d.h. der microcontroller soll aus dem hauptprogramm rausspringen, den befehl ausführen und wieder ins hauptprog zurück gehen. da timer1 schon besetzt ist habe ich nur noch timer0 zur verfügung.

    der microcontroller ist ein atmell mega32, mit 16mhz.

    wenn jemand weiß wie man das schnell realisieren kann, bitte antworten.

    vielen dank schon mal im voraus.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.09.2006
    Ort
    Nähe Mannheim
    Beiträge
    269
    Wie schnell läuft denn dein TImer 1 ?
    Also in welcher frequenz kommt der ISR ?
    Da es ziemlich unprkaktisch ist 2 Timer zu verwenden und bei dem Timer 0 es rellativ doof ist 3 sec einzustellen würde ich dir vorschlagen einfach einen Wert in deiner ISR von Timer 1 Hochzählen zu lassen und diesen abzufragen
    Sobald wert X den Wert Y erreicht hat (etwa 3sec dann)
    Springt er in ein Sub (Gosub befehl) macht den Käse und springt zurück
    (Return)
    Wäre mein VOrschlag ^^

    mfg

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.08.2007
    Beiträge
    7
    danke für die antwort.
    über den timer1 zähle ich takte die ich von einem inkrementgeber bekomme, drum kann ich diesen nicht verwenden.
    vielleicht kann jemand ein kurzes prog online stellen mit dem man überhaupt mal den timer0 benutzen kann, da ich totaler anfänger bin und ich es bisher nicht geschafft habe den timer mal in irgendeiner weise zu benutzen, so dass er nach einer bestimmten zeit irgendetwas tut.

    mfg

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Mit dem 8 Bit Timer kannst du keine 3 sek Abstände generieren
    Im folgenden Programm (erstellt mit RNAvr) springt er 100 mal/sek in die ISR. Dort müsstet du dann eine Variable bis 300 zählen lassen und dann deine Aufgabe abarbeiten lassen.

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    'Hier wird der Timer und der Teiler festgelegt
    Config Timer0 = Timer, Prescale = 1024
    
    'Ausgang definieren
    Config Pina.0 = Output
    'Hier geben wir der Definition einen schöneren Namen
    Led Alias Porta.0
    
    'Hier wird das Unterprogramm festgelegt, das
    'in dem von ihnen eingestellten Intervall aufgerufen wird
    On Timer0 Timer_irq
    
    'Diese Vorgabe wurde berechnet um die genaue Intervallfrequenz zu erreichen
    Const Timervorgabe = 100
    
    
    'Hier werden die Timer aktiviert
    Enable Timer0
    Enable Interrupts
    
    'Hier ist die Programmhauptschleife
    Do
    Loop
    
    'Dies ist der Programmteil, der in dem von ihnen gewählten
    'Intervall aufgerufen wird
    Timer_irq:
      Timer0 = Timervorgabe
       Toggle Led
    
       Return
    mfg milkbubi

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.08.2007
    Beiträge
    7
    vielen dank. das programm funktioniert.

    mfg

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Das freut mich, das Programm RNAvr gibts übrigens im RN-Wissen Bereich bei den Timern ganz unten

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    28.08.2007
    Beiträge
    7
    jetzt hab ich schon wieder ein neues Problem

    wenn ich den timer0 als timer verwende und den timer1 als counter,dann zählt der counter alles mögliche nur nicht das was er soll.
    kann mir jemand sagen an was das liegen kann?
    die RN-Wissen seite funktioniert zur zeit leider nicht

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Dazu fällt mir jetzt nur ein, dass der counter sich Störsignale einfängt. Ich kenn leider deinen Aufbau nicht aber hast du evtl. nicht ausreichend mit Kondensatoren entstört?
    Ansonsten kann ich dir leider auch nicht weiter helfen

    mfg milkbubi

Berechtigungen

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