diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.c b/Logiciel/Firmware_testeur/Drivers/rj45.c index 7102c708d962e7b5cc2c444a4d0eef3a778d35ff..413b84cb5a5edbf1ea486d4ddf0847518827b039 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45.c +++ b/Logiciel/Firmware_testeur/Drivers/rj45.c @@ -8,6 +8,7 @@ #include "rj45.h" // Fonctions publiques + void RJ45_Entree_init (RJ45_Entree* connecteur, RJ45_Entree_lireBroche_ptr lireBroche) { connecteur->lireBroche_ = lireBroche; diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.h b/Logiciel/Firmware_testeur/Drivers/rj45.h index 1a2acce4d03b1e555014eafdd0bbaf85bf617db6..5b764ede3330b73fac9df9e6e32bf5b5712794ee 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45.h +++ b/Logiciel/Firmware_testeur/Drivers/rj45.h @@ -19,34 +19,92 @@ #define RJ45_BR_7 6 #define RJ45_BR_8 7 -// États logiques +/* + * @brief États logiques + */ typedef enum { RJ45_BAS = 0, RJ45_HAUT = 1, RJ45_ERREUR } RJ45_Etat; -// Pointeurs de fonctions abstraites -typedef RJ45_Etat (*RJ45_Entree_lireBroche_ptr ) (void*, int numeroBroche); -typedef void (*RJ45_Sortie_ecrireBroche_ptr) (void*, int numeroBroche, RJ45_Etat niveauLogique); +/* + * @brief Prototype des fonctions de lecture et écriture des broches + * Chaque fonction est implémentée dans une classe enfant 'Port'. + * Elle contient le code spécifique au matériel permettant de régler l'état + * d'un segment (par exemple un appel au HAL GPIO du MCU). + * + * @param void* connecteur L'objet "self" de la fonction (ici un RJ45) + * @param int numeroBroche Broche à lire/écrire + * @param RJ45_Etat niveauLogique État (allumé/éteint) sur lequel régler le segment. + */ +typedef RJ45_Etat (*RJ45_Entree_lireBroche_ptr ) (void* connecteur, int numeroBroche); +typedef void (*RJ45_Sortie_ecrireBroche_ptr) (void* connecteur, int numeroBroche, + RJ45_Etat niveauLogique); // Structures + +/* + * @brief Struct du connecteur en entrée, abstrait au matériel + * + * @param RJ45_Entree_lireBroche_ptr lireBroche_ Fonction de lecture de broche + */ typedef struct { RJ45_Entree_lireBroche_ptr lireBroche_; } RJ45_Entree; +/* + * @brief Struct du connecteur en sortie, abstrait au matériel + * + * @param RJ45_Sortie_ecrireBroche_ptr ecrireBroche_ Fonction d'écriture de broche + */ typedef struct { RJ45_Sortie_ecrireBroche_ptr ecrireBroche_; } RJ45_Sortie; // Fonctions publiques + +/* + * @brief Constructeur + * + * @param RJ45_Entree* connecteur Objet à initialiser (allocation statique) + * @param RJ45_Entree_lireBroche_ptr lireBroche Fonction de lecture de broche + */ void RJ45_Entree_init (RJ45_Entree* connecteur, RJ45_Entree_lireBroche_ptr lireBroche); + +/* + * @brief Lire l'état binaire à l'entrée d'une broche + * + * @param RJ45_Entree* connecteur Objet "self" + * @param int numeroBroche Broche à lire + */ RJ45_Etat RJ45_Entree_lireBroche (RJ45_Entree* connecteur, int numeroBroche); +/* + * @brief Constructeur + * + * @param RJ45_Entree* connecteur Objet à initialiser (allocation statique) + * @param RJ45_Sortie_ecrireBroche_ptr ecrireBroche Fonction d'écriture de broche + */ void RJ45_Sortie_init (RJ45_Sortie* connecteur, RJ45_Sortie_ecrireBroche_ptr ecrireBroche); + +/* + * @brief Régler l'état binaire en sortie d'une broche + * + * @param RJ45_Sortie* connecteur Objet "self" + * @param int numeroBroche Broche à écrire + * @param RJ45_Etat niveauLogique Haut ou bas + */ void RJ45_Sortie_ecrireBroche (RJ45_Sortie* connecteur, int numeroBroche, RJ45_Etat niveauLogique); + +/* + * @brief Réinitialiser les sorties de toutes les broches + * + * @param RJ45_Sortie* connecteur Objet "self" + * @param RJ45_Etat niveauLogique Haut ou bas + */ void RJ45_Sortie_ecrireToutesBroches(RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); #endif /* RJ45_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c index 9a82a209fa8573bfe03cf8c5f94febad8619e40b..81148cb0c8a1f5edda5a9ac95e31e854dce4cc5d 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c +++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c @@ -9,6 +9,7 @@ #include <string.h> // Fonctions privées + RJ45_Etat convertirGPIO_PinState (GPIO_PinState etatBroche) { switch (etatBroche) { case GPIO_PIN_SET: @@ -31,8 +32,8 @@ GPIO_PinState convertirRJ45_Etat (RJ45_Etat niveauLogique) { } } - // Fonctions publiques + void RJ45_Entree_Port_init (RJ45_Entree_Port* connecteur, GPIO_TypeDef** ports, uint16_t* broches) { RJ45_Entree_init(&(connecteur->base_), (void*) RJ45_Entree_Port_lireBroche); diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h index bdb7c69489191a08589524b9c367743770c8ecf0..de9b370ea48aa95d0976fee191235fd53601ea1e 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h +++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h @@ -12,12 +12,28 @@ #include "main.h" // Structures + +/* + * @brief Struct du connecteur en entrée, portée au HAL STM32 + * + * @param RJ45_Entree base_ Objet de la classe parent, abstraite du matériel + * @param GPIO_TypeDef* ports_ [RJ45_N_BROCHES] Ports GPIO + * @param uint16_t broches_[RJ45_N_BROCHES] Broches GPIO + */ typedef struct { RJ45_Entree base_; GPIO_TypeDef* ports_ [RJ45_N_BROCHES]; uint16_t broches_[RJ45_N_BROCHES]; } RJ45_Entree_Port; + +/* + * @brief Struct du connecteur en sortie, portée au HAL STM32 + * + * @param RJ45_Sortie base_ Objet de la classe parent, abstraite du matériel + * @param GPIO_TypeDef* ports_ [RJ45_N_BROCHES] Ports GPIO + * @param uint16_t broches_[RJ45_N_BROCHES] Broches GPIO + */ typedef struct { RJ45_Sortie base_; GPIO_TypeDef* ports_ [RJ45_N_BROCHES]; @@ -25,14 +41,51 @@ typedef struct { } RJ45_Sortie_Port; // Fonctions publiques + +/* + * @brief Constructeur + * + * @param RJ45_Entree_Port* connecteur Objet à initialiser (allocation statique) + * @param GPIO_TypeDef** ports Ports GPIO + * @param uint16_t* broches Broches GPIO + */ void RJ45_Entree_Port_init (RJ45_Entree_Port* connecteur, GPIO_TypeDef** ports, uint16_t* broches); + +/* + * @brief Lire l'état binaire à l'entrée d'une broche + * + * @param RJ45_Entree_Port* connecteur Objet "self" + * @param int numeroBroche Broche à lire + */ RJ45_Etat RJ45_Entree_Port_lireBroche (RJ45_Entree_Port* connecteur, int numeroBroche); +/* + * @brief Constructeur + * + * @param RJ45_Sortie_Port* connecteur Objet à initialiser (allocation statique) + * @param GPIO_TypeDef** ports Ports GPIO + * @param uint16_t* broches Broches GPIO + */ void RJ45_Sortie_Port_init (RJ45_Sortie_Port* connecteur, GPIO_TypeDef** ports, uint16_t* broches); + +/* + * @brief Régler l'état binaire en sortie d'une broche + * + * @param RJ45_Sortie_Port* connecteur Objet "self" + * @param int numeroBroche Broche à écrire + * @param RJ45_Etat niveauLogique Haut ou bas + */ void RJ45_Sortie_Port_ecrireBroche (RJ45_Sortie_Port* connecteur, int numeroBroche, RJ45_Etat niveauLogique); + +/* + * @brief Réinitialiser les sorties de toutes les broches + * + * @param RJ45_Sortie_Port* connecteur Objet "self" + * @param RJ45_Etat niveauLogique Haut ou bas + */ void RJ45_Sortie_Port_ecrireToutesBroches (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); #endif /* RJ45_PORT_STM32F071V8_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments.c b/Logiciel/Firmware_testeur/Drivers/sept_segments.c index 3f519f8e1e787ab1af0d48c9d8a4b316c7f169b0..47df6944c5780bc8f73959346c6fed47832f5587 100644 --- a/Logiciel/Firmware_testeur/Drivers/sept_segments.c +++ b/Logiciel/Firmware_testeur/Drivers/sept_segments.c @@ -8,6 +8,15 @@ #include "sept_segments.h" #include <stddef.h> +// Fonctions privées + +/* + * @brief Agencement des segments allumés et éteint pour former un caractère + * + * @param unsigned char caractere Caractère à former parmi: chiffre 0..9, tiret '-' + * + * @retval SeptSegment_Etat* Tableau d'états de segments + */ SeptSegment_Etat* charEnSegments(unsigned char caractere) { static SeptSegment_Etat config[N_SEGMENTS]; @@ -116,6 +125,8 @@ SeptSegment_Etat* charEnSegments(unsigned char caractere) { } } +// Fonctions publiques + void SeptSegment_init (SeptSegment* ecran, SeptSegment_allumerSegment_ptr allumerSegments) { for (int i=0 ; i<N_SEGMENTS ; i++) { ecran->allumerSegment_[i] = allumerSegments[i]; diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments.h b/Logiciel/Firmware_testeur/Drivers/sept_segments.h index 8340f48c16d11595fda97f984d3a11fa1a1accb5..ed422347871f0886dd618888c51c6a801a0f754d 100644 --- a/Logiciel/Firmware_testeur/Drivers/sept_segments.h +++ b/Logiciel/Firmware_testeur/Drivers/sept_segments.h @@ -9,6 +9,14 @@ #define SEPT_SEGMENTS_H_ // Index des segments +// ___A___ +// / / +// F B +// /--G---/ +// / / +// E C +// /___D__/ +// #define N_SEGMENTS 7 #define SEG_A 0 #define SEG_B 1 @@ -18,32 +26,121 @@ #define SEG_F 5 #define SEG_G 6 +/* + * @brief État éteint ou allumé d'un segment + */ typedef enum { SEGMENT_ETEINT = 0, SEGMENT_ALLUME = 1 } SeptSegment_Etat; +/* + * @brief Prototype de l'array de fonctions d'allumage de chaque segment + * Chaque fonction de l'array est implémentée dans une classe enfant 'Port'. + * Elle contient le code spécifique au matériel permettant de régler l'état + * d'un segment (par exemple un appel au HAL GPIO du MCU). + * Il y a une fonction à implémenter par segment, même si leurs implémentations + * seront sans doute très similaires. + * + * @param void* ecran L'objet "self" de la fonction (ici un sept segment) + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ typedef void (*SeptSegment_allumerSegment_ptr[N_SEGMENTS]) (void* ecran, SeptSegment_Etat etat); +/* + * @brief Struct d'un écran 7-segments, abstrait du matériel + * + * @param SeptSegment_allumerSegment_ptr allumerSegment_ Tableau de pointeurs vers les + * fonctions de contrôle des segments individuels + */ typedef struct { SeptSegment_allumerSegment_ptr allumerSegment_; } SeptSegment; +/* + * @brief Constructeur + * + * @param SeptSegment* ecran Objet à initialiser (allocation statique) + * @param SeptSegment_allumerSegment_ptr allumerSegment_ Tableau de pointeurs vers les + * fonctions de contrôle des segments individuels + */ void SeptSegment_init (SeptSegment* ecran, SeptSegment_allumerSegment_ptr allumerSegments); // Affichage de caractères +/* + * @brief Afficher un caractère parmi: 0..9 ou un tiret '-' + * + * @param SeptSegment* ecran L'objet "self" + * @param unsigned char caractere Caractère à afficher, parmi: + * - Un chiffre: 0..9 + * - Tiret: '-' + */ void SeptSegment_afficher (SeptSegment* ecran, unsigned char caractere); + +/* + * @brief Éteindre tout les segments + * + * @param SeptSegment* ecran L'objet "self" + */ void SeptSegment_eteindre (SeptSegment* ecran); // Contrôle des segments individuels +/* + * @brief Régler le segment A + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerA (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment B + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerB (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment C + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerC (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment D + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerD (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment E + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerE (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment F + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerF (SeptSegment* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment G + * + * @param SeptSegment* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_allumerG (SeptSegment* ecran, SeptSegment_Etat etat); #endif /* SEPT_SEGMENTS_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c index ef59a6cb1861ef874736a9577bf19e4a86309da2..02764b211d852b46c606478f0a22bedfd2d82b55 100644 --- a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c +++ b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c @@ -9,6 +9,14 @@ #include <string.h> // Fonctions privées + +/* + * @brief Correspond un état GPIO du HAL STM32 à un état d'allumage de sept-segments + * + * @param SeptSegment_Etat etat État à convertir + * + * @retval GPIO_PinState + */ GPIO_PinState convertirEtat(SeptSegment_Etat etat) { switch (etat) { case SEGMENT_ALLUME: @@ -21,6 +29,7 @@ GPIO_PinState convertirEtat(SeptSegment_Etat etat) { } // Fonctions publiques + void SeptSegment_Port_init (SeptSegment_Port* ecran, GPIO_TypeDef** ports, uint16_t* broches) { SeptSegment_allumerSegment_ptr allumerPort = { diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.h b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.h index 3619eb98888304143f9078ae7be6fcb3894b098c..9aaae8fac4959bd52f9b09dd12185c825f863396 100644 --- a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.h +++ b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.h @@ -11,23 +11,103 @@ #include "sept_segments.h" #include "main.h" +/* + * @brief Struct d'un écran 7-segments, portée au HAL STM32 + * + * @param SeptSegment base_ Objet de la classe parent, abstraite du matériel + * @param GPIO_TypeDef* ports_[N_SEGMENTS] Ports GPIO des segments + * @param uint16_t broches_[N_SEGMENTS] Broches GPIO des segments + */ typedef struct { SeptSegment base_; GPIO_TypeDef* ports_[N_SEGMENTS]; uint16_t broches_[N_SEGMENTS]; } SeptSegment_Port; +/* + * @brief Constructeur + * + * @param SeptSegment* ecran Objet à initialiser (allocation statique) + * @param GPIO_TypeDef** ports Ports GPIO des segments + * @param uint16_t* broches Broches GPIO des segments + */ void SeptSegment_Port_init (SeptSegment_Port* ecran, GPIO_TypeDef** ports, uint16_t* broches); +// Affichage de caractères + +/* + * @brief Afficher un caractère parmi: 0..9 ou un tiret '-' + * + * @param void* ecran L'objet "self" + * @param unsigned char caractere Caractère à afficher, parmi: + * - Un chiffre: 0..9 + * - Tiret: '-' + */ void SeptSegment_Port_afficher (SeptSegment_Port* ecran, unsigned char caractere); + +/* + * @brief Éteindre tout les segments + * + * @param void* ecran L'objet "self" + */ void SeptSegment_Port_eteindre (SeptSegment_Port* ecran); +// Contrôle des segments individuels + +/* + * @brief Régler le segment A + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerA (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment B + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerB (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment C + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerC (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment D + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerD (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment E + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerE (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment F + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerF (SeptSegment_Port* ecran, SeptSegment_Etat etat); + +/* + * @brief Régler le segment G + * + * @param SeptSegment_Port* ecran L'objet "self" + * @param SeptSegment_Etat etat État (allumé/éteint) sur lequel régler le segment. + */ void SeptSegment_Port_allumerG (SeptSegment_Port* ecran, SeptSegment_Etat etat); #endif /* SEPT_SEGMENTS_PORT_STM32F071V8_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.c b/Logiciel/Firmware_testeur/Drivers/testeur.c index 637149e4bf354753bfb1eb19a159442aae224cc5..f867b519416b613f105db4dd7b17a3bc681e962d 100644 --- a/Logiciel/Firmware_testeur/Drivers/testeur.c +++ b/Logiciel/Firmware_testeur/Drivers/testeur.c @@ -10,6 +10,7 @@ #include <string.h> // Fonctions publiques + void Testeur_init (Testeur* testeur) { RJ45_Sortie_Port connecteurA; RJ45_Entree_Port connecteurB; @@ -36,18 +37,15 @@ void Testeur_eteindreAlim2V (Testeur* testeur) { } /* - * @brief Exécuter le processus complet de test de câble * @note Les étapes du processus sont: * -Pour chaque broche du câble RJ45 * -Allumer la broche du connecteur en sortie * -Regarder quelle broche y est connecte * -Si aucune ou plusieur, afficher tiret * -Si une seule, afficher le chiffre correspondant - * @param Testeur* testeur Pointeur objet */ void Testeur_testerCable (Testeur* testeur) { - // FIXME: La ligne ci-dessous plante au max RJ45_Sortie_Port_ecrireToutesBroches(&(testeur->ethernetA_), RJ45_BAS); int nContacts[RJ45_N_BROCHES] = { 0 }; @@ -92,11 +90,4 @@ void Testeur_testerCable (Testeur* testeur) { for (int i=0; i<N_ECRANS; i++) { SeptSegment_Port_afficher(&(testeur->ecrans_[i]), affichageEcrans[i]); } - -// for (int i=0; i<=9; i++) { -// for (int j=0; j<N_ECRANS; j++) { -// SeptSegment_Port_afficher(&(testeur->ecrans_[j]), i + '0'); -// } -// HAL_Delay(500); -// } } diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.h b/Logiciel/Firmware_testeur/Drivers/testeur.h index 8eb0c8efc73605ae47427f66ad4cc766d439ac06..3f3b9f858d58c68773f8d306d59a3ad1d4a5aaf7 100644 --- a/Logiciel/Firmware_testeur/Drivers/testeur.h +++ b/Logiciel/Firmware_testeur/Drivers/testeur.h @@ -16,7 +16,14 @@ // Assignation des ports et broches GPIO des périphériques #include "testeur_liste_gpios.h" -// Structure +/* + * @brief Struct du testeur + * + * @param RJ45_Sortie_Port ethernetA_ Connecteur ethernet + * @param RJ45_Entree_Port ethernetB_ Connecteur ethernet + * + * @param SeptSegment_Port ecrans_[N_ECRANS] 7-segments contrôlables + */ typedef struct { RJ45_Sortie_Port ethernetA_; RJ45_Entree_Port ethernetB_; @@ -25,9 +32,38 @@ typedef struct { } Testeur; // Fonctions publiques + +/* + * @brief Constructeur + * + * @param Testeur* testeur Objet à initialiser (allocation statique) + */ void Testeur_init (Testeur* testeur); + +/* + * @brief Allumer l'alimentation 2V, utilisée par les 7-segments + * + * @param Testeur* testeur Objet "self" + */ void Testeur_allumerAlim2V (Testeur* testeur); + +/* + * @brief Éteindre l'alimentation 2V, utilisée par les 7-segments + * + * @param Testeur* testeur Objet "self" + */ void Testeur_eteindreAlim2V (Testeur* testeur); + +/* + * @brief Lance la procédure de test d'un câble. Affiche le résultat sur les 7-segments + * à droite. En fonction des connections détectées au connecteur RJ45 de droite, + * l'affichage est: + * -Aucun contact détectée (faux contact): tiret '-' + * -Un contact: le numéro 0..9 de la broche connectée + * -Plusieurs contacts détectés (court-circuit): tiret '-' + * + * @param Testeur* testeur Objet "self" + */ void Testeur_testerCable (Testeur* testeur); #endif /* TESTEUR_H_ */ diff --git a/Logiciel/Firmware_testeur/Src/stm32f0xx_it.c b/Logiciel/Firmware_testeur/Src/stm32f0xx_it.c index c2c13841a9145e3af8c127bb49583f0434e38afa..62e9bb0cf505150706286c0acf1c2dd4c1ae11e9 100644 --- a/Logiciel/Firmware_testeur/Src/stm32f0xx_it.c +++ b/Logiciel/Firmware_testeur/Src/stm32f0xx_it.c @@ -147,6 +147,7 @@ void EXTI4_15_IRQHandler(void) { /* USER CODE BEGIN EXTI4_15_IRQn 0 */ + // Interruption du bouton carré Testeur_testerCable(&testeur); /* USER CODE END EXTI4_15_IRQn 0 */