Confusione col compilatore

10 Anni 7 Mesi fa #1 da enzocavallaro
Confusione col compilatore è stato creato da enzocavallaro
Ciao a tutti,
tvolevo chiedere una cosa circa il blink led:
Sto provando a far lampeggiare un led (il tuo progetto) però con un pic18F ma quando provo a compilare (PICC18 9.80) mi da errore sulle righe _asm e _endasm e non compila.

l’errore è:

main.c:100 warning: unknown pragma "code"
main.c:103: error: expression syntax
main.c:106: error: ";" expected

mettendo in rosso _asm e _endasm



Guardando sul manuale del compilatore ho visto che devo usare la sintassi:

#asm
goto interrupt_priorita_alta
#endasm


ma cosa ancora piu strana mi da errore su : goto interrupt_priorita_alta (Unable to resolve identifier goto interrupt_priorita_alta) ma ciò nonostante compila ma non rileva l’interrupt.


Allora sempre sul manuale del compilatore ho trovato la sintassi:
asm(“goto interrupt_priorita_alta”);

questa volta compila senza errori ma non rileva l’interrupt.

Cosa sto sbagliando?
Per favore mi potreste dare una mano
Grazie
Enzo


Questo è il codice


#define XTAL_FREQ 20MHZ

#include <p18f4620.h>


//__CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & BOREN_OFF & LVP_OFF & CPD_ON & PWRTE_ON & DEBUG_OFF & CP_ON);



#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config PWRT = ON
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = ON
#pragma config PWRT = ON
#pragma config DEBUG = OFF
//#pragma config CP0 = ON // Code protection not used
//#pragma config CP1 = ON // Code protection not used
//#pragma config CP2 = ON // Code protection not used
//#pragma config CP3 = ON // Code protection not used
//#pragma CPD = ON //Data EEPROM code-protected.



#define TEMPOLED 250
unsigned char TimerLed=0;


void settings(void)
{


PORTA=0;
TRISA=0b00100000;

PORTB=0;
TRISB=0b10000000; // RB7-RB4 pulsanti

PORTC=0;
TRISC=0b11100000; // RC7 e RC6 pin di ricetrasmissione seriale; RC5 per stato RDFI

PORTD=0;
TRISD=0b00000000;

PORTE=0;
TRISE=0b00000111;
nRBPU=0; // attivo le resistenze di pullup su porta B


// Impostazione del registro OPTION (pag.55 del datasheet)
T0CON=0b00000100;
// bit 0 -> Prescaler Rate Select bit 0
// bit 1 -> Prescaler Rate Select bit 0
// bit 2 -> Prescaler Rate Select bit 0 (1:32)
// bit 3 -> Prescaler assegnato al Timer0
// bit 4 -> Non importa
// bit 5 -> Clock per Timer0 derivato da ciclo di clock interno
// bit 6 -> Non importa
// bit 7 -> Resistenze di pull-up su porta B attivate


GIE=1; // gestione globale interrupt attiva
PEIE=1; // interrupt di periferica attivati
RCIE=1; // interrupt di ricezione su seriale attivato
TMR0IE=1;//Interrupt su Timer0 attivato
TMR0=100; // Imposto Timer0 a 100


CMCON = 7;
ADCON1 = 7;

}

void main(void) {

settings();

while (1) {

//DelayMs(500);
//LATB4 = ~LATB4;

}



} // main



void interrupt_priorita_alta(void);


#pragma code vettore_alta_priorita = 0x08
void ISRH(void)
{
_asm
goto interrupt_priorita_alta
_endasm
}

#pragma code
#pragma interrupt interrupt_priorita_alta
void interrupt_priorita_alta(void)
{
if (T0IF) // L'interrupt è stato causato da un overflow del timer0 ?
{
TMR0 = 100; // Reimposto Timer0
TimerLed++; // Incremento il Timer per il lampeggio del led
if (TimerLed >= TEMPOLED) // Se il tempo è passato
{
LATB4=LATB4^1; // Inverto lo stato del led per farlo lampeggiare
TimerLed=0; // Ricarico il timer del led per ricominciare daccapo
}
T0IF=0; // Resetto il flag interrupt su timer 0,
} // fine che interrupt verificatosi su timer0
}

Ps per far funzionare l'interrupt devo usare


void interrupt isr(void)
{
/* ... */
}

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • enzocavallaro
  • New Member
  • New Member
Di più
10 Anni 7 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Confusione col compilatore
Ciao Enzo,

credo tu abbia installato la versione del compilatore C associato al vecchio Hitech e non il compilatore C18.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login