- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 9 von 9

Thema: Attiny15 Timer0 Overflow-Int

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35

    Attiny15 Timer0 Overflow-Int

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo liebe Leute,
    ich bekomme im Simulator mit dem Timer0 vom ATtiny15 keinen Overflow-Int zustande und weiß einfach nicht warum. Mit Timer1 funktioniert es, warum nicht mit Timer0?
    Kann es sein, daß da neben TCCR0 und TIMSK noch ein anderes Register beteiligt ist?

    Grüße!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    35
    Beiträge
    270
    hi!

    in welcher sprache programmierst du?? bzw. welchen simulator verwendest du?
    bei Bascom hatte ich auch schon mal das problem, dass der simulator bei timern hängenbleibt. einfachmal den wert von timer0 beobachten und schauen, ob der überhaupt hochgeht.
    funktioniert der timer0 wenn du das programm auf den µC flashst?

    mfg

    schoko
    Warum bekommen Vegetarier immer eine Extrawurst?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35
    Hi.
    also ich lerne Assembler und benutze den Simulator des AVR-Studio4. Der Timer läuft auch und während der Simulation kann auch per Aktivierung des Interuptflags im TIFR ein Int simuliert werden, aber eben nicht so wie es sollte - löst beim Überlauf den Int nicht aus.
    Irgendetwas mach ich falsch oder der Simulator spielt hier nicht mit.
    Werde wohl nicht darum herum kommen ein kleines Testprogramm in den ATTiny zu laden... mal sehen.


    Gruß!

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Werde wohl nicht darum herum kommen ein kleines Testprogramm in den ATTiny zu laden...
    Das ist der richtige Ansatz, wenn Du den Prescaller, den richtigen Flag in Timsk und Sreg richtig gesetzt hast läuft der Timer 100 % .
    Wenn Du Dich nur auf den Simulator verläßt, bist Du verlassen...
    So habe ich auch schon mehrere Stunden einen Fehler gesucht.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35
    Hallo,
    ja, es liegt tatsächlich am Simulator. Schade, ich mag das Teil. Gibt es sowas wie eine Bug-List zum Simulator?

    Danke!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35
    So richtig kann ich es nicht glauben, darum noch ein Versuch:
    Weil es auch sein kann, daß mit meiner Installation des AVR-Studios etwas nicht in Ordnung ist, poste ich mal hier den Testcode. Vielleicht hat ja jemand Lust das im Simulator laufen zu lassen. Das mit dem Swap-Befehl ist natürlich nur provisorisch ... war der schnellste Weg ein Portbit zu schalten
    Würde mich freuen wenn es bei jemand funktioniert und ich eventuell nur
    ein neuere Version des AVR-Studio benötige.

    Habe folgendes nachträglich aus dem Code-Tag genommen, weil ich da die Formatierung nicht hinbekomme
    ;++++++++++++++++++++++++++++++++++++ Timer0 Overflow - Simulatortest
    .include "tn15def.inc"
    .list

    .def temp = r16
    .def aus = r17
    .cseg

    rjmp Init ;0 Reset
    reti ;rjmp INT0int ;1 External Interrupt0
    reti ;rjmp PINCint ;2 Pin Change Interrupt
    reti ;rjmp T1CPint ;3 Timer1 Compare Interrupt
    reti ;rjmp T1OVint ;4 Timer1 Overflow Interrupt
    rjmp T0OVint ;5 Timer0 Overflow Interrupt
    reti ;rjmp EERDYint ;6 EEPROM Ready Interrupt
    reti ;rjmp ACPint ;7 Analog Comparator Interrupt
    reti ;rjmp ADCint ;8 AD Converter Interrupt

    Init:
    ldi temp, (1<<CS02)|(1<<CS00) ; CK/1024
    out TCCR0, temp
    ldi temp, (1<<TOIE0)
    out TIMSK, temp
    ldi temp, 255
    out DDRB, temp
    ldi aus, 0b00010000
    sei
    Warte:
    rjmp Warte

    T0OVint:
    swap aus
    out PORTB, aus
    reti


    Will das Codefragment nicht unkommentiert stehen lassen und poste es darum nocheinmal für den Timer1 des ATtiny15, mit etwas Kommentar.
    Daß mir Kritik und Tips willkommen sind, ist klar. Am meisten bewegt mich die Frage, wie man exaktes Timing mit doch eher geringen Mathekenntnissen bewältigt - welche Formel muß ich auf meinem PC (in VB5) laufen lassen?
    ;********************************* Timer1 OV-INT als Wechselschalter.
    .include "tn15def.inc"
    .list

    .def temp = r16
    .def aus = r17
    .def xtint = r18 ;Reg wird heruntergezählt (xt) und bei 0 der Port
    .equ xt = 6 ;nach so vielen (xt) Timer0-Überläufen bedient
    ;6 OV-Ints ergeben bei 1.6 MHz und CK/1024 eine (knappe)
    ;Sekunde nach der Pin2 und Pin 5 im Wechsel on sind..

    .cseg

    rjmp Init ;0 Reset
    reti ;rjmp INT0int ;1 External Interrupt0
    reti ;rjmp PINCint ;2 Pin Change Interrupt
    reti ;rjmp T1CPint ;3 Timer1 Compare Interrupt
    rjmp T1OVint ;4 Timer1 Overflow Interrupt
    reti ;rjmp T0OVint ;5 Timer0 Overflow Interrupt
    reti ;rjmp EERDYint ;6 EEPROM Ready Interrupt
    reti ;rjmp ACPint ;7 Analog Comparator Interrupt
    reti ;rjmp ADCint ;8 AD Converter Interrupt

    Init:
    ldi temp, 0b00001111 ;CK/1024
    out TCCR1, temp
    ldi temp, (1<<TOIE1)
    out TIMSK, temp
    ldi temp, 255
    out DDRB, temp
    ldi aus, 0b00010000 ;PB4/Pin2 an >>swap<< PB0/Pin5 an
    ldi xtint, xt
    ldi temp, 0
    sei
    Warte:
    rjmp Warte

    T1OVint:
    dec xtint
    cpse xtint, temp
    reti
    swap aus
    out PORTB, aus
    ldi xtint, xt
    reti



    Viele sind sicher schon in Gedanken beim RoboCup 2006. Habe erst gestern davon erfahren. Das Tolle:Es findet hier in Bremen statt. Vom 14 bis zum 18. Juni! Find ich gut

    Herzliche Grüße!

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35
    Wäre nett, wenn mir jemand auf die Sprünge helfen könnte, was die Formatierung im Codefenster betrifft. Im Moment verschlimmbessert sich nur alles, wenn ich da versuche Ordnung reinzubringen...
    Gruß

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.02.2006
    Alter
    54
    Beiträge
    781
    Also das erste Programm funktioniert bei mir einwandfrei. (AVR Studio 4.12 Build 460)

    MfG

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    02.05.2005
    Ort
    Bremen
    Beiträge
    35
    Danke!
    Habe 4.11 Build 401
    Hatte mich noch weiter umgesehen und im AVRfreak-Forum einen Beitrag gefunden. Der User hat da schon vor über einen Jahr Atmel auf diesen Bug im Sim. aufmerksam gemacht und sich darüber beschwert keine Antwort erhalten zu haben... Atmel hat aber 'geantwortet'
    Danke nochmal!

    Gruß!

Berechtigungen

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

Labornetzteil AliExpress