Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Interruptions externes et agenda
Démon Robopoly Interruptions externes et agenda JIRI 10/05/2019
2
Comment contrôler un capteur ?
while(1) valeur = digitalRead(A, 5); Deux possibilités Polling Interruption externe JIRI 10/05/2019
3
Interruptions, as-tu dit ?
int main(void) { instruction 1; instruction 2; instruction 3; } //Code de //l'interruption : instruction A; instruction B; Interruption (exemple: le capteur voit quelque chose) Faire l'exemple de sat. THIBAULT 10/05/2019
4
Les flancs de 0 à 1 = flanc montant de 1 à 0 = flanc descendant
Typiquement : le capteur voit quelque chose JIRI 10/05/2019
5
Le microcontrôleur Une interruption externe est une détection "automatique" d'un changement d'état sur soit le PIND2 (INT0) soit le PIND3 (INT1) Ils doivent brancher !!! PHYSIQUEMENT !!! le capteur sur un de ces deux PINS pour que ça marche! JIRI là 10/05/2019
6
Programmation La libraire int_ext.h vous simplifie le travail
Ne pas oublier de copier les fichiers int_ext.h et int_ext.c dans le dossier du projet Inclure les fichiers dans le projet Mettre la ligne : #include int_ext.h THIBAULT 10/05/2019
7
Les commandes etat peut prendre les valeurs suivantes
void configure_INT0(etat, function); void configure_INT1(etat, function); etat peut prendre les valeurs suivantes RISING_EDGE = flanc montant FALLING_EDGE = flanc descendant ANY_CHANGE = flancs montant et descendant OFF = Désactive l'interruption THIBAULT 10/05/2019
8
Démonstration void main(void) { configure_INT0(FALLING_EDGE, m_stop); configure_INT1(RISING_EDGE, m_start); setupMotorPWM(100,100); while(1); } void m_stop(void) { setupMotorPWM(0,0); } void m_start(void) { setupMotorPWM(100,100); } JIRI 10/05/2019
9
Appeler des fonctions périodiquement
L'Agenda THIBAULT 10/05/2019
10
A quoi ça sert Appeler des fonctions, 8 au maximum, toutes les x millisecondes y fois. Exemple : f1 = addNewCallback(haha, 200, 5); Appelle la fonction "haha" toutes les 400ms et s'arrête après 5 appels. THIBAULT 10/05/2019
11
Explication char addNewCallback(function, Duration, Number);
f1 = addNewCallback(haha, 200, 5); Nom Dans l'exemple Valeur / Remarque Référence de la callback f1 Sert à supprimer la callback function haha Fonction appellée Duration 200 Période [ms] = 2 * Duration Duration = 0…65500 Number 5 Nombre d'appels 0 = infinit Number = JIRI 10/05/2019
12
Supprimer une callback
stopCallback(char callbackNumber); stopCallback(f1); f1 = la référence de la Callback JIRI 10/05/2019
13
Démonstration : Capteur de température
Notre capteur sort une tension en fonction de la température. Nous allons donc lire cette tension avec un ADC. Nous voulons mettre à jours cette valeur toutes les demi-secondes. Puis on envoie cette valeur sur l'ordinateur grâce à l'UART. THIBAULT 10/05/2019
14
checkTemp, le code. void checkTemp(void) {
} unsigned char temperature = analogReadPortA(0); uartSendByte(temperature); THIBAULT 10/05/2019
15
Main(), le retour du code.
#include <avr/io.h> #include "robopoly.h" void checkTemp(void); int main(void) { return 0; } addNewCallback(checkTemp, 250, 0); while(1); THIBAULT 10/05/2019
16
Démonstration THIBAULT 10/05/2019
17
Fireday Uno N'oubliez pas le Fireday de ce samedi dès 09h00
Petit concours facile entre nous (dès 16h00) Les membres du comité sont là pour vous aider. Venez même si vous ne faites pas le concours, vous pouvez finir de monter votre robot dans une bonne ambiance. THIBAULT 10/05/2019
18
A SAMEDI 10/05/2019
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.