SE4Binome2023-1

De projets-se.plil.fr
Aller à la navigation Aller à la recherche

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

Shield soudé et monté sur Arduino

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;
}
Test des Leds du Shield

Puis nous avons aussi soudé l'adaptateur HE10 pour l'utilisation de la matrice de leds

Adaptateur HE10 pour 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

Schematic de la Carte Fille : Ecran LCD

Puis nous avons Routé la carte et envoyé à la Fabrication

Routage de la Carte Fille : Ecran LCD
Carte non soudée Carte soudé
Carte non soudée
Carte soudée

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

http://cdzillidan.free.fr/electronique-numerique/modules/afficheurs-lcd/hd44780/fonctionnement-interne.html

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.