INTERRUPTIONS ET TIMERS

Documents pareils
Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

Ordinateurs, Structure et Applications

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Configuration de TCPIPconfig.h

Une carte pour vos projets

Master4Light. Caractérisation Optique et Electrique des Sources Lumineuses. Equipement 2-en-1 : source de courant et spectrophotomètre

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Description du logiciel Modbus RTU

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Carte ARDUINO UNO Microcontrôleur ATMega328

Bonjour, Le document qui suit est le support de la formation ''Arduino applications distantes''.

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

RÉALISATION D UN BANC D ÉQUILIBRAGE

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

Conférence sur les microcontroleurs.

IUT GEII MARSEILLE Patrick GUMUCHIAN. Lycée Alphonse Benoit L'Isle sur la Sorgue Marc SILANUS

Génération de code binaire pour application multimedia : une approche au vol

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

OS Réseaux et Programmation Système - C5

Évaluation de la mise en oeuvre des recommandations issues des audits effectués à l Université Nationale du Bénin par la Banque mondiale et l UNESCO

MAC-TC: programmation d un plate forme DSP-FPGA

The low-cost GNSS GEOMON system for monitoring landslide displacements

Cours 7 : Programmation d une chaîne d acquisition

PROFESSIONNAL PORTABLE MULTITRACK RECORDER. Audio Equipment Manufacturer. SONOSAX SAS SA Ch. De la Naz Le Mont s/ Lausanne SWITZERLAND

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Garage Door Monitor Model 829LM

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL


Présentation Windows Azure Hadoop Big Data - BI

Solar Scintillation Monitor Manuel utilisateur

PIC EVAL Dev Board PIC18F97J60

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

La programmation des ATMEL AVR

AND / ET USER GUIDE UK HARDWIRED CONTROL PANEL UK GUIDE UTILISATEUR CENTRALE D ALARME FILAIRE F

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

Education Delivery Intelligent Tool

Manipulations du laboratoire

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Activité initiation Arduino

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Conventions d écriture et outils de mise au point

SIN-FPGA DESCRIPTION PAR SCHEMA

Cartographie des solutions BigData

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

ACTIVITÉ DE PROGRAMMATION

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

DGA. Self Contained Digicode Keypad Digicode avec électronique intégrée INSTALLATION MANUAL MANUEL D INSTALLATION. Group Company

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Temps Réel. Jérôme Pouiller Septembre 2011

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Programmation Par Objets

Cours Bases de données 2ème année IUT

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

Arbres binaires de recherche

TeSysT Dec. 17 th 2012 Management of the firmware version evolutions

Gestion mémoire et Représentation intermédiaire

Metretek Incorporated 305 East Drive, Suite A Melbourne, Florida, USA

Module GSM pour montage sur rail DIN GX155

Logiciels DSPiy. DSPiyStudio logiciels et format des fichiers. incomplet

Fonctions intégrées. Nouvelles solutions universelles & système de communication

PROGRAMMATION D'UN MICROCONTRÔLEUR

Mode d emploi. PJ Network Manager pour Windows. Logiciel SNMP Manager

La programmation des PIC en C. Les fonctions, les interruptions.

Analyse de sécurité de logiciels système par typage statique

SYSTEME DE TELESURVEILLANCE VIDEO

Architecture : Circuits numériques et éléments d architecture

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Isadora. Photo jpeg qualité 50% %, 320X240. Prérequis

2) Téléchargement de l'application pour contrôler vos caméras :

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

TABLE DES MATIÈRES. Avant-propos... 1 Communications série Entrées simples analogiques et numériques... 61

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Les failles Format String

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés Volubis.fr

Traceur GPS Antivol. Le traceur est conforme aux normes européennes 95/56 E27

TRACKER GT400 Une nouveauté Techdigitale

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Initiation à l algorithmique

Enregistreur sans papier avec écran TFT et carte Compact Flash. B Description des interfaces 07.07/

CG-G5 - Alarme électronique Kit de démarrage de système d'alarme mobile sans fil

Sélection du contrôleur

TP D AUTOMATISME TS2 CIRA (première partie)

PVCHECK Rel /11/12

Projet de programmation (IK3) : TP n 1 Correction

Programme Compte bancaire (code)

Once the installation is complete, you can delete the temporary Zip files..

CSS channel Digital watchdog (page 21 to 38) Watchdog numérique 5 canaux (page 3 à 20) Manuel Utilisateur User s Manual

Transcription:

INTERRUPTIONS ET TIMERS

Système d alarme

Blinking LED (2 secondes) 1000 ms 2000 ms 1000 ms

Blinking LED (2 secondes) #define LED_PIN 13; void setup() { pinmode(led_blink_pin, OUTPUT); } void loop() { digitalwrite(led_blink_pin, HIGH); delay(1000); digitalwrite(led_blink_pin, LOW); delay(1000); }

État de la Porte Capteur = 0 Capteur = 1

État de la Porte: LED Bleu

Blinking LED + État de la Porte void setup() { pinmode(led_blink_pin, OUTPUT); pinmode(led_porte_pin, OUTPUT); pinmode(porte_pin, INPUT); } 1000 ms void loop() { digitalwrite(led_blink_pin, HIGH); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(1000); digitalwrite(led_blink_pin, LOW); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(1000); } 1 s. pour les voleurs!!! 2000 ms 1000 ms

État de la porte plus souvent void setup() { pinmode(led_blink_pin, OUTPUT); pinmode(led_porte_pin, OUTPUT); pinmode(porte_pin, INPUT); } void loop() { digitalwrite(led_blink_pin, HIGH); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(1000); digitalwrite(led_blink_pin, HIGH); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(500); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(500); PAS ESCALABLE!!! digitalwrite(led_blink_pin, LOW; digitalwrite(led_blink_pin, LOW); if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); delay(1000); } Réduire les délais La LED clignote plus vite!

Contrôler un capteur? Deux possibilités Polling while(1) valeur = digitalread(pin_capteur); Interruption externe

Interruptions, the Arduino way: attachinterrupt (Prismino ~= Leonardo) void setup() { pinmode(led_blink_pin, OUTPUT); pinmode(led_porte_pin, OUTPUT); pinmode(porte_pin, INPUT); attachinterrupt(porte_pin, verifierporte, CHANGE); } CALLBACK function: la fonction qu on appele quand l interruption arrive. void loop() { digitalwrite(led_blink_pin, HIGH); delay(500); digitalwrite(led_blink_pin, LOW); delay(500); } void verifierporte() { if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); } CHANGE to trigger the interrupt whenever the pin changes value RISING to trigger when the pin goes from low to high, FALLING for when the pin goes from high to low. LOW to trigger the interrupt whenever the pin is low HIGH to trigger the interrupt whenever the pin is high. (Arduino Due only)

Les flancs de 0 à 1 = flanc montant La porte s ouvre! de 1 à 0 = flanc descendant La porte se ferme! 24/11/2014

Interruptions, pourquoi? Comment faire plusieurs choses à la fois?

Une autre interruption : Les Timers

Compter le temps : le Timer Programme Counter Interruption Comparator (valeur ou overflow)

Interruptions, types External Viens d un pin externe Je veux faire quelque chose quand une valeur mesurée change attachinterrupt(interrupt, fonction, quand) Internal Viens d un périphérique interne e.g.: Timer Je veux faire quelque chose (fonction) dans x ms pour n fois settimer(fonction, x, n)

Blinking LED + État de la Porte int ledstate = LOW; void setup() { pinmode(led_blink_pin, OUTPUT); pinmode(led_porte_pin, OUTPUT); pinmode(porte_pin, INPUT); settimer(blinkled, 5); } Appel la fonction chaque: void loop() 5*100ms = 500ms { if (digitalread(porte_pin)) digitalwrite(led_porte_pin, HIGH); else digitalwrite(led_porte_pin, LOW); } void blinkled() { if (ledstate == LOW) ledstate = HIGH; else ledstate = LOW; digitalwrite(led_blink_pin, ledstate); }

Les Timers: Librairie Robopoly La librairie robopoly contient des fonctions toute faites pour les utiliser plus facilement: https://github.com/robopoly/prismino-library int8_t settimer( func_t callbackfunction, uint16_t interval ); Appel la fonction callbackfunction, chaque: interval *100ms. int8_t settimer( func_t callbackfunction, uint16_t interval, uint8_t callnumber = 0); Appel la fonction callbackfunction, chaque: interval *100ms, callnumber fois.

Quelles Interruptions??? void setup() { attachinterrupt(porte_pin, verifierporte, CHANGE); settimer(blinkled, 5); } void loop() { verifierporte? blinkled? } void blinkled() { } void verifierporte() { }

Autres fonctions pour les interruptions dans le Arduino attachinterrupt(interrupt, ISR, mode) attachinterrupt(pin, ISR, mode) detachinterrupt(interrupt) detachinterrupt(pin) nointerrupts() interrupts()

Happy Interrupting! FIN Questions?

Prochains évenements Lundi 1 décembre Caméra linéaire Lundi 8 décembre Présentation des règles grand concours 28.3.15 (à confirmer) Grand concours!

Il y a quoi dedans? Hard disk RAM Ou, les datasheets Atmel AtMega32U4 datasheet http://www.atmel.com/images/doc7766.pdf

Mon PC N est pas un Personal Computer Plutôt, un Program Counter Marque/compte quelle ligne de code/instruction est à executer Au reset, PC = $0x0000 $ Adresse, 0x hexadecimal

Memoire programme RESET Main program 0x002a3 0x005f1 PC = 0x00000 Contient l adresse du debut du programme Data Address 0x011ee Some function 0x01422

Memoire programme RESET Main program Some function 0x002a3 0x005f1 0x011ee 0x01422 PC = 0x00000 Contient l adresse du debut du programme On focalise dans la memoire de programme (memoire d instructions)

Memoire programme RESET PC = 0x002a3 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x002a4 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x002a5 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x00... Main program 0x002a3 0x005f1... 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x0042c 0x002a3 Main program 0x005f1 Appel fonction!! 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x011ee 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET PC = 0x0... 0x002a3 Main program 0x005f1 Some function 0x011ee 0x01422...

Memoire programme RESET PC = 0x01422 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET 0x002a3 PC = 0x01422 Fonction appelé avec: PC = 0x0042c Main program 0x005f1 0x011ee Some function 0x01422

Memoire programme RESET 0x002a3 PC = 0x0042d Fonction appelé avec: PC = 0x0042c Main program 0x005f1 0x011ee Some function 0x01422

Et avec des interruptions

Memoire programme - Interruption! RESET INTERRUPT TABLE Main program 0x002a3 PC = 0x00000 Contient l adresse du debut du programme 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x002a3 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x002a4 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x002a5 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! PC = 0x002a- PIN CHANGE! External World Dans ce cas, on admet c est l interruption numero 3

Memoire programme - Interruption! RESET PC = 0x00008 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x015e3 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x0160f INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f

Memoire programme - Interruption! RESET PC = 0x002a6 INTERRUPT TABLE 0x002a3 Main program 0x005f1 0x011ee Some function 0x01422 0x015e3 Interruption (N3) 0x0160f