Forum: Mikrocontroller und Digitale Elektronik Datei.lkr in MPLAB


von rapeur (Gast)


Lesenswert?

Hallo zusammen,
ihr habt mir immer geholfen und danke für ihr Hilfe. ich habe ein 
weiteres Problem. ich arbeite mit PIC18F4550 in MPLAB mit compiler C. 
ich moechte funktion(AND()) realisiert. ich könnte direkt in main 
Programm realisiert aber das will ich nicht, denn ich habe viele anderen 
Programm. bei mir liegt die Datei 18F4550.lkr wie konnte ich das 
benutzen. mit interrupt war schon mal ok, aber mit eine andere Funktion 
klapp nicht. ich habe sowas probiert

 #include <p18F4550.h>
 #include "weiter.h"

 #pragma SPS_FKT_PIN_gpr0=0x61

 void  interrupt_at_SPS_FKT_PIN_gpr0(void)
 {
  _asm GOTO SPS_PORT_FKT_gpr0  _endasm
 }

 #pragma code /* return to default code section */
 #pragma interruptlow SPS_PORT_FKT_gpr0

 void SPS_PORT_FKT_gpr0(void)
      {

     if(INTCONbits.TMR0IF)
       {
        SPS_FKT_AND();
       }

      }


#include "Test.h"

#include <p18F4550.h>


unsigned char SPS_FKT_AND()  //
  {

      if ((PORTAbitsRA1==1)&&(PORTAbits.RA2==1))
      {
    PORTAbits.RA3 =1;
      }
    }


CODEPAGE NAME=vectors    START=0x0           END=0x29 
PROTECTED
CODEPAGE NAME=page       START=0x2A          END=0x7FFF
CODEPAGE NAME=idlocs     START=0x200000      END=0x200007 
PROTECTED

und das ist das Fehler: undefined label SPS_PORT_FKT_gpr0 in 
interruptlow SPS_PORT_FKT_gpr0
Grüß

von timo (Gast)


Lesenswert?

glaube wenn du _asm benutzt, dann musst du es auch da wo er hinspringen 
soll auch benutzen


_asm goto labelXY_endasm
.
.
.
.

_asm
   labelXY
_endasm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.