Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 7366_lib TLE5206_lib
main.cpp
- Committer:
- natienza
- Date:
- 2019-02-12
- Revision:
- 2:486bb9b6bd78
- Parent:
- 0:509b29d50fcb
- Child:
- 3:737ac9c24ca5
File content as of revision 2:486bb9b6bd78:
//Includes #include "mbed.h" #include "7366_lib.h" #include "TLE5206_lib.h" // Liaison SPI avec les compteurs #define SPI_SCLK PA_5 //A4 #define SPI_MISO PA_6 //A5 #define SPI_MOSI PA_7 //A6 #define SPI_CS3 PA_0//A0 #define SPI_CS2 PA_1 #define SPI_CS1 PA_3 // Vers le pont en H #define H1_IN1 PA_9 //D1 - PWM1/2 #define H1_IN2 PA_10 //D0 - PWM1/3 #define H2_IN1 PA_8 //D9 - PWM1/1 #define H2_IN2 PB_7 //D4 - PWM17/1 #define H3_IN1 PB_6 //D5 - PWM16/1 #define H3_IN2 PA_4 //A3 - PWM3/2 #define DECOUP_HACH 50 //us - 20 000 kHz pour les oreilles #define PERIODE_AFF 500 //ms #define PERIODE_ASSERV 50 //ms Serial pc(USBTX,USBRX); Timer timer; DigitalOut myled(LED3); SPI_7366 compt1(SPI_MOSI, SPI_MISO, SPI_SCLK,SPI_CS1); SPI_7366 compt2(SPI_MOSI, SPI_MISO, SPI_SCLK,SPI_CS2); SPI_7366 compt3(SPI_MOSI, SPI_MISO, SPI_SCLK,SPI_CS3); TLE5206 moteur1(H1_IN1,H1_IN2); TLE5206 moteur2(H2_IN1,H2_IN2); TLE5206 moteur3(H3_IN1,H3_IN2); int main() { //setup compt1.setup(); compt2.setup(); compt3.setup(); moteur1.setup(DECOUP_HACH); moteur2.setup(DECOUP_HACH); moteur3.setup(DECOUP_HACH); moteur1.write(-0.4); moteur2.write(-0.7); moteur3.write(0.7); timer.start(); //variables int32_t position = 0; int32_t consigne = (1<<15); int32_t erreur = 0; float gain = 0.0001; uint32_t seuilAffichage = PERIODE_AFF; uint32_t seuilAsserv = PERIODE_ASSERV; // Loop while(1) { if (timer.read_ms() > seuilAffichage){ position = compt2.read_value(); seuilAffichage += PERIODE_AFF; pc.printf("valeur lue : %d \n\r", position); myled = !myled; } if (timer.read_ms() > seuilAsserv){ seuilAsserv += PERIODE_ASSERV; erreur = compt2.read_value() - consigne; moteur2.write(gain * erreur); } } }