Master sends desired_speed to 2 BLDC drivers and reads the real_speed from wheel

Dependencies:   mbed

Committer:
Edewin
Date:
Thu May 01 09:00:22 2014 +0000
Revision:
0:51917a77fe02
Master sends desired_speed through SPI to 2 BLDC drivers and receive the real_wheel_speed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Edewin 0:51917a77fe02 1 #include "mbed.h"
Edewin 0:51917a77fe02 2 /*
Edewin 0:51917a77fe02 3 *
Edewin 0:51917a77fe02 4 * Sensul : 0 - Inapoi
Edewin 0:51917a77fe02 5 * 1 - Inainte
Edewin 0:51917a77fe02 6 */
Edewin 0:51917a77fe02 7 unsigned int driver_dreapta(unsigned char sensul_dorit, unsigned int viteza_dorita);
Edewin 0:51917a77fe02 8 unsigned int driver_stanga(unsigned char sensul_dorit, unsigned int viteza_dorita);
Edewin 0:51917a77fe02 9 Serial pc (PA_2, PA_3);
Edewin 0:51917a77fe02 10 SPI device(SPI_MOSI, SPI_MISO, SPI_SCK);
Edewin 0:51917a77fe02 11 DigitalOut cs1(PB_6);
Edewin 0:51917a77fe02 12 DigitalOut cs2(PA_8);
Edewin 0:51917a77fe02 13 DigitalOut sens1(PC_7);
Edewin 0:51917a77fe02 14 DigitalOut sens2(PB_10);
Edewin 0:51917a77fe02 15 int main() {
Edewin 0:51917a77fe02 16 device.format(16,0);
Edewin 0:51917a77fe02 17 device.frequency(1000000);
Edewin 0:51917a77fe02 18 unsigned int vit_rot_dr=0,vit_rot_st=0,j=0;
Edewin 0:51917a77fe02 19
Edewin 0:51917a77fe02 20 while(1) {
Edewin 0:51917a77fe02 21 for(j=40;j<100;++j)
Edewin 0:51917a77fe02 22 {
Edewin 0:51917a77fe02 23 vit_rot_dr=driver_dreapta(1,0);
Edewin 0:51917a77fe02 24 vit_rot_st=driver_stanga(1,j);
Edewin 0:51917a77fe02 25 pc.printf("vit rotii drepte %d rpm si stangi %d rpm\n\r",vit_rot_dr, vit_rot_st);
Edewin 0:51917a77fe02 26
Edewin 0:51917a77fe02 27 wait_ms(50);
Edewin 0:51917a77fe02 28 }
Edewin 0:51917a77fe02 29 for(j=40;j<100;++j)
Edewin 0:51917a77fe02 30 {
Edewin 0:51917a77fe02 31 vit_rot_dr=driver_dreapta(0,0);
Edewin 0:51917a77fe02 32 vit_rot_st=driver_stanga(0,j);
Edewin 0:51917a77fe02 33 pc.printf("viteza rotii drepte%d si stangi%d\n\r",vit_rot_dr, vit_rot_st);
Edewin 0:51917a77fe02 34 wait_ms(50);
Edewin 0:51917a77fe02 35 }
Edewin 0:51917a77fe02 36 }
Edewin 0:51917a77fe02 37 }
Edewin 0:51917a77fe02 38
Edewin 0:51917a77fe02 39 unsigned int driver_dreapta(unsigned char sensul_dorit, unsigned int viteza_dorita)
Edewin 0:51917a77fe02 40 {
Edewin 0:51917a77fe02 41 unsigned int viteza_reala=0;
Edewin 0:51917a77fe02 42 sens1=sensul_dorit;
Edewin 0:51917a77fe02 43 cs1=0;
Edewin 0:51917a77fe02 44 viteza_reala=device.write(viteza_dorita);
Edewin 0:51917a77fe02 45 cs1=1;
Edewin 0:51917a77fe02 46 return viteza_reala;
Edewin 0:51917a77fe02 47 }
Edewin 0:51917a77fe02 48
Edewin 0:51917a77fe02 49 unsigned int driver_stanga(unsigned char sensul_dorit, unsigned int viteza_dorita)
Edewin 0:51917a77fe02 50 {
Edewin 0:51917a77fe02 51 unsigned int viteza_reala=0;
Edewin 0:51917a77fe02 52 sens2=sensul_dorit;
Edewin 0:51917a77fe02 53 cs2=0;
Edewin 0:51917a77fe02 54 viteza_reala=device.write(viteza_dorita);
Edewin 0:51917a77fe02 55 cs2=1;
Edewin 0:51917a77fe02 56 return viteza_reala;
Edewin 0:51917a77fe02 57 }
Edewin 0:51917a77fe02 58