.
https://www.mediafire.com/file/sjhxgn70gxshilg/protocol_spi_pwm.png/file
Diff: main.cpp
- Revision:
- 109:4ee7ffc8f175
- Parent:
- 108:2fd41d299a8c
- Child:
- 110:a6d1d3525014
diff -r 2fd41d299a8c -r 4ee7ffc8f175 main.cpp --- a/main.cpp Tue Apr 05 11:19:38 2022 +0000 +++ b/main.cpp Tue Apr 05 13:34:51 2022 +0000 @@ -9,6 +9,7 @@ #include <stdio.h> #include <stdlib.h> #include <SPISlave.h> +#include "protocol.h" // Blinking rate in milliseconds @@ -28,9 +29,6 @@ PwmOut propulsion(PWM_PROP); PwmOut direction(PWM_DIR); -DigitalOut led(LED1); - - //Déclarations Liaisons static BufferedSerial serial_port(USBTX, USBRX,115200); SPISlave device(SPI3_MOSI, SPI3_MISO, SPI3_SCLK, SPI3_CS); // mosi, miso, sclk, ssel @@ -38,18 +36,38 @@ int main() { uint32_t pulsewidth_direction = 1100; + uint32_t pulsewidth_propulsion = 1500; + char texte[32]; + sprintf(texte,"Test\n\r"); serial_port.write(texte,strlen(texte)); + propulsion.period_us(20000); - propulsion.pulsewidth_us(1500); + propulsion.pulsewidth_us(pulsewidth_propulsion); + thread_sleep_for(2000); + direction.period_us(20000); direction.pulsewidth_us(pulsewidth_direction); - led = 1; + device.format(8); while (true) { + if (device.receive()) + { + decodeMessage((char)device.read()); + } + if (isDataAvailable()) + { + uint32_t pwms[2]; + getVerifiedPWMValues(pwms); + pulsewidth_propulsion = pwms[0]; + pulsewidth_direction = pwms[1]; + propulsion.pulsewidth_us(pulsewidth_propulsion); + direction.pulsewidth_us(pulsewidth_direction); + } + /* propulsion.pulsewidth_us(1450); @@ -71,19 +89,6 @@ thread_sleep_for(BLINKING_RATE_MS); */ - if (device.receive()) { - led = !led; - int v = device.read(); // Read byte from master - if (v == 'a') - { - //device.reply('o'); - led = 1; - } - else if (v == 'e') - { - //device.reply('n'); - led = 0; - } - } + } }