Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <msp430.h>
- #include "HAL.h"
- #include "BTPSKRNL.h"
- static int n_blink = 0;
- /* Cette tâche lit l'entrée UART et la renvoie vers la sortie */
- void SerialMirrorFunction(void *param) {
- char buf[256];
- int n_read;
- n_read = HAL_ConsoleRead(256, buf);
- HAL_ConsoleWrite(n_read, buf);
- // Des caractères ont été lus
- if (n_read > 0)
- n_blink = 3; // La LED clignotera trois fois.
- }
- /* Cette tâche fait clignoter les LEDs */
- void ActivityIndicatorFunction(void *param) {
- if (n_blink > 0) {
- HAL_LedToggle(0);
- n_blink--;
- }
- }
- void MainFunction(void) {
- BTPS_Initialization_t btps_init;
- // Le comptage des ticks se fait dans le HAL via une interruption
- // On donne l'accès du compteur au kernel
- btps_init.GetTickCountCallback = HAL_GetTickCount;
- // Initialisation du kernel
- BTPS_Init(&btps_init);
- // Ajout des tâches appelées périodiquement toutes les x millisecondes
- BTPS_AddFunctionToScheduler(SerialMirrorFunction, NULL, 2);
- BTPS_AddFunctionToScheduler(ActivityIndicatorFunction, NULL, 333);
- // Lancement de l'ordonnanceur (ne retourne jamais)
- BTPS_ExecuteScheduler();
- }
- void main(void) {
- // Désactive le watchdog timer
- WDTCTL = WDTPW | WDTHOLD;
- // Configuration initiale du microcontrôleur
- HAL_ConfigureHardware();
- __enable_interrupt();
- // Tâche principale (ordonnanceur)
- MainFunction();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement