- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: ATtiny13 und Studio4 in Assembler

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Anzeige

    Powerstation Test
    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

  2. #12
    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.

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Macig,
    hast Recht, hier war ein Dreher, in meinen Quelltext habe ich es nochmal kontrolliert.
    Habe mich mit den PUSH / POP nochmal über Bücher informiert.
    Danach würde doch der Ablauf so aussehen:
    push r16 ; push kopiert den Inhalt von r16 auf die durch den Stapelzeiger SP adressierte SRAM Speicherstelle
    ; und vermindert den SP um 1
    Nun steht hier weiter für den Mega8:
    Der Stapelzeiger (das ist doch eine Adresse im SRAM-Bereich,oder?) wird sofort nach dem Start des Programms
    auf die höchste SRAM Adresse gesetzt. In der Deklarationsdatei m8def.inc vordefiniert auf Adresse RAMEND=$045F.
    Wie das beim Tiny13 aussieht, kann ich nicht erkennen, oder Datenblatt ranholen.

    pop r16 ; pop erhöht erst den Stapelzeiger SP um 1 und lädt dann r16 mit dem adressierten SRAM-Byte

    Interessant ist auch, daß die Befehle rcall / icall / call und Inter. die aus 2 Bytes besteh. Rücksprungadresse
    auf den Stapel legen, und automatisch durch ret bzw. iret wieder entfernt werden.
    Wie gesagt, man schreibt im Quelltext notorisch so viele Befehlsabläufe und wies eigentlich garnicht, was da so
    richtig passiert. Alles ist natürlich auch eine Zeitfrage um sich mit der Materie zu beschäftigen.
    Ich als Rentner habe die Zeit, und der Geist bleibt dadurch in Bewegung.

    Das wars erst mal, hoffentlich langweilt Dich dieses Thema nicht.

    Grüße

    Rolf

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von hegewald Beitrag anzeigen
    das ist doch eine Adresse im SRAM-Bereich,oder?
    Ja. Variablen wachsen von niedriger Adresse nach hoher Adresse, der Stack von hoher nach niedriger Adresse.
    Wenn der Stackverbrauch zu groß wird, z.B. durch rekursiven Code, dann wächst er in die Variablen hinein und es gibt Datensalat.
    Wie das beim Tiny13 aussieht, kann ich nicht erkennen, oder Datenblatt ranholen.
    RAMEND ist je nach Prozessortyp und dessen SRam-Größe an anderer Adresse, das Prinzip bleibt zumindest bei den hier besprochenen Prozessoren immer gleich.
    Interessant ist auch, daß die Befehle rcall / icall / call und Inter. die aus 2 Bytes besteh. Rücksprungadresse
    auf den Stapel legen, und automatisch durch ret bzw. iret wieder entfernt werden.
    Der Stack arbeitet nach dem LiFo-Prinzip, last in, first out.
    Das wars erst mal, hoffentlich langweilt Dich dieses Thema nicht.
    Nein, sonst hätte ich ja nicht geantwortet. Wobei Du mir zur Funktion aber sicher nix Neues sagen kannst

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

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

Berechtigungen

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

12V Akku bauen