Changes between Version 2 and Version 3 of SujetTP1-2018


Ignore:
Timestamp:
Feb 9, 2018, 8:25:40 AM (7 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP1-2018

    v2 v3  
    8888    bcm2708hardfp-gcc -o $@ $< -O2 -static
    8989}}}
    90 {{{#!protected
    91 Un `Makefile` un peu plus complexe qui se charge de la copie et qui utilise la règle de compilation implicite:
     90
     91Ci-dessous, un `Makefile` un peu plus complexe qui se charge de la copie et qui utilise la règle de compilation implicite (juste par curiosité). Dans la suite, nous vous fournissons un nouveau Makefile que vous pourrez modifier.
    9292{{{#!make
    9393CC=bcm2708hardfp-gcc
    9494CFLAGS=-O2 -static
    95 CARD=5020
     95CARD=20
    9696NAME=lacas
    9797APP=helloworld
    9898
    9999all: $(APP)
    100     scp -P $(CARD) $^ pi@132.227.102.36:lacas
     100    scp -P 50$(CARD) $^ pi@132.227.102.36:lacas
    101101
    102102clean:
    103103    rm $(APP)
    104 }}}
    105104}}}
    106105
     
    127126
    128127Refaites le même exercice que précédemment, mais cette fois-ci configurez plusieurs GPIO en sorties.
    129 * En plus du GPIO 4 de l'exercice précédent, rajoutez la LED1 qui est connectée sur le GPIO 17.
    130 * Avant d'exécuter votre programme, validez votre code avec le chargé de TP !
     128* La LED0 est connecté sur le GPIO 4, **la LED1 est connectée sur le GPIO 17**. Faites clignoter les deux LEDs.
     129* Avant d'exécuter votre programme, vérifiez parce que le matériel est fragile, pour pouvez faire valider votre code avec le chargé de TP.
    131130
    132131== 4. Lecture de la valeur d'une entrée GPIO ==
     
    135134Écrivez un programme qui configure la GPIO 18 en entrée. Vous devez afficher la valeur de ce GPIO dans une boucle infinie.
    136135
    137 * Une fois réalisé, compilez votre programme comme précédemment à l'aide du Makefile fourni. Et validez votre code avec le chargé de TP !
     136* Une fois réalisé, compilez votre programme comme précédemment à l'aide du Makefile fourni.
    138137* Ensuite, copiez votre programme sur la carte comme indiqué dans l'exercice précédent.
    139138
    140 On veut détecter l'appui sur le bouton poussoir. Pour cela, vous allez lire sa valeur périodiquement toutes les 20ms. L'appui ou le relâchement correspond est présent quand deux valeurs successives sont différentes. La structure du programme suggéré.
     139On veut détecter l'appui sur le bouton poussoir. Pour cela, vous allez lire sa valeur périodiquement toutes les 20ms. L'appui ou le relâchement correspond est présent quand deux valeurs lues successivement sont différentes. Quand le bouton n'est pas enfoncé, la valeur de la broche est à 1. La structure du programme suggéré.
    141140{{{#!c
     141val_prec = 1
     142val_nouv = 1
     143BP_ON = 0
     144BP_OFF = 0
    142145faire toujours:
    143146   attendre 20ms
    144    lire la valeur du BP
    145    si un appui est detecte alors BP_ON <- 1
     147   val_nouv <- valeur du BP
     148   si (val_prec != val_nouv) ET (val_nouv == 0) (appui est detecte) alors BP_ON <- 1
    146149   si un relachement est detecte alors BP_OFF <- 1
    147150   si BP_ON :
    148151      BP_ON <- 0                   // l'appui est un evenement ponctuel
    149       comportement du BP_ON
     152      comportement quand un appui est détecté
    150153   si BP_OFF :
    151154      BP_OFF <- 0                  // Le relachemet est un évènement ponctuel
    152       comportement du BP_OFF
     155      comportement quand un relachement est detecte
    153156   gestion de la LED0
    154157   gestion de la LED1
     
    157160== 5. Réalisation d'une petite librairie ==
    158161
    159 Écrire les fonctions suivantes et fabriquer une fonction libgpio.a
     162Écrire les fonctions suivantes et fabriquer une fonction libgpio.a.
     163Vous devez vous même, définir les prototypes des fonctions et écrire le Makefile pour fabriquer une library et linker votre programme avec. Si vous avez des difficultés, Google existe :-)) !
    160164* gpio_open : ouverture et mapping.
    161165* gpio_setup : setup des broches
     
    172176== 7. Compte rendu (CR) ==
    173177
    174 Vous écrirez un CR au format markdown [[http://docutils.sourceforge.net/docs/user/rst/quickref.html|reStucturedText]], dans lequel vous mettrez les étapes de configurations de votre compte pour réaliser le TP, ainsi vous conserverez une trace.
     178Vous écrirez un CR **au format markdown**, dans lequel vous mettrez les étapes de configurations de votre compte pour réaliser le TP, ainsi vous conserverez une trace.
    175179Vous ajouterez vos codes commentés (succinctement mais proprement).
    176180
    177181Contraintes :
    178 - Le fichier doit impérativement être nommé `peri_tp1_nom1_nom2.rst`
     182- Le fichier doit impérativement être nommé `peri_tp1_nom1_nom2.md`
    179183- Vous enverez le CR par mail à franck.wajsburt@lip6.fr
    180184avec le sujet: `[PERI] CR TP1 nom1 nom2`