Kleines Programm geht nicht

Gast #130289
Lesenswert?
• ▲
▼
Hi, ist leider ein doppelpost, habs falsch reingeschrieben.

Mit diesem Programm möchte ich erzielen, einfach eine Led mit den 2
Interuppt`s per PWM heller oder dunkler zu machen. Doch mein Problem
ist, das
beim Debugger bei LJMP Init nicht auf Init sondern gleich am Anfang in
den zweiten Interuppt springt. Hab ich da was falsch gemacht?




INCLUDE 89c52.mc




LJMP Init             'Überspringe Interruptroutine nach einem Reset



(0003h): ;Interuppt 0


  INC R0
  IF R0 > #DFh THEN MOV R0,#DFh

  RETI

(0013h): ;Interuppt 1


  DEC R0
  IF R0 < #2Fh THEN MOV R0,#2Fh

  RETI


(000Bh):        'Einsprungadresse Interrupt Timer 0

  MOV TH0,#FFh      'High Byte vom Timer 0 setzen
  MOV TL0,R0      'Low Byte vom Timer 0 setzen
  SETB P0.0
  CLR P0.0



RETI          'Zurück aus der Interruptbehandlung ins Programm


'************************************************


Init:

  MOV SP,#10h      'Stackpointer hinter die Registerbank 1
  MOV R0,#DFh




  'Grundeinstellung des Timer 0 und der dazugehörigen Interrupts:
  MOV TMOD,#01h       'Timer 0 Modus = 1
  MOV TH0,#FFh      'High Byte vom Timer 0 setzen
  MOV TL0,R0      'Low Byte vom Timer 0 setzen
  SETB EA        'Interruptbehandlung aktivieren
  SETB ET0        'Interrupt für Timer 0 aktivieren
  SETB TR0        'Timer 0 Start
  SETB EX0    ;Interuppt 0 ein
  SETB EX1    ;Interuppt 1 ein
  SETB P0.0

'************************************************

Programm:


  JMP Programm
Gast #130290
Lesenswert?
• ▲
▼
Sieht nach 8051-Code aus aber gibs da wirklich so was wie IF und THEN
als Assemblerbefehle???
In Basic OK aber in Assembler?
Oder hast Du da nen Basic-Compiler in dem man direkt ASM-Befehle
schreiben kann?
Wer mir neu.

Gruß
Andi
Gast #130293
Lesenswert?
• ▲
▼
Hallo Andi.

Tut mir leid, ich bin nicht faul. Ich hatte dieses Problem schon öfter,
nur bin ich bis jetzt nicht draufgekommen. Ich meine mit LJMP Init muß
er doch zu Init springen, oder nicht? Hab ich da was übersehen oder von
der Programmstruktur was falsch gemacht?

Warum bezeichnest du mich als faul?

Ich möchte dieses kleine Programm noch bei einem großen Programm
einbinden, und es funktioniert nicht mal so.

Wenn ich dann nach langem nicht draufkomme, dann werde ich doch mal ins
Forum schreiben darfen, damit mir dann klügere Leute weiterhelfen
können.

Gruß Avus
Gast #130294
Lesenswert?
• ▲
▼
Jetzt nims nicht übel oder hast Du den Wink übersehen?
Habe zwar schon nen Überblick über die ASM-Befehle vom 8051 aber bis
jetzt noch nix mit 8051 gemacht.
Habe bisher "nur" was mit AVR-ASM, 68000-ASM und ganz früher was mit
Z80-ASM gemacht.

Setzt Du mit den Hex-Zahlen in Klammern eigentlich die Prog-Adresse?
Liegts vielleicht daran?

LJMP ist eigentlich ein Long-Jump und müßte damit gehen.
Ansonsten lass doch mal die Adressen in Klammern weg und/oder probiers
mit JMP.

Gruß
Andi
Gast #130296
Lesenswert?
• ▲
▼
Da muß wohl doch ein Spezialist ran der sich mit der
Interrupt-Organisation im 8051 auskennt.
HAAAALLLOOOOOOOO!

Gibs beim 8051 nicht ab Adresse 0000h eine Vektor-Liste wo man die
Sprünge zu den Interrupt-Progs setzen muss?

Schau mal im Datenblatt zum 8051 nach zwecks Interrupts.

Gruß
Andi

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.