Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

disabilitazione "automatica" degli interrupt

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] disabilitazione "automatica" degli interrupt

Messaggioda Foto UtenteMatteo91 » 21 mar 2010, 15:23

quando compilo un programma in ccs mi da i seguinti warning:
"interrupt disabled during call to prevent re-entrancy :(@delay_ms(1))" (gli altri warning sono simili cambia solo l'istruzione...)
premetto che il delay è nel main,mentre tutti gli altri sono all'interno della sub di interrupt...

qualche consiglio??? :)
Avatar utente
Foto UtenteMatteo91
0 4
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 29 dic 2008, 23:32

0
voti

[2] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto UtentePaolino » 21 mar 2010, 20:35

Matteo91 ha scritto:qualche consiglio??? :)

Sì, solo uno: all'interno delle routine di interrupt, i ritardi con funzioni tipo delay oppure "cicli for" di conteggio vanno evitati come la peste!
Se stai cercando di fare una routine di antirimbalzo ti consiglio caldamente altri approcci!
Altrimenti tutto il vantaggio che ne deriva dall'uso degli interrupt si vanifica...!

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[3] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto UtenteMatteo91 » 21 mar 2010, 21:37

Paolino ha scritto:all'interno delle routine di interrupt, i ritardi con funzioni tipo delay oppure "cicli for" di conteggio vanno evitati come la peste!

ahah infatti ho imparato la lezione...XD
però adesso mi da sempre lo stesso errore però non esiste !!! ç _ ç
cioè,mi dice "warning line 64..." il programma finisce a 59! :shock:
me lo da in "@delay_ms1" ....il problema è che li non ci sono delay!
Avatar utente
Foto UtenteMatteo91
0 4
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 29 dic 2008, 23:32

0
voti

[4] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto UtenteDonJ » 21 mar 2010, 21:41

Avrai fatto un poccio di quelli che ci perdi un'ora per poi scoprire che era una virgola. :mrgreen:

Posta il codice che ci diamo un'occhiata
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2559
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

0
voti

[5] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto UtenteMatteo91 » 21 mar 2010, 22:38

DonJ ha scritto:Avrai fatto un poccio di quelli che ci perdi un'ora per poi scoprire che era una virgola. :mrgreen:

sicuro!! :) spesso una virgola o un'istruzione ti fa penare più di una donna!!!ahaha
mah,guarda il codice è banale:
Codice: Seleziona tutto
void main()
{
   setup_adc_ports(AN0_VREF_VREF);//settaggio del canale A0 e vref+ = A3 ;Vref- = A2
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
    setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(GLOBAL);
   enable_interrupts(INT_RB);
   lcd_init();
   PWM=10; //variabile di prova!
   while(1){
   lcd_putc("\f"); //pulitura il display
   lcd_gotoxy(1,1);
   lcd_putc("PWM al:");
   lcd_gotoxy(1,8);
   printf(lcd_putc,"%u",PWM); //scrive sul display il valore del PWM
   }
}
/// l'errore me lo da in questa linea...ma non c'è niente!!!  :shock:


quando lo compilo mi da il seguente warning:
interupts disabled during call to prevent re-entrancy:( @delay_ms1)

la variuabile PWM verrà in seguito generada da un'altra sub in base alle necessita...al momenento la fisso !XD
Avatar utente
Foto UtenteMatteo91
0 4
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 29 dic 2008, 23:32

0
voti

[6] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto Utentec1b8 » 22 mar 2010, 11:28

Il codice che hai postato non mi pare abbia problemi, ma è solo una parte del sorgente. Il problema potrebbe essere da altre parti.
Ad esempio in una funzione precedente al main ci potrebbero essere o mancare delle { o delle }.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[7] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto UtenteMatteo91 » 22 mar 2010, 20:15

c1b8 ha scritto:Il codice che hai postato non mi pare abbia problemi, ma è solo una parte del sorgente. Il problema potrebbe essere da altre parti.
Ad esempio in una funzione precedente al main ci potrebbero essere o mancare delle { o delle }.

prima mi dava lo stesso warning in sottoprogrammi che richiedevano delay.....però stavano nell'interrupt!li ho tolti e messi fuori dall'interrupt....però "esistevano",cioè dove dava il warning c'èra l'istruzione!!!!!!
qui non c'è niente!!!! :shock: :shock:
Avatar utente
Foto UtenteMatteo91
0 4
Frequentatore
Frequentatore
 
Messaggi: 117
Iscritto il: 29 dic 2008, 23:32

0
voti

[8] Re: disabilitazione "automatica" degli interrupt

Messaggioda Foto Utentec1b8 » 22 mar 2010, 23:03

Quello che volevo dire è che non è possibile verificare se è presente qualche errore solo vedendo una parte del codice, o lo si vede tutto o è difficile/impossibile formulare una ipotesi di soluzione.
Non per questo l'errore è necessariamente nel codice, potrebbe essere un problema di progetto: qualche flag impostato nel modo non corretto. Il fatto che ti segnali errore in righe di codice che non sono presenti potrebbe significare che nemmeno tenta di compilare o che tenta di compilare qualche cosa di diverso da quello che tu ti aspetti compili (altri file).
E', in definitiva, una situazione molto strana e dovrebbe essere valutata nel complesso.
perché non provi a creare ex novo un progetto e quindi copiare il codice che ti interessa, non copiare i file ma il codice.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti