Bonjour à tous,
Je réalise une carte électronique gérant des composants Dallas : les iButtons.
Je programme mon µControleur avec MPLAB, compilateur C18.
En gros mon programme attend qu'une personne mette son iButton sur le connecteur. Le programme va lire le code d'identification du iButton et ci celui la est correct une LED s'allume.
Rien de bien fou fou...
Mais j'aimerai savoir si le choix de ma boucle while(1) n'allait poser des problèmes (boucle infinie) :
En effet n'y a t'il pas un autre moyen de faire le test de "presence" par la boucle while.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 while(1) { unsigned char presence = 0x00; int i = 0; presence = ow_reset_g(); if(!presence) { struct Id_Key key = {0}; unsigned char CRC = 0x00; ecrire_octet(0x33); Delay10TCYx(240); for( i=0 ; i<8 ; i++) { key.id[i] = lire_octet(); } if((key.id[0] == 0x01) && (key.id[7] != 0x00)) { for( i=0 ; i<8 ; i++) { CRC = crc(CRC,key.id[i]); } if(!CRC) { beep(); PORTAbits.RA1 = 0; PORTAbits.RA2 = 1; } } } if(presence) { PORTAbits.RA2 = 0; PORTAbits.RA1 = 1; } Delay10KTCYx(240); }
Merci.
Bonne journée
Partager