.
Dependencies: L432KC_SPI_Pey_Lal
main.cpp@109:4ee7ffc8f175, 2022-04-05 (annotated)
- Committer:
- voltxd
- Date:
- Tue Apr 05 13:34:51 2022 +0000
- Revision:
- 109:4ee7ffc8f175
- Parent:
- 108:2fd41d299a8c
- Child:
- 110:a6d1d3525014
.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 82:abf1b1785bd7 | 1 | /* mbed Microcontroller Library |
mbed_official | 102:6979ad8bc0bc | 2 | * Copyright (c) 2019 ARM Limited |
mbed_official | 82:abf1b1785bd7 | 3 | * SPDX-License-Identifier: Apache-2.0 |
mbed_official | 82:abf1b1785bd7 | 4 | */ |
mbed_official | 82:abf1b1785bd7 | 5 | |
Jonathan Austin |
0:2757d7abb7d9 | 6 | #include "mbed.h" |
mbed_official | 100:ec006d6f3cb6 | 7 | #include "platform/mbed_thread.h" |
ajuton | 107:0965c72c798e | 8 | #include <string.h> |
ajuton | 107:0965c72c798e | 9 | #include <stdio.h> |
voltxd | 108:2fd41d299a8c | 10 | #include <stdlib.h> |
voltxd | 108:2fd41d299a8c | 11 | #include <SPISlave.h> |
voltxd | 109:4ee7ffc8f175 | 12 | #include "protocol.h" |
Jonathan Austin |
0:2757d7abb7d9 | 13 | |
Jonathan Austin |
0:2757d7abb7d9 | 14 | |
mbed_official | 102:6979ad8bc0bc | 15 | // Blinking rate in milliseconds |
voltxd | 108:2fd41d299a8c | 16 | #define BLINKING_RATE_MS 2000 |
mbed_official | 88:bea4f2daa48c | 17 | |
voltxd | 108:2fd41d299a8c | 18 | //Define SPI |
voltxd | 108:2fd41d299a8c | 19 | #define SPI3_MOSI D11 |
voltxd | 108:2fd41d299a8c | 20 | #define SPI3_MISO D12 |
voltxd | 108:2fd41d299a8c | 21 | #define SPI3_SCLK D13 |
voltxd | 108:2fd41d299a8c | 22 | #define SPI3_CS A3 |
ajuton | 107:0965c72c798e | 23 | |
voltxd | 108:2fd41d299a8c | 24 | //Define PWM |
voltxd | 108:2fd41d299a8c | 25 | #define PWM_PROP D10 |
voltxd | 108:2fd41d299a8c | 26 | #define PWM_DIR D9 |
ajuton | 107:0965c72c798e | 27 | |
voltxd | 108:2fd41d299a8c | 28 | //Déclarations PWM |
voltxd | 108:2fd41d299a8c | 29 | PwmOut propulsion(PWM_PROP); |
voltxd | 108:2fd41d299a8c | 30 | PwmOut direction(PWM_DIR); |
ajuton | 107:0965c72c798e | 31 | |
voltxd | 108:2fd41d299a8c | 32 | //Déclarations Liaisons |
ajuton | 107:0965c72c798e | 33 | static BufferedSerial serial_port(USBTX, USBRX,115200); |
voltxd | 108:2fd41d299a8c | 34 | SPISlave device(SPI3_MOSI, SPI3_MISO, SPI3_SCLK, SPI3_CS); // mosi, miso, sclk, ssel |
mbed_official | 102:6979ad8bc0bc | 35 | |
mbed_official | 82:abf1b1785bd7 | 36 | int main() |
mbed_official | 82:abf1b1785bd7 | 37 | { |
ajuton | 107:0965c72c798e | 38 | uint32_t pulsewidth_direction = 1100; |
voltxd | 109:4ee7ffc8f175 | 39 | uint32_t pulsewidth_propulsion = 1500; |
voltxd | 109:4ee7ffc8f175 | 40 | |
voltxd | 108:2fd41d299a8c | 41 | char texte[32]; |
voltxd | 109:4ee7ffc8f175 | 42 | |
voltxd | 108:2fd41d299a8c | 43 | sprintf(texte,"Test\n\r"); |
voltxd | 108:2fd41d299a8c | 44 | serial_port.write(texte,strlen(texte)); |
voltxd | 109:4ee7ffc8f175 | 45 | |
ajuton | 107:0965c72c798e | 46 | propulsion.period_us(20000); |
voltxd | 109:4ee7ffc8f175 | 47 | propulsion.pulsewidth_us(pulsewidth_propulsion); |
voltxd | 109:4ee7ffc8f175 | 48 | |
voltxd | 108:2fd41d299a8c | 49 | thread_sleep_for(2000); |
voltxd | 109:4ee7ffc8f175 | 50 | |
ajuton | 107:0965c72c798e | 51 | direction.period_us(20000); |
ajuton | 107:0965c72c798e | 52 | direction.pulsewidth_us(pulsewidth_direction); |
voltxd | 109:4ee7ffc8f175 | 53 | |
voltxd | 108:2fd41d299a8c | 54 | device.format(8); |
voltxd | 108:2fd41d299a8c | 55 | |
Jonathan Austin |
0:2757d7abb7d9 | 56 | while (true) { |
voltxd | 109:4ee7ffc8f175 | 57 | if (device.receive()) |
voltxd | 109:4ee7ffc8f175 | 58 | { |
voltxd | 109:4ee7ffc8f175 | 59 | decodeMessage((char)device.read()); |
voltxd | 109:4ee7ffc8f175 | 60 | } |
voltxd | 109:4ee7ffc8f175 | 61 | if (isDataAvailable()) |
voltxd | 109:4ee7ffc8f175 | 62 | { |
voltxd | 109:4ee7ffc8f175 | 63 | uint32_t pwms[2]; |
voltxd | 109:4ee7ffc8f175 | 64 | getVerifiedPWMValues(pwms); |
voltxd | 109:4ee7ffc8f175 | 65 | pulsewidth_propulsion = pwms[0]; |
voltxd | 109:4ee7ffc8f175 | 66 | pulsewidth_direction = pwms[1]; |
voltxd | 109:4ee7ffc8f175 | 67 | propulsion.pulsewidth_us(pulsewidth_propulsion); |
voltxd | 109:4ee7ffc8f175 | 68 | direction.pulsewidth_us(pulsewidth_direction); |
voltxd | 109:4ee7ffc8f175 | 69 | } |
voltxd | 109:4ee7ffc8f175 | 70 | |
voltxd | 108:2fd41d299a8c | 71 | /* |
ajuton | 107:0965c72c798e | 72 | |
voltxd | 108:2fd41d299a8c | 73 | propulsion.pulsewidth_us(1450); |
voltxd | 108:2fd41d299a8c | 74 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 75 | led = !led; |
voltxd | 108:2fd41d299a8c | 76 | propulsion.pulsewidth_us(1400); |
voltxd | 108:2fd41d299a8c | 77 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 78 | led = !led; |
voltxd | 108:2fd41d299a8c | 79 | propulsion.pulsewidth_us(1500); |
voltxd | 108:2fd41d299a8c | 80 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 81 | led = !led; |
voltxd | 108:2fd41d299a8c | 82 | propulsion.pulsewidth_us(1550); |
voltxd | 108:2fd41d299a8c | 83 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 84 | led = !led; |
voltxd | 108:2fd41d299a8c | 85 | propulsion.pulsewidth_us(1600); |
voltxd | 108:2fd41d299a8c | 86 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 87 | led = !led; |
voltxd | 108:2fd41d299a8c | 88 | propulsion.pulsewidth_us(1800); |
voltxd | 108:2fd41d299a8c | 89 | thread_sleep_for(BLINKING_RATE_MS); |
voltxd | 108:2fd41d299a8c | 90 | */ |
ajuton | 107:0965c72c798e | 91 | |
voltxd | 109:4ee7ffc8f175 | 92 | |
Jonathan Austin |
0:2757d7abb7d9 | 93 | } |
Jonathan Austin |
0:2757d7abb7d9 | 94 | } |