mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer 0 98c20151 vs 80c515


Autor: paul leenders (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgernde Timer 0 initialisierung wird beim Start durchlaufen.

Mit  der Selbstbau Entwicklungsumgebung 80c515  läuft das Programm mit
dem Timer 0 interrupt einwandfrei.

Wenn ich das dann in den 89c2051 brenne  wird der Timer0 einfach nicht
ausgeführt. CPU Definitionsfile ist das Original für den 2051 in beiden
Fällen.

Wo mag die Ursache sein.

Paul
;---------------------------------------------------------------
ORG    00h
                jmp start;
;neben den anderen Vektoren  für den timer 0 das hier.
 ORG 0Bh
        ljmp timer0_int;   endet mit reti
........usw usw   mit jmp auch probiert das gleiche
;
org
                023H
                ljmp serial_int;    usw usw endet mit  RETI
;                      dto
Start:
              call timer_init;
 ;        weiter mit Programm
loop_haupt:

               call xyz
            call sonstwas
         jmp loop_haupt


timer_init:
                ; Initialisierung
;---------------------------------------------------------------
; serielle Schnittstelle aktivieren
;  4800 Baud, Modus 1
        mov TL1, #244
        mov TH1, #244

; Timer 0 aktivieren
;  Intervall: 500 ms
;  Software-Kontrolle Code-Generator für 8051-Kompatible
        mov TL0, #TL0PRE;    vom    Erik Buchmann
        mov TH0, #TH0PRE
        mov timer0_ext24,#TX0PRE

; die SFR's initialisieren
        mov SP,  #20h
        mov SCON,#82
        mov PCON,#128
        mov TMOD,#33
        mov TCON,#80
        mov IE,  #130
                SETB TR0;   TIMER 0 FREIGEBEN
    SETB ET0;
               SETB TF0;
;Es spielt auch keine Rolle ob ich die TR0 ET0 TFo setze oder nicht
;80515 läuft    89c2051 nix
        RET;   initialisierung gelaufen  ab ins programm


Besagte routinen sprich die Timer0_int  läuft auf dem 80c515
einwandfrei
auf dem 89vc2051 geht nix ich stehe vor einem Rätsel.
;----------------------------------------------------------------------- 
--------
; Interruptbehandlungsroutine Timer 0
timer0_int:
        mov TL0, #TL0PRE
        mov TH0, #TH0PRE
        djnz timer0_ext24,timer0_int_label
        mov timer0_ext24,#TX0PRE    ; alle 500 ms toggel p1.7
        cpl p1.7; das ist alles was Timer 0 zu tun hat.
        reti;   mit 515 und led am Port OK  mit 89c2051    nix iss.
;----------------------------------------------------------------------- 
----------

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Code sieht o.k. aus, es muß also an dem Rest des Programms liegen.

Die 8051 sind ja kompatibel, d.h. Timer, Uart usw. werden immer gleich
angesteuert.

Der AT89C2051 hat allerdings nur 128 Byte SRAM und keinen externen
SRAM, daran könnts liegen.



Peter

Autor: paul Leenders (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau

ich habs gefunden

Speicherzugriff in die SFR´s

Ich war schon ganz am Boden

Peter ..Danke hat mir sehr geholfen.

Paul

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.