spi

Dependencies:   mbed

Fork of SPICommSTM32f4 by Khemiri Mahrane

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 SPISlave SPINUCLEO(PA_7,PA_6,PA_5,PA_4);
00004 //DigitalOut myled(LED1);
00005 
00006 PwmOut PWM1(PA_8);
00007 //TIM1_CH4  //Pince bas gauche
00008 PwmOut PWM2(PA_11);
00009 //TIM16_CH1
00010 PwmOut PWM3(PA_12);// Pince Glissement Gauche
00011 //TIM3_CH1
00012 PwmOut PWM4(PB_0);//Pince Glissement droite
00013 //TIM3_CH4
00014 PwmOut PWM5(PB_7);
00015 //TIM17_CH1N
00016 PwmOut PWM6(PB_6);
00017 //TIM3_CH4,
00018 PwmOut PWM7(PB_1);
00019 //TIM3_CH3
00020 PwmOut PWM8(PF_0); //pince bas droite
00021 
00022 float map (int x, int in_min,int  in_max, float out_min, float out_max)
00023 {
00024   return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
00025 }
00026 
00027 void Pince_Bas_Gauche(int a)
00028 {// 40 ouverture 0 fermeture
00029 PWM2.period_ms(20); 
00030 PWM2.write(map (a,0,180,0.028f,0.12f));   
00031 }
00032 
00033 void Pince_Bas_Droite(int a)
00034 {// 0 ouverture 40 fermeture
00035 PWM8.period_ms(20); 
00036 PWM8.write(map (a,0,180,0.028f,0.12f));   
00037 }
00038 void ouverture()
00039 {
00040     Pince_Bas_Droite(0);
00041     Pince_Bas_Gauche(40);
00042     }
00043 void fermeture()
00044 {
00045     Pince_Bas_Droite(40);
00046     Pince_Bas_Gauche(0);
00047     }
00048 void Pince_Glissement_Gauche(int a)
00049 {//50avant 0 arriere
00050 PWM3.period_ms(20); 
00051 PWM3.write(map (a,0,180,0.028f,0.12f));   
00052 }
00053 
00054 void Pince_Glissement_Droit(int a)
00055 {//0avant 50 arriere
00056 PWM4.period_ms(20); 
00057 PWM4.write(map (a,0,180,0.028f,0.12f));   
00058 }
00059 void Pince_arriere()
00060 {
00061 Pince_Glissement_Droit(0);
00062 Pince_Glissement_Gauche(50);
00063 }
00064 void Pince_avant()
00065 {
00066 Pince_Glissement_Droit(55);
00067 Pince_Glissement_Gauche(0);
00068 }
00069 
00070 int main() {
00071 int a=0;
00072 SPINUCLEO.frequency(21000000);  
00073 SPINUCLEO.reply(0x00);
00074 
00075 ouverture();
00076 
00077 while (1)
00078 {
00079 if (SPINUCLEO.receive())
00080 {
00081 a=SPINUCLEO.read();
00082 if(a==0x0A)
00083 {
00084  ouverture();
00085  wait(2);
00086  fermeture();
00087  wait(2);
00088  SPINUCLEO.reply(0x0B);
00089  
00090 }}
00091 
00092 }
00093 
00094 }