IniSat Modèle 1 Version 2 TP 1 : Mise en oeuvre de la carte Nucléo 32 Exo 1 : Hello Word Exo 2 : Lecture vitesse de l'horloge Exo 3 : Clignotement asynchrone de 2 Dels
Diff: main.cpp
- Revision:
- 0:f812f3896eb5
- Child:
- 1:5fa10ee92f94
- Child:
- 2:4f8eaf28aea5
- Child:
- 3:b869fd151c26
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jun 20 23:21:43 2021 +0000 @@ -0,0 +1,69 @@ +/* mbed Microcontroller Library + * Copyright (c) 2019 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +#include "platform/mbed_thread.h" + +Serial pc(USBTX, USBRX); // Dialogue UART par USB à 9600 Baud +// Initialise the digital pin LED1 as an output +DigitalOut led(LED1); // Ligne PB_3 sur carte Nucléo +DigitalOut led_r(PB_0); // Del rouge carte CPU +DigitalOut led_v(PB_1); // Del verte carte CPU +//PwmOut servo(PB_0); + +Ticker Synchro_Led_Ro; +Ticker Synchro_Led_Ve; + +uint8_t compteur; + +// Blinking rate in milliseconds +#define BLINKING_RATE_MS 500 + +void Tache_Led_Ro(void) { + led_r = !led_r; +} + +void Tache_Led_Ve(void) { + led_v = !led_v; +} + +int main() +{ + pc.printf("\r\nIniSat V2 : TP1\r\n\n"); // Hello World + Synchro_Led_Ro.attach(&Tache_Led_Ro,1); + thread_sleep_for(150); + Synchro_Led_Ve.attach(&Tache_Led_Ve,0.33); + + // Test de l'horloge Systeme + pc.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); + compteur = 0; + + while (true) { + led = !led; + compteur++; + pc.printf("%d\r\n",compteur); + thread_sleep_for(BLINKING_RATE_MS); + } + +// servo.period_ms(20); //Period = 20 ms (f=50 Hz) + +/* while(true) { + for(int pw=1000; pw <= 2000; pw=pw+20) { + servo.pulsewidth_us(pw); //Set new servo position +// wait_ms(200); + thread_sleep_for(200); + } +// wait_ms(1000); //Wait before reverse direction + thread_sleep_for(1000); + for(int pw=2000; pw >= 1000; pw=pw-20) { + servo.pulsewidth_us(pw); //Set new servo position +// wait_ms(200); + thread_sleep_for(200); + } +// wait_ms(1000); + thread_sleep_for(1000); + } + */ +}