.

https://www.mediafire.com/file/sjhxgn70gxshilg/protocol_spi_pwm.png/file

Committer:
voltxd
Date:
Tue Apr 05 11:19:38 2022 +0000
Revision:
108:2fd41d299a8c
Parent:
107:0965c72c798e
Child:
109:4ee7ffc8f175
.

Who changed what in which revision?

UserRevisionLine numberNew 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>
Jonathan Austin 0:2757d7abb7d9 12
Jonathan Austin 0:2757d7abb7d9 13
mbed_official 102:6979ad8bc0bc 14 // Blinking rate in milliseconds
voltxd 108:2fd41d299a8c 15 #define BLINKING_RATE_MS 2000
mbed_official 88:bea4f2daa48c 16
voltxd 108:2fd41d299a8c 17 //Define SPI
voltxd 108:2fd41d299a8c 18 #define SPI3_MOSI D11
voltxd 108:2fd41d299a8c 19 #define SPI3_MISO D12
voltxd 108:2fd41d299a8c 20 #define SPI3_SCLK D13
voltxd 108:2fd41d299a8c 21 #define SPI3_CS A3
ajuton 107:0965c72c798e 22
voltxd 108:2fd41d299a8c 23 //Define PWM
voltxd 108:2fd41d299a8c 24 #define PWM_PROP D10
voltxd 108:2fd41d299a8c 25 #define PWM_DIR D9
ajuton 107:0965c72c798e 26
voltxd 108:2fd41d299a8c 27 //Déclarations PWM
voltxd 108:2fd41d299a8c 28 PwmOut propulsion(PWM_PROP);
voltxd 108:2fd41d299a8c 29 PwmOut direction(PWM_DIR);
ajuton 107:0965c72c798e 30
ajuton 107:0965c72c798e 31 DigitalOut led(LED1);
ajuton 107:0965c72c798e 32
voltxd 108:2fd41d299a8c 33
voltxd 108:2fd41d299a8c 34 //Déclarations Liaisons
ajuton 107:0965c72c798e 35 static BufferedSerial serial_port(USBTX, USBRX,115200);
voltxd 108:2fd41d299a8c 36 SPISlave device(SPI3_MOSI, SPI3_MISO, SPI3_SCLK, SPI3_CS); // mosi, miso, sclk, ssel
mbed_official 102:6979ad8bc0bc 37
mbed_official 82:abf1b1785bd7 38 int main()
mbed_official 82:abf1b1785bd7 39 {
ajuton 107:0965c72c798e 40 uint32_t pulsewidth_direction = 1100;
voltxd 108:2fd41d299a8c 41 char texte[32];
voltxd 108:2fd41d299a8c 42 sprintf(texte,"Test\n\r");
voltxd 108:2fd41d299a8c 43 serial_port.write(texte,strlen(texte));
ajuton 107:0965c72c798e 44 propulsion.period_us(20000);
ajuton 107:0965c72c798e 45 propulsion.pulsewidth_us(1500);
voltxd 108:2fd41d299a8c 46 thread_sleep_for(2000);
ajuton 107:0965c72c798e 47 direction.period_us(20000);
ajuton 107:0965c72c798e 48 direction.pulsewidth_us(pulsewidth_direction);
voltxd 108:2fd41d299a8c 49 led = 1;
voltxd 108:2fd41d299a8c 50 device.format(8);
voltxd 108:2fd41d299a8c 51
Jonathan Austin 0:2757d7abb7d9 52 while (true) {
voltxd 108:2fd41d299a8c 53 /*
ajuton 107:0965c72c798e 54
voltxd 108:2fd41d299a8c 55 propulsion.pulsewidth_us(1450);
voltxd 108:2fd41d299a8c 56 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 57 led = !led;
voltxd 108:2fd41d299a8c 58 propulsion.pulsewidth_us(1400);
voltxd 108:2fd41d299a8c 59 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 60 led = !led;
voltxd 108:2fd41d299a8c 61 propulsion.pulsewidth_us(1500);
voltxd 108:2fd41d299a8c 62 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 63 led = !led;
voltxd 108:2fd41d299a8c 64 propulsion.pulsewidth_us(1550);
voltxd 108:2fd41d299a8c 65 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 66 led = !led;
voltxd 108:2fd41d299a8c 67 propulsion.pulsewidth_us(1600);
voltxd 108:2fd41d299a8c 68 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 69 led = !led;
voltxd 108:2fd41d299a8c 70 propulsion.pulsewidth_us(1800);
voltxd 108:2fd41d299a8c 71 thread_sleep_for(BLINKING_RATE_MS);
voltxd 108:2fd41d299a8c 72 */
ajuton 107:0965c72c798e 73
ajuton 107:0965c72c798e 74 if (device.receive()) {
voltxd 108:2fd41d299a8c 75 led = !led;
ajuton 107:0965c72c798e 76 int v = device.read(); // Read byte from master
voltxd 108:2fd41d299a8c 77 if (v == 'a')
voltxd 108:2fd41d299a8c 78 {
voltxd 108:2fd41d299a8c 79 //device.reply('o');
voltxd 108:2fd41d299a8c 80 led = 1;
voltxd 108:2fd41d299a8c 81 }
voltxd 108:2fd41d299a8c 82 else if (v == 'e')
voltxd 108:2fd41d299a8c 83 {
voltxd 108:2fd41d299a8c 84 //device.reply('n');
voltxd 108:2fd41d299a8c 85 led = 0;
voltxd 108:2fd41d299a8c 86 }
ajuton 107:0965c72c798e 87 }
Jonathan Austin 0:2757d7abb7d9 88 }
Jonathan Austin 0:2757d7abb7d9 89 }