
Master sends desired_speed to 2 BLDC drivers and reads the real_speed from wheel
main.cpp@0:51917a77fe02, 2014-05-01 (annotated)
- 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?
User | Revision | Line number | New 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 |