Bonjour à tous !
Je viens de débuter la programmation sur microcontroleur, j'utilise un PIC32MZ2064DAG169.
Le premier objectif que je me suis fixé et le clignotement de la LED1. J'ai déjà réussi à faire clignoter les 3 leds l'une après l'autre cependant j'ai un peu "triché" en utilisant des boucles for qui ne permettent évidemment pas une bonne gestion de la fréquence de clignotement.
Je sais qu'il faut se baser sur l'utilisation d'un timer. J'ai donc créé un Timer TMR1 à l'aide de MHC (Harmony v3) visible sur la capture suivante:
Voici mon code actuel:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 /******************************************************************************* Main Source File Company: Microchip Technology Inc. File Name: main.c Summary: This file contains the "main" function for a project. Description: This file contains the "main" function for a project. The "main" function calls the "SYS_Initialize" function to initialize the state machines of all modules in the system *******************************************************************************/ // ***************************************************************************** // ***************************************************************************** // Section: Included Files // ***************************************************************************** // ***************************************************************************** #include <stddef.h> // Defines NULL #include <stdbool.h> // Defines true #include <stdlib.h> // Defines EXIT_FAILURE #include "definitions.h" // SYS function prototypes // ***************************************************************************** // ***************************************************************************** // Section: Main Entry Point // ***************************************************************************** // ***************************************************************************** int main ( void ) { /* Initialize all modules */ SYS_Initialize ( NULL ); TMR1_Start(); while ( true ) { if (TMR1_CounterGet()==PR1) { LED1_Toggle(); } } /* Execution should not come here during normal operation */ return ( EXIT_FAILURE ); } /******************************************************************************* End of File */
L'idée ici c'est que je souhaite du coup vérifier où en est le compteur du TIMER et quand celui-ci atteint la valeur d'une période on change alors l'état de la led. En faite je veux que chaque passage d'une période à une autre du Timer déclenche le changement d'état de la led.
Le code se compile sans problème, mais aucun clignotement n'a lieu, j'ai essayé pas mal d'autre choses et fais pas mal de recherches sur les timer, notamment sur le site de Microchip, mais sans succès, j'espère que vous saurez m'aider et vous remercie d'avance !![]()
Partager