.

Dependencies:   L432KC_SPI_Pey_Lal

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