- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 14

Thema: ATtiny13 und Studio4 in Assembler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Hubert und Oberallgeier,
    danke für Eure Hilfe!
    zu Hubert...habe schon das halbe AVR - Tutorial gelesen, aber zu den Vorschlag von Oberallgeier

    #define sw1 PINB,PB4
    stand nichts! Auch in meinen Buch zum AVR-Assembler war nichts zu lesen.
    Und es funktioniert tadellos.
    Schlau geworden bin ich auch, wie ich die PULLUP-Widerstände am Portb setze.
    Nun werde ich über Timer0 3 Zeiten von 20 / 30 / 40 Minuten aufbauen.

    Grüße

    Rolf

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Viele der Tutorials und Bücher sind noch für den alten Assembler. Der kann den Befehl #define noch nicht. Da hat man so etwas per .equ Direktive gemacht. Bei AVR Studio4 kann man zwischen der alten und neuen Version des Assemblers wählen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Leute,
    ich hänge mit den Tiny13 auf dem Schlauch...und habe schon das Datenblatt studiert.
    Anfangsteile vom Quelltext und Aufruf der ISR am Ende:

    .INCLUDE "tn13def.inc" ; Deklarationen für Tiny13
    .EQU takt = 1000000 ; Systemtakt 1 MHz
    #define test PINB,PB3
    #define sw1 PINB,PB4
    #define sw2 PINB,PB1
    #define sw3 PINB,PB2
    rjmp start ; Reset-Einsprung
    .ORG OVF0addr ; Interupt-Vektoren
    rjmp TIM0_OVF ; Sprung zur ISR

    start: ldi r16,LOW(RAMEND) ; Stapel anlegen
    out SPL,r16

    ldi r16,0x01 ; Bitmuster 0000 0001
    out DDRB,r16 ; PortB (PB0 ist Ausgang)
    ldi r16,0b00011110 ; PB1-PB4 = PULLUP
    out PORTB,r16

    ;Interrupt-ISR
    TIM0_OVF: push r16
    in r16,SREG
    dec r17
    pop r16
    out SREG,r16
    reti
    Der Compiler vom Studio4 gibt Fehlermeldung "TIM0_OVF" undefiniertes Symbol.
    Beim Tiny2313 läuft das anstandslos...ich weiß nicht mehr weiter.
    Auch wenn ich in der loop-Schleife "rcall zeit4" eingebe, und die Routiene mit ret beende,
    kommt die Fehlermeld. zeit4 undef. Symbol

    Grüße

    Rolf

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Sorry, hab den Fehler gefunden!

    Vor der ISR und den Aufrufen der Zeiten stand ein ".EXIT", und das hat mich 4 Stunden gekostet.

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    Zitat Zitat von hegewald
    ... ein ".EXIT", und das hat mich 4 Stunden gekostet.
    Ein langsamer Ausgang . . . *ggg*. Aber besser ein .exit in der Software als der .exitus des Controllers.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von hegewald Beitrag anzeigen
    ;Interrupt-ISR
    TIM0_OVF: push r16
    in r16,SREG
    dec r17
    pop r16
    out SREG,r16
    reti
    Hallo,
    ich bin Anfänger in ASM, aber könnte es sein, daß das grüne push fehlt oder das rote pop zuviel ist?

    ;Interrupt-ISR
    TIM0_OVF: push r16
    in r16,SREG
    push r16
    dec r17
    pop r16
    out SREG,r16
    pop r16
    reti


    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Searcher Beitrag anzeigen
    ..., aber könnte es sein, daß das grüne push fehlt oder das rote pop zuviel ist?
    Nein, nur vertauscht, richtig wär's so:
    Code:
    TIM0_OVF:
    push    r16
    in      r16,SREG
    dec     r17
    out     SREG,r16
    pop     r16
    reti
    Der Originalcode:
    Code:
    pop    r16
    out    SREG,r16
    stellt dagegen SREG mit einem Wert wieder her, den R16 beim Aufruf des Interrupts hatte, was für kreatives Verhalten des Codes sorgt.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Macig,
    den Cod
    TIM0_OVF:
    push r16
    in r16,SREG
    dec r17
    out SREG,r16
    pop r16
    reti
    hatten mir die Provis vom www.mikrocontroller.net vorgegeben, und daran habe ich mich dann gehalten.
    SREG ist doch ein Register (Bit7=I) =sei, wenn gesetzt, läuft der Overflow ständig.
    Was mich nun beschäftigt, die Zeiten von 20 | 30 | 40 Minuten zu realisieren...das wird noch an Zeit kosten.
    Toleranzen sehe ich mit +/- 5%

    Grüße

    Rolf

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Hallo Hegewald,
    Zitat Zitat von hegewald Beitrag anzeigen
    TIM0_OVF:
    push r16
    in r16,SREG
    dec r17
    out SREG,r16
    pop r16
    reti
    hatten mir die Provis vom www.mikrocontroller.net vorgegeben, und daran habe ich mich dann gehalten.
    Dieser Code jetzt entspricht dem von mir berichtigten.

    Vergleich' dazu Dein Post Nr. 6 dieses Threads:
    Code:
    ;Interrupt-ISR
    TIM0_OVF:    push    r16
                in        r16,SREG
                dec        r17
                pop        r16
                out        SREG,r16
                reti
    Nur darum ging's, das ist falsch.
    Betrachte genau wo R16 gepoppt wird und wo in's SREG heschrieben wird.

Ähnliche Themen

  1. AVR-Studio4.18
    Von walterk im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 14.08.2010, 19:29
  2. AVR Studio4
    Von roy-sam im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 28.03.2010, 16:54
  3. AVR Studio4.16; C; ATmega32
    Von walterk im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 09.08.2009, 21:00
  4. AVR Studio4 und ATTINY26
    Von The Man im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 28.11.2006, 20:27
  5. AVR Studio4 Takteinstellung
    Von Schrödi im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 19.08.2004, 15:01

Berechtigungen

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

12V Akku bauen