Bonjour,
J'ai pour projet de fin d'année la réalisation d'un accès sécurisé avec un capteur d'empreinte, une gâche électrique et une application android. Je me charge de la partie bluetooth où je dois réaliser une interruption pour recevoir les données envoyées par le téléphone. Je travaille donc avec un module bluetooth six broches (HC-05) et la carte PIC16F887. Mon problème étant que mon prof' m'a donné un bout de code mais je comprends assez mal certaines de ces lignes malgré les nombreux commentaires. Si une personne pouvait me résumer l'utilisation de ce code, ce serait sympathique.
Code:char int=0; //variable de comptage du nb d'interruption char Tab[] = " "; //tableau recevant les octets reçus par INT void Interrupt() //Sous-programme gérant l'INT { if (PIR1.RCIF) { INTCON.GIE = 0; //arrêt de la reception d'INT portb = 0xFF; //mise à 255 de port B si interruption delay_ms(100); //temps pour voir la mise à 0b11111111 de port B Tab[int] = Usart_Read(); //lecture de la donnée arrivant par Rx + vidage //sinon RCIF va rester à '1' (donc INT sans cesse) int++; INTCON.GIE = 1; //Autorisation de prise en compte d'INT } } void Init_PIC() { RCSTA.SPEN = 1; //auorise le fonctionnement de l'USART Usart_init(9600); //définit la vitesse de USART INTCON.GIE =1; //autorise les interruptions INTCON.PEIE =1; //autorise les interruptions venant des périphériques PIE1.RCIE =1; //autorise les interruptions venant de Rx... trisb=0; Lcd_Init (&PORTD); Lcd_Cmd(Lcd_Clear); Lcd_Out(1,1,"Affiche car BT :"); //ecriture sur ligne 1 } void main() { char int2; //variable de comptage 2 Init_PIC(); //appel au SP d'init while(1) { porb=0; Lcd_Out(2,1,Tab); //ecriture de tout le tableau sur ligne 2 delay_ms(150); //durée de visibilité de l'affichage if(int==16) //ici pour savoir si on est au bout du LCD { int=0; //repositionne i au début pour avoir tab neuf for (int2=0; int2<16; int2++) //efface la ligne déjà écrite Tab[int2] = ' '; } } }
-----