SE4Binome2023-1
Ordonnanceur
Nous commençons maintenant l'ordonnanceur, tout d'abord nous créeons la structure de nos Taches.
Code |
---|
struct TacheInfo{ void (*depart)(void); uint16_t SPointeur; int etat; }; |
Puis nous ajoutons les 2 premières taches demandées qui sont de faire clignoter 2 leds différentes à des timing différents.
Code |
---|
void TacheA(){ while(1) { PORTC ^= 0x08; _delay_ms(300); } } void TacheB(){ while(1) { PORTD ^= 0x80; _delay_ms(500); } } struct TacheInfo Taches[2]={ {TacheA,0x0600,0}, {TacheB,0x0700,0} }; |
On s'occupe maintenant de l'ordonnanceur, ainsi que de l'ISR.
Code |
---|
void ordonnanceur () { PORTD ^= 0x02; courant++; if (courant == NBR_TACHE) courant = 0; } ISR(TIMER1_COMPA_vect,ISR_NAKED) { /* Sauvegarde du contexte de la tâche interrompue */ SAVE_REGISTER(); Taches[courant].SPointeur = SP; /* Appel à l'ordonnanceur */ ordonnanceur(); /* Récupération du contexte de la tâche ré-activée */ SP = Taches[courant].SPointeur; RESTORE_REGISTER(); asm volatile ( "reti" ); } |
Soudure et Test du SHIELD
Au cours des 2 premières séances nous avons soudé et testé notre Shield
Sur l'un des connecteurs, la led est abîmée dû à une soudure excessive. Sachant que les leds sont uniquement utilisées en tant qu'indicateurs pour savoir quelle carte fille à le contrôle et que nous n'en utiliserons pas plus de 3 pour tester nos programmes, cela ne vas pas avoir d'influence négative.
Code | Image |
---|---|
#include <avr/io.h> void init_led(){ DDRD=0x92; DDRC=0x09; } int main(){ init_led(); while(1) { PORTD=0x92; PORTC=0x09; } return 0; } |
Puis nous avons aussi soudé l'adaptateur HE10 pour l'utilisation de la matrice de leds
Carte FPGA
Carte électronique numérique
Nous avons choisi la Carte Fille : Ecran LCD
Pendant la 3ème séance nous avons finis le Schématic de la carte
Puis nous avons Routé la carte et envoyé à la Fabrication
Carte non soudée | Carte soudé |
---|---|
Références utiles
Lien du git :
https://archives.plil.fr/mchauvel/PICO_Taha_NEHARI_Martin_CHAUVELIERE.git
https://github.com/Matiasus/HD44780
NHD-C12832A1Z-FSW-FBW-3V3-ND
https://michlstechblog.info/blog/raspberry-pi-connecting-a-hd44780-display-with-i2c-bus/
ReX : Merci d'utiliser le squelette de page présenté en séance.