Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Compilatore C XC32 per PIC a 32 bit

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto UtenteEcoTan » 11 feb 2018, 17:07

Ho adoperato molte volte, sia pure alla garibaldina, il compilatore XC16 e adesso vorrei passare a XC32 ma purtroppo sto per arrendermi.
Come si fa a dichiarare una ISR?
Prendendo come esempio il Timer1, con XC16 bastava consultare la UserGuide (del C30) e quindi scrivere:

void __attribute__((no_auto_psv)) _ISR _T1Interrupt(void)//timer1
{ //codice della ISR
FS0bits.T1IF = 0;} //ISR esce

La user guide di XC32 invece recita:

void __attribute__((interrupt(IPL7SRS))) bambam (void);

ma che significa? Al posto di bambam dovrei mettere qualcosa che si colleghi all'interrupt del Timer 1, ma non riesco a trovare il metodo giusto.
Avatar utente
Foto UtenteEcoTan
5.057 4 10 13
Expert EY
Expert EY
 
Messaggi: 2755
Iscritto il: 29 gen 2014, 8:54

0
voti

[2] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto UtenteEcoTan » 3 mar 2018, 13:05

Fin qui son riuscito a programmare in qualche modo il pic32 ma ISR nisba.
A quanto pare dovrei usare un sottosistema che si chiama Harmony ma non mi ci raccapezzo e poi mi sta antipatica l'idea.
Avatar utente
Foto UtenteEcoTan
5.057 4 10 13
Expert EY
Expert EY
 
Messaggi: 2755
Iscritto il: 29 gen 2014, 8:54

0
voti

[3] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto Utentelelerelele » 4 mar 2018, 0:54

non è che il tuo

bambam(void);

sia una dichiarazione di funzione, forse devi mettere il nome della routine che viene chiamata dall'interrupt?

bambam(void){
//codice della ISR
FS0bits.T1IF = 0;
}
Avatar utente
Foto Utentelelerelele
1.865 2 7 8
Expert EY
Expert EY
 
Messaggi: 2049
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[4] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto UtenteEcoTan » 4 mar 2018, 10:13

Intanto grazie.
Per adesso ottengo
../src/prova.c:33:1: error: conflicting types for 'bambam'
comunque ci proverò ancora
Avatar utente
Foto UtenteEcoTan
5.057 4 10 13
Expert EY
Expert EY
 
Messaggi: 2755
Iscritto il: 29 gen 2014, 8:54

0
voti

[5] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto Utentelelerelele » 4 mar 2018, 17:12

che sia da dargli l'indirizzo fisico di funzione &bambam(void), oppure &bambam(). (questa e commerciale viene un po strana), comunque passandogli il puntatore all'indirizzo di funzione, chissà.

saluti.
Avatar utente
Foto Utentelelerelele
1.865 2 7 8
Expert EY
Expert EY
 
Messaggi: 2049
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

1
voti

[6] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto Utentebanjoman » 4 mar 2018, 17:25

Prototipo della funzione

Codice: Seleziona tutto
void __attribute__((interrupt(IPL7SRS))) funzione_gestione_interrupt (void);


implementazione della funzione
Codice: Seleziona tutto
void __attribute__((interrupt(IPL7SRS))) funzione_gestione_interrupt (void)
{
   // codice che gestisce l'interrupt
}
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
6.483 5 8 11
Master EY
Master EY
 
Messaggi: 1038
Iscritto il: 19 set 2013, 19:27

0
voti

[7] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto UtenteEcoTan » 4 mar 2018, 21:44

Beh, così compila (ma anche cambiando i due nomi compila egualmente).
Stasera sono purtroppo indisposto, quanto prima controllerò se esegue veramente la routine.
Avatar utente
Foto UtenteEcoTan
5.057 4 10 13
Expert EY
Expert EY
 
Messaggi: 2755
Iscritto il: 29 gen 2014, 8:54

1
voti

[8] Re: Compilatore C XC32 per PIC a 32 bit

Messaggioda Foto Utentebanjoman » 5 mar 2018, 0:27

Beh ma era sottinteso che puoi dare il nome che vuoi alla funzione.... io l'ho chiamata cosi' per chiarezza :-P
E se compila senza errori ne' warning vedrai che funzionera' :ok:
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
6.483 5 8 11
Master EY
Master EY
 
Messaggi: 1038
Iscritto il: 19 set 2013, 19:27


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite