160 likes | 427 Views
FORMATION PROGRAMMATION LE LOGICIEL MPLAB. Jeudi 21 octobre 2010. Sommaire. Comme pour la réalisation de la carte électronique, on ne se lance pas dans la programmation avant de savoir POURQUOI on va programmer !. Petit rappel : on veux ouvrir la porte arrière de notre robot :.
E N D
FORMATION PROGRAMMATIONLE LOGICIEL MPLAB Jeudi 21 octobre 2010
Comme pour la réalisation de la carte électronique, on ne se lance pas dans la programmation avant de savoir POURQUOI on va programmer ! Petit rappel : on veux ouvrir la porte arrière de notre robot :
Pour ça, on utilise un servomoteur : Alimenté par un PWM :
Le programmer Commander le servo Régler l’horloge L’alimenter Le faire communiquer avec la carte maître
Le type du PIC D’éventuels fichiers d’en-tête Les fusibles La cadence de l’horloge L’ordre de priorité des interruptions Les ports du PIC Le début du programme principal
Les boucles : for(i=0;i<10;i++) { blabla; } while(condition) { blabla; } Les tests logiques : if(condition) { blabla; } else { blabla; } condition est un booléen (qui vaut donc soit « true » soit « false ») obtenu à partir d’un test : d’égalité : == de supériorité : > d’infériorité : <
Déclaration du port comme entrée ou sortie : • set_tris_X(valeur) X est le port (A, B ou C). • valeurest un nombre binaire b7b6b5b4b3b2b1b0 tel que si bi est à 0, le pin Xi est en sortie, sinon il est en entrée. • Si déclaré en sortie, déclaration de la valeur de cette sortie : 0 ou 5V : • output_X(valeur) • Ici si bi est à 0, le pin Xisort 0, sinon il sort 5V. • output_bit(pin, binaire) • pin : nom du pin (par exemple pin_B7) • binaire : 0 -> sortie du pin à 0, 1 -> sortie du pin à 5V.
Si déclaré en entrée, lecture de cette valeur : input(pin) retourne 0 si le pin est à 0V, 1 si il est à 5V. input_X() retourne un octet représentant la valeur de chacun des pins du port X. Une fonction bien utile pour bloquer l’horloge du PIC : delai_ms(temps) delai_us(temps)
On récapitule : On veut générer un PWM pour ouvrir notre porte. Avant de l’envoyer directement sur le servomoteur, on pourra tester notre programme sur une LED