.
https://www.mediafire.com/file/sjhxgn70gxshilg/protocol_spi_pwm.png/file
main.cpp
- Committer:
- voltxd
- Date:
- 2022-04-05
- Revision:
- 108:2fd41d299a8c
- Parent:
- 107:0965c72c798e
- Child:
- 109:4ee7ffc8f175
File content as of revision 108:2fd41d299a8c:
/* 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> // 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); 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 int main() { uint32_t pulsewidth_direction = 1100; char texte[32]; sprintf(texte,"Test\n\r"); serial_port.write(texte,strlen(texte)); propulsion.period_us(20000); propulsion.pulsewidth_us(1500); thread_sleep_for(2000); direction.period_us(20000); direction.pulsewidth_us(pulsewidth_direction); led = 1; device.format(8); while (true) { /* 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); */ 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; } } } }