Bonjour, c'est mon tout premier message sur le forum
Bon voici mon programme :
Le programme marche très bien, mon soucis, c'est que pour un T = 1 seconde, quand le programme est a l'instruction "vdelay(T)", il est en attente, et donc, pendant ce moment, je ne peux pas changer la valeur de T.Code:int i,T; // Déclaration des deux variables. void main() { TRISB = 0x00; // Je met le port B en sortie. TRISA = 0xFF; // Je met le port A en entrée. T = 1000; // Je met la variable T sur 1000. do { for(i=0;i<255;i++) { if (PORTA.RA1=1) { T=T+200; } // Si l'utilisateur appui sur RA1, T augmente de 200. if (PORTA.RA2=1) { T=T-200; } // Si l'utilisateur appui sur RA2, T baisse de 200. if (T<=0) { T=10; } // On fixe une valeur minimale a T, qui est de 10. PORTB = i; // Le port B prends la valeur de i (qui varie de 0 a 255), donc on a un compteur. vDelay_ms(T); // Le PIC laisse le port B allumé pendant T (en millisecondes ) avant de passer a l'instruction suivante. if (PORTA.RA0=1) break; // Si l'utilisateur appui sur RA0, le programme arrête le comptage et sort de la boucle for. } } while(1); // Quand i atteint 255, on a le cycle qui recommence de 0 indéfiniment. }
Ce que je voudrais faire, c'est de changer la valeur de T quelque soit la ligne ou en ai arrivé le programme, un peu une sorte de changement de variable... dynamique si le mot est juste.
Une aide s'il vous plait ?
J'en voudrais aussi une pour l'interruption si possible ^^
Je suis nouveau avec les PIC et c'est mon tout nouveau programme
-----