aitouares jeremy
/
finalDS18S20
DS18S20
main.cpp@0:5b6520e71eb6, 2012-04-26 (annotated)
- Committer:
- aitouares
- Date:
- Thu Apr 26 14:18:31 2012 +0000
- Revision:
- 0:5b6520e71eb6
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aitouares | 0:5b6520e71eb6 | 1 | |
aitouares | 0:5b6520e71eb6 | 2 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
aitouares | 0:5b6520e71eb6 | 3 | // // |
aitouares | 0:5b6520e71eb6 | 4 | // Fonctionnement du programme du DS1820 // |
aitouares | 0:5b6520e71eb6 | 5 | // // |
aitouares | 0:5b6520e71eb6 | 6 | // // |
aitouares | 0:5b6520e71eb6 | 7 | // 1) Pour commencer le MBED initial le bus 1-Wire c'est-à-dire : // |
aitouares | 0:5b6520e71eb6 | 8 | // - MBED envoi une impulsion à 0 pendant 480µs minimum // |
aitouares | 0:5b6520e71eb6 | 9 | // - Puis le DS1820 répond avec une impulsion à 0 de 60à 240µs. // |
aitouares | 0:5b6520e71eb6 | 10 | // 2) On utilise la fonction «Search ROM [F0]» qui va permettre au MBED de récupérer tous les numéros // |
aitouares | 0:5b6520e71eb6 | 11 | // de ROM des DS1820 et par la même occasion de savoir combien de DS1820 il y a sur le bus 1-Wire. // |
aitouares | 0:5b6520e71eb6 | 12 | // 3) On fait un reset du bus 1-Wire on envoi le numéro de ROM « 0x10,0x65,0xF2,0x45,0x2,0x8,0x0,0xAE » // |
aitouares | 0:5b6520e71eb6 | 13 | // pour communiquer avec le DS1820 désiré puis on utilise la fonction « Convert Temperature [44] », // |
aitouares | 0:5b6520e71eb6 | 14 | // la valeur de la température est stocké dans le deuxième octet du scratchpad. // |
aitouares | 0:5b6520e71eb6 | 15 | // 4) Puis on va lire dans le scratchpad la valeur de la température stockée dans la variable « temperature » // |
aitouares | 0:5b6520e71eb6 | 16 | // prise par le DS1820. // |
aitouares | 0:5b6520e71eb6 | 17 | // 5) Affichage de la variable « temperature » sur un HyperTerminal grâce à une liaison série. // |
aitouares | 0:5b6520e71eb6 | 18 | // // |
aitouares | 0:5b6520e71eb6 | 19 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
aitouares | 0:5b6520e71eb6 | 20 | |
aitouares | 0:5b6520e71eb6 | 21 | |
aitouares | 0:5b6520e71eb6 | 22 | |
aitouares | 0:5b6520e71eb6 | 23 | |
aitouares | 0:5b6520e71eb6 | 24 | |
aitouares | 0:5b6520e71eb6 | 25 | |
aitouares | 0:5b6520e71eb6 | 26 | #include "mbed.h" |
aitouares | 0:5b6520e71eb6 | 27 | #include "DS18S20.h" |
aitouares | 0:5b6520e71eb6 | 28 | |
aitouares | 0:5b6520e71eb6 | 29 | |
aitouares | 0:5b6520e71eb6 | 30 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
aitouares | 0:5b6520e71eb6 | 31 | // // |
aitouares | 0:5b6520e71eb6 | 32 | // Affichage de la temperature // |
aitouares | 0:5b6520e71eb6 | 33 | // // |
aitouares | 0:5b6520e71eb6 | 34 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
aitouares | 0:5b6520e71eb6 | 35 | |
aitouares | 0:5b6520e71eb6 | 36 | |
aitouares | 0:5b6520e71eb6 | 37 | int main() /* debut du programme principal */ |
aitouares | 0:5b6520e71eb6 | 38 | { |
aitouares | 0:5b6520e71eb6 | 39 | |
aitouares | 0:5b6520e71eb6 | 40 | float temperature; /* declaration de la variabble |
aitouares | 0:5b6520e71eb6 | 41 | flotante temperature */ |
aitouares | 0:5b6520e71eb6 | 42 | G__MOS_P =1 ; /* initialisation du P-MOS */ |
aitouares | 0:5b6520e71eb6 | 43 | FindDevices(); /* fonction cherchant le nombre de ds1820 |
aitouares | 0:5b6520e71eb6 | 44 | et leur numero de serie */ |
aitouares | 0:5b6520e71eb6 | 45 | |
aitouares | 0:5b6520e71eb6 | 46 | |
aitouares | 0:5b6520e71eb6 | 47 | while (true) /* boucle while infini */ |
aitouares | 0:5b6520e71eb6 | 48 | { |
aitouares | 0:5b6520e71eb6 | 49 | |
aitouares | 0:5b6520e71eb6 | 50 | if ( First() ) /* fonction if */ |
aitouares | 0:5b6520e71eb6 | 51 | { |
aitouares | 0:5b6520e71eb6 | 52 | temperature = DS1820_GetTemp(); /* affectation du resultat de la temperature |
aitouares | 0:5b6520e71eb6 | 53 | a la variable temperature */ |
aitouares | 0:5b6520e71eb6 | 54 | pc.printf("\t temp = % +.3g""\xb0""C \r",temperature); /* affichage de la temperature */ |
aitouares | 0:5b6520e71eb6 | 55 | } |
aitouares | 0:5b6520e71eb6 | 56 | } |
aitouares | 0:5b6520e71eb6 | 57 | } |