|
1 : Nom de l’expérience Lampe de marche à quatre chiffres
2 : Contenu expérimentalRéalisez le cycle de clignoter la lampe de marche à quatre positions
3. Objectif de l’expérience1 : Maîtriser le matériel LEDcircuit 2 : Maîtriser la méthode de configuration des registres de sortie du module GPIO KL25 3 : Maîtriser la méthode de programmation du cycle lumineux en cours à quatre chiffres
4. Méthodes expérimentales 1 : Consultez le schéma de cette section Il a été constaté que les broches PTB8, PTB9, PTB10 et PTB11 de KL25 contrôlent respectivement les quatre diodes électrolumineuses LED D6, D7, D8 et D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2 : Configurer les registres correspondants du module GPIO (1) Consultez la page 122 du Manuel de Référence KL25 et constatez que le GPIO est fourni par l’horloge de la plateforme.
(2) Relier l’horloge de la plateforme et le module POTRB, et le programmer comme suit : SIM_SCGC5=SIM_SCGC5_PORTB_MASK ; SIM_SCGC5 registres peuvent être consultés
(3) Définir les attributs de broches multiplexées, configurer PTB8, PTB9, PTB10 et PTB11 comme fonctions GPIO, et les programmer comme suit : PORTB_PCR8=PORT_PCR_MUX(1) ; PORTB_PCR9=PORT_PCR_MUX(1) ; PORTB_PCR10=PORT_PCR_MUX(1) ; PORTB_PCR11=PORT_PCR_MUX(1) ; Consultez le registre PORTx_PCRn et la page 46 de la fiche technique KL25 pour plus d’informations
(4) Définir la direction d’entrée et de sortie des broches, régler PTB8, PTB9, PTB10 et PTB11 en sortie, et les programmer comme suit : GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u) ; GPIOx_PDDR registres peuvent être consultés
(5) Définir le niveau logique de sortie de la broche, définir le niveau supérieur de sortie de PTB8, PTB9, PTB10, PTB11, et le programmer comme suit : GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u) ; Consultez GPIOx_PDOR registres
3 : Réaliser le clignotement de cycle de la lampe de marche à quatre positions [mw_shl_code=c,true] Consultez le programme correspondant dans la fonction principale de la routine/* *********************************************************** * nom de fichier : main.c * fonction : fonction pour le principal * *********************************************************** */
#include « derivative.h » #include « config.h » #include « crg.h » #include « gpio.h »
/******************************主函数*************************************/ int main (void)
{ asm (« CPSID i ») ; L’interruption générale du col
crg_default_init() ; Horloge par défaut système crg_configuration_init() ; Horloge après configuration MCGIRCLK_outenable() ; Activé la sortie MCGIRCL 2M clock_test(4) ; Tests des horloges correspondantes
gpio_init() ; Initialisation GPIO
asm (« CPSIE i ») ; Ouvrir l’interruption totale
pour( ;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u) ; Sortie PTB8 haut niveau, lumière D6LED allumée Delayms (15 000) ; Retard GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u) ; Sortie PTB9 haut niveau, lumière D7LED allumée Delayms (15 000) ; Retard GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u) ; Sortie PTB10 haut niveau, lumière LED D8 allumée Delayms (15 000) ; Retard GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u) ; Sortie haute vitesse PTB11, voyant D9LED allumé Delayms (15 000) ; Retard }
}[/mw_shl_code]
|