UniverSpace 2022
/
IniSat_TP1_Trame
IniSat Modèle 1 Version 2
main.cpp@0:f812f3896eb5, 2021-06-20 (annotated)
- Committer:
- Giamarchi
- Date:
- Sun Jun 20 23:21:43 2021 +0000
- Revision:
- 0:f812f3896eb5
- Child:
- 1:b869fd151c26
- Child:
- 2:4f8eaf28aea5
Trame pour TP1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |