Citazione:
Originalmente inviato da elicottero78 scusami  , if tempo =0 l ho scritto velocemente come testo non come lo scrivo nel programma
penso di aver capito che fin quando non finisce
if(tempo > 80) { portb=160; delay_ms(500); portb=32; delay_ms(500); portb=128; delay_ms(500); portb=32; delay_ms(500); }else{ portb=0; }
i 2 led lampeggieranno sempre fino alla fine del ciclo.....allora provo a spararne una grossa cavolata........
ma se io invece di scrivere
while(1)
scrivessi
while(tempo > 80)
non risolverei questo problema ?
scusami se ho detto una cavolata |
Codice:
portb=160;
delay_ms(500);
portb=32;
delay_ms(500);
portb=128;
delay_ms(500);
portb=32;
delay_ms(500); Queste istruzioni impiegano circa 2 secondi per essere eseguite.
Vedi qualcosa tra un'istruzione e l'altra che ne possa interrompere l'esecuzione una dopo l'altra???
(la risposta è, ovviamente, no)
Il problema non è il while, ma il fatto che queste istruzioni non possono essere interrotte...