.

Dependencies:   L432KC_SPI_Pey_Lal

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?

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>
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 }