.
https://www.mediafire.com/file/sjhxgn70gxshilg/protocol_spi_pwm.png/file
main.cpp
- Committer:
- voltxd
- Date:
- 2022-04-05
- Revision:
- 109:4ee7ffc8f175
- Parent:
- 108:2fd41d299a8c
- Child:
- 110:a6d1d3525014
File content as of revision 109:4ee7ffc8f175:
/* mbed Microcontroller Library * Copyright (c) 2019 ARM Limited * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" #include "platform/mbed_thread.h" #include <string.h> #include <stdio.h> #include <stdlib.h> #include <SPISlave.h> #include "protocol.h" // Blinking rate in milliseconds #define BLINKING_RATE_MS 2000 //Define SPI #define SPI3_MOSI D11 #define SPI3_MISO D12 #define SPI3_SCLK D13 #define SPI3_CS A3 //Define PWM #define PWM_PROP D10 #define PWM_DIR D9 //Déclarations PWM PwmOut propulsion(PWM_PROP); PwmOut direction(PWM_DIR); //Déclarations Liaisons static BufferedSerial serial_port(USBTX, USBRX,115200); SPISlave device(SPI3_MOSI, SPI3_MISO, SPI3_SCLK, SPI3_CS); // mosi, miso, sclk, ssel 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(pulsewidth_propulsion); thread_sleep_for(2000); direction.period_us(20000); direction.pulsewidth_us(pulsewidth_direction); 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); thread_sleep_for(BLINKING_RATE_MS); led = !led; propulsion.pulsewidth_us(1400); thread_sleep_for(BLINKING_RATE_MS); led = !led; propulsion.pulsewidth_us(1500); thread_sleep_for(BLINKING_RATE_MS); led = !led; propulsion.pulsewidth_us(1550); thread_sleep_for(BLINKING_RATE_MS); led = !led; propulsion.pulsewidth_us(1600); thread_sleep_for(BLINKING_RATE_MS); led = !led; propulsion.pulsewidth_us(1800); thread_sleep_for(BLINKING_RATE_MS); */ } }