Pic Frage!

Gast #22467
Lesenswert?
• ▲
▼
Hi

Ich möchte beim Pic 16F84 Controller, in einer Interrupt-Routine ein 
Unterprogramm aufrufen! Beim compilieren gibt es immer ein Fehler, und 
zwar, dass er das Unterprogramm nicht findet!
Wie muss ich Initialisierung+Hauptprogramm, Service Routine und 
Unterprogramm anordnen, damit ich erfolg habe???

Vielen Dank
Gast #22469
Lesenswert?
• ▲
▼
sorry, es ist in Assembler geschrieben!

etwa so:


org 0
goto init

********************************
org 4
isr:


reti
***********************
***********************
org 100
init:
....
...
...

loop: goto loop

***********************
Gast #22471
Lesenswert?
• ▲
▼
Ich hab den Original Source jetz gerade nicht bei mir sorry!
Ich möchte ja "nur" wissen, wie man ein Unterprogramm in einer Interrupt 
Routine aufruft!!!




org 0
goto init

********************************
org 4
isr:
call   unterprogramm

reti
***********************
***********************
org 100
init:
....
...
...

loop: goto loop

***********************

***********************
org 200
Unterprogramm:
....
...
...

return

***********************
Gast #22472
Lesenswert?
• ▲
▼
Dein Gerippe ist syntaktisch falsch. Eventuell ist ja das Dein Problem, 
nachdem wir Deinen Sourcecode nicht kennen.
Setze mal einen Punkt vor Deine Direktiven (in diesem Fall "org"), also 
".org" und davor noch ein ".cseg"
Ansonsten hilft da nur der Sourcecode...
Gast #22473
Lesenswert?
• ▲
▼
Sorry, jetzt bringe ich PIC und AVR total durcheinander. Aber Du 
anscheinend auch.
Aber beim PIC (unter MPLAB) sollte das mit dem ORG so aussehen:

Unterprogramm ORG 0x200 ;für Start-Hex-Adresse 200h


also ohne Doppelpunkt und in dieser Reihenfolge.
Gast #22474
Lesenswert?
• ▲
▼
Ich weiss, dass ich AVR und PIC Befehle durcheinander bringe! Aber ich 
wollte ja nur das Prinzi rüberbringen!

Hier noch der Source Code!
Ich danke für eure  Hilfe!

Ich bekomme beim Compilieren im MPLAP Studio diesen Fehler:

Error[113]   P:\RS232 INT\RS232.ASM 147 : Symbol not previously defined 
(send_RS)
Angehängte Dateien:
Gast #22475
Lesenswert?
• ▲
▼
Hi Fabian,

ich denke, dein Fehler liegt in der Groß- Kleinschreibung. Deine 
Funktion ist als "Send_RS" definiert und Du rufst sie mit "send"_RS auf. 
Deshalb kennt er diese Funktion nicht. Beim Assembler ist es das gleiche 
wie in C, Groß-Kleinschreibung wird beachtet. Zumindest bei MPLAB.

Gruß,

Ralf
Gast #22477
Lesenswert?
• ▲
▼
Hallo Fabian,
Dein Programm läuft trotzdem nicht denn Du rufst ein Unterprogramm mit 
CALL Send_RS auf und schließt dieses nicht wieder mit RETURN. Ich habs 
mal laufen lassen. Wenn man das ausklammert kommt noch ein EOF Fehler, 
d.h. das Programm hängt irgendwo fest.

MfG  Manfred Glahe
Gast #22480
Lesenswert?
• ▲
▼
Hab ich jetzt gerade gemacht!

hat funktioniert:
es kamen nur diese beiden Meldungen:


Executing: "C:\Programme\MPLAB IDE\MCHIP_Tools\mpasmwin.exe" /q /p16F84 
"asdf.asm" /l"asdf.lst" /e"asdf.err"
Message[302] P:\ASDF.ASM 118 : Register in operand not in bank 0. 
Ensure that bank bits are correct.
Message[302] P:\ASDF.ASM 124 : Register in operand not in bank 0. 
Ensure that bank bits are correct.
Loaded P:\asdf.COD
BUILD SUCCEEDED


Hast du die Include Datei richtig eingefügt?

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.