-         
Ergebnis 1 bis 2 von 2

Thema: AtMega8 Timer0 will nicht so richtig

  1. #1

    AtMega8 Timer0 will nicht so richtig

    Anzeige

    Hallo,

    Programmiere seit kurzem mit dem ATMega doch ich bekomme einfach keinen Timer zu laufen.

    Ich wollte es ohne Interrupt programmieren also mit Overflow

    Ich hab den Timer0 auf 1/1024 eingstellt.

    Danach wollte ich die Abfrage nach nem Overflowso realisiern:

    Code:
    if(bit_is_set(TIFR,0)) //Wenn das TOV0 gesetzt wird (0.Bit) müsste ja 1 drinstehen
    {
    TIFR |= (1<<TOV0); //das Bit rücksetzen
    cnt++;
    }
    
    if(cnt>=100)
    {
    cnt=0;
    PORTB |= (1<<PB0);
    }
    
    PORTB &= ~(1<<PB0);
    als 2.te Möglichkeit um das TOV0 Register auf gesetzt zu überprüfen wollte ich das machen

    Code:
    if(TIFR & (1 << 0))
    {
    .....
    }
    was kann jeweils dran falsch sein ?

    mfg

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    bitte stell den kompletten Code, der für das Problem relevant ist, rein. Beschreibe genau was nicht funktioniert. Wenn du schreibst, dass du den Timer nicht zum laufen bringst und ich dann antworte, dass die Initialisierung fehlt, ist dir nicht geholfen. Beschreibe welches Verhalten du erwartest und welches Verhalten sich zeigt.

    Code:
    if(cnt>=100)
    {
    cnt=0;
    PORTB |= (1<<PB0);
    }
    
    PORTB &= ~(1<<PB0);
    Hier bleibt der Port nur einen Befehl lang gesetzt. Ist das beabsichtigt? Mit einer LED siehst du da nix.

    Gruß

    Jens

Berechtigungen

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