IniSat Modèle 1 Version 2

Committer:
Giamarchi
Date:
Sun Jun 20 23:21:43 2021 +0000
Revision:
0:f812f3896eb5
Child:
1:4f8eaf28aea5
Child:
2:b869fd151c26
Trame pour TP1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Giamarchi 0:f812f3896eb5 1 /* mbed Microcontroller Library
Giamarchi 0:f812f3896eb5 2 * Copyright (c) 2019 ARM Limited
Giamarchi 0:f812f3896eb5 3 * SPDX-License-Identifier: Apache-2.0
Giamarchi 0:f812f3896eb5 4 */
Giamarchi 0:f812f3896eb5 5
Giamarchi 0:f812f3896eb5 6 #include "mbed.h"
Giamarchi 0:f812f3896eb5 7 #include "platform/mbed_thread.h"
Giamarchi 0:f812f3896eb5 8
Giamarchi 0:f812f3896eb5 9 Serial pc(USBTX, USBRX); // Dialogue UART par USB à 9600 Baud
Giamarchi 0:f812f3896eb5 10 // Initialise the digital pin LED1 as an output
Giamarchi 0:f812f3896eb5 11 DigitalOut led(LED1); // Ligne PB_3 sur carte Nucléo
Giamarchi 0:f812f3896eb5 12 DigitalOut led_r(PB_0); // Del rouge carte CPU
Giamarchi 0:f812f3896eb5 13 DigitalOut led_v(PB_1); // Del verte carte CPU
Giamarchi 0:f812f3896eb5 14 //PwmOut servo(PB_0);
Giamarchi 0:f812f3896eb5 15
Giamarchi 0:f812f3896eb5 16 Ticker Synchro_Led_Ro;
Giamarchi 0:f812f3896eb5 17 Ticker Synchro_Led_Ve;
Giamarchi 0:f812f3896eb5 18
Giamarchi 0:f812f3896eb5 19 uint8_t compteur;
Giamarchi 0:f812f3896eb5 20
Giamarchi 0:f812f3896eb5 21 // Blinking rate in milliseconds
Giamarchi 0:f812f3896eb5 22 #define BLINKING_RATE_MS 500
Giamarchi 0:f812f3896eb5 23
Giamarchi 0:f812f3896eb5 24 void Tache_Led_Ro(void) {
Giamarchi 0:f812f3896eb5 25 led_r = !led_r;
Giamarchi 0:f812f3896eb5 26 }
Giamarchi 0:f812f3896eb5 27
Giamarchi 0:f812f3896eb5 28 void Tache_Led_Ve(void) {
Giamarchi 0:f812f3896eb5 29 led_v = !led_v;
Giamarchi 0:f812f3896eb5 30 }
Giamarchi 0:f812f3896eb5 31
Giamarchi 0:f812f3896eb5 32 int main()
Giamarchi 0:f812f3896eb5 33 {
Giamarchi 0:f812f3896eb5 34 pc.printf("\r\nIniSat V2 : TP1\r\n\n"); // Hello World
Giamarchi 0:f812f3896eb5 35 Synchro_Led_Ro.attach(&Tache_Led_Ro,1);
Giamarchi 0:f812f3896eb5 36 thread_sleep_for(150);
Giamarchi 0:f812f3896eb5 37 Synchro_Led_Ve.attach(&Tache_Led_Ve,0.33);
Giamarchi 0:f812f3896eb5 38
Giamarchi 0:f812f3896eb5 39 // Test de l'horloge Systeme
Giamarchi 0:f812f3896eb5 40 pc.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock);
Giamarchi 0:f812f3896eb5 41 compteur = 0;
Giamarchi 0:f812f3896eb5 42
Giamarchi 0:f812f3896eb5 43 while (true) {
Giamarchi 0:f812f3896eb5 44 led = !led;
Giamarchi 0:f812f3896eb5 45 compteur++;
Giamarchi 0:f812f3896eb5 46 pc.printf("%d\r\n",compteur);
Giamarchi 0:f812f3896eb5 47 thread_sleep_for(BLINKING_RATE_MS);
Giamarchi 0:f812f3896eb5 48 }
Giamarchi 0:f812f3896eb5 49
Giamarchi 0:f812f3896eb5 50 // servo.period_ms(20); //Period = 20 ms (f=50 Hz)
Giamarchi 0:f812f3896eb5 51
Giamarchi 0:f812f3896eb5 52 /* while(true) {
Giamarchi 0:f812f3896eb5 53 for(int pw=1000; pw <= 2000; pw=pw+20) {
Giamarchi 0:f812f3896eb5 54 servo.pulsewidth_us(pw); //Set new servo position
Giamarchi 0:f812f3896eb5 55 // wait_ms(200);
Giamarchi 0:f812f3896eb5 56 thread_sleep_for(200);
Giamarchi 0:f812f3896eb5 57 }
Giamarchi 0:f812f3896eb5 58 // wait_ms(1000); //Wait before reverse direction
Giamarchi 0:f812f3896eb5 59 thread_sleep_for(1000);
Giamarchi 0:f812f3896eb5 60 for(int pw=2000; pw >= 1000; pw=pw-20) {
Giamarchi 0:f812f3896eb5 61 servo.pulsewidth_us(pw); //Set new servo position
Giamarchi 0:f812f3896eb5 62 // wait_ms(200);
Giamarchi 0:f812f3896eb5 63 thread_sleep_for(200);
Giamarchi 0:f812f3896eb5 64 }
Giamarchi 0:f812f3896eb5 65 // wait_ms(1000);
Giamarchi 0:f812f3896eb5 66 thread_sleep_for(1000);
Giamarchi 0:f812f3896eb5 67 }
Giamarchi 0:f812f3896eb5 68 */
Giamarchi 0:f812f3896eb5 69 }