.
Dependencies: L432KC_SPI_Pey_Lal
main.cpp
- Committer:
- voltxd
- Date:
- 2022-04-07
- Revision:
- 111:f11575e7c79b
- Parent:
- 110:a6d1d3525014
- Child:
- 112:478ae92cb106
File content as of revision 111:f11575e7c79b:
/* mbed Microcontroller Library * Copyright (c) 2019 ARM Limited * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" #include "platform/mbed_thread.h" #include "protocol.h" //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 //Declaration PWM outputs PwmOut propulsion(PWM_PROP); PwmOut direction(PWM_DIR); //Declaration Links static BufferedSerial serial_port(USBTX, USBRX,115200); SPISlave device(SPI3_MOSI, SPI3_MISO, SPI3_SCLK, SPI3_CS); // mosi, miso, sclk, ssel int main() { //Declaration PWM variables uint32_t pulsewidth_direction = 1100; uint32_t pulsewidth_propulsion = 1500; //Test Serial port serial_port.write("Test\n\r",strlen("Test\n\r")); //Init. propulsion PWM propulsion.period_us(20000); propulsion.pulsewidth_us(pulsewidth_propulsion); thread_sleep_for(2000); //Init. Direction PWM direction.period_us(20000); direction.pulsewidth_us(pulsewidth_direction); //Init. SPI Link device.format(8); //Infinite loop while(1) { //If SPI received a char, decode it then reply bullshit. if(device.receive()) { decodeMessage((char)device.read()); device.reply(0b10101010); } //If decoding has ended, get and changes PWM values. if(isDataAvailable()) { getVerifiedPWMValues(&pulsewidth_propulsion, &pulsewidth_direction); propulsion.pulsewidth_us(pulsewidth_propulsion); direction.pulsewidth_us(pulsewidth_direction); } } }