
consept_meter
Revision 0:134db3267830, committed 2012-11-06
- Comitter:
- shindo
- Date:
- Tue Nov 06 10:20:54 2012 +0000
- Child:
- 1:39b4d6e71f76
- Commit message:
- conseptmeter_L6470
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Nov 06 10:20:54 2012 +0000 @@ -0,0 +1,484 @@ +#include "mbed.h" + +DigitalIn busy1(p26); +DigitalIn flag1(p25); +DigitalOut cs1(p8); +DigitalOut stck1(p28); +DigitalOut stby1(p27); + +DigitalIn busy2(p22); +DigitalIn flag2(p21); +DigitalOut cs2(p19); +DigitalOut stck2(p24); +DigitalOut stby2(p23); + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); + +SPI spi(p5, p6, p7); // mosi, miso, sclk + +void writeCommand(int port, unsigned char data) +{ + if (port == 1) { + cs1 = 0; + spi.write(data); + cs1 = 1; + } else { + cs2 = 0; + spi.write(data); + cs2 = 1; + } +} + +unsigned char readCommand(int port) +{ + unsigned char result = 0; + + if (port == 1) { + cs1 = 0; + result = spi.write(0); + cs1 = 1; + } else { + cs2 = 0; + result = spi.write(0); + cs2 = 1; + } + + return result; +} + +void initMotor() +{ + spi.format(8,0); + busy1.mode(PullUp); + flag1.mode(PullUp); + busy2.mode(PullUp); + flag2.mode(PullUp); + stby1 = 1; + stby2 = 1; + for (int port = 1; port <= 2; port++) { + + writeCommand(port, 0x08); + writeCommand(port, 0x00); + + writeCommand(port, 0x09); + writeCommand(port, 0xff); + + writeCommand(port, 0x0a); + writeCommand(port, 0xff); + + writeCommand(port, 0x0b); + writeCommand(port, 0xff); + + writeCommand(port, 0x0c); + writeCommand(port, 0xff); + + writeCommand(port, 0x13); + writeCommand(port, 0x0f); + + writeCommand(port, 0x14); + writeCommand(port, 0x7f); + } +} +void MAXspeed_port_1_A() +{ + writeCommand(1, 0x07); + writeCommand(1, 0x00); + writeCommand(1, 0x32); +} +void Step_Startspeed_port_1_A() +{ + writeCommand(1, 0x05); + writeCommand(1, 0x00); + writeCommand(1, 0x23); +} +void Step_Stopspeed_port_1_A() +{ + writeCommand(1, 0x06); + writeCommand(1, 0x00); + writeCommand(1, 0x15); +} +void CW_port_1_A() +{ + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x25); + writeCommand(1, 0x00); +} +void CCW_port_1_A() +{ + writeCommand(1, 0x50); + writeCommand(1, 0x00); + writeCommand(1, 0x10); + writeCommand(1, 0x00); +} +void CCW_port_1_A2() +{ + writeCommand(1, 0x50); + writeCommand(1, 0x00); + writeCommand(1, 0x40); + writeCommand(1, 0x00); +} +//---------------------------------------------- +void MAXspeed_port_2_A() +{ + writeCommand(2, 0x07); + writeCommand(2, 0x00); + writeCommand(2, 0x32); +} +void Step_Startspeed_port_2_A() +{ + writeCommand(2, 0x05); + writeCommand(2, 0x00); + writeCommand(2, 0x23); +} +void Step_Stopspeed_port_2_A() +{ + writeCommand(2, 0x06); + writeCommand(2, 0x00); + writeCommand(2, 0x15); +} +void CW_port_2_A() +{ + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x25); + writeCommand(2, 0x00); +} +void CCW_port_2_A() +{ + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x10); + writeCommand(2, 0x00); +} +void CCW_port_2_A2() +{ + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x40); + writeCommand(2, 0x00); +} +//----------------------------------- +void stertup1 () +{ + CW_port_1_A(); + CW_port_2_A(); +} +void stertup2 () +{ + CCW_port_1_A(); + CCW_port_2_A(); +} +void power_up_p1_p2 () +{ + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x40); + writeCommand(1, 0x00); + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x40); + writeCommand(2, 0x00); + wait_ms (630); + writeCommand(2, 0xb8); + wait_ms (175); + writeCommand(1, 0xb8); +} +void on () +{ + CW_port_2_A(); + wait_ms(200); + writeCommand(2, 0xb8); +} +void reb1 () +{ + CW_port_2_A(); + wait_ms(331); + writeCommand(2, 0xb0); + CCW_port_2_A(); + wait_ms(1400); + writeCommand(2, 0xb0); + wait_ms(300); +} +void reb2 () +{ + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x30); + writeCommand(2, 0x00); + wait_ms(60); + writeCommand(2, 0xb8); + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x30); + writeCommand(2, 0x00); + wait_ms(60); + writeCommand(2, 0xb8); + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x30); + writeCommand(2, 0x00); + wait_ms(60); + writeCommand(2, 0xb8); + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x30); + writeCommand(2, 0x00); + wait_ms(60); + writeCommand(2, 0xb8); + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x30); + writeCommand(2, 0x00); + wait_ms(60); +} +void reb3 () +{ + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x15); + writeCommand(2, 0x00); + wait_ms(500); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x03); + writeCommand(2, 0x00); + wait_ms(4000); + writeCommand(2, 0xb0); +} +void type1_tacho () +{ + wait_ms(2000); + + writeCommand(2, 0x51); //---1--- + writeCommand(2, 0x00); + writeCommand(2, 0x10); + writeCommand(2, 0x00); + wait_ms(500); + + writeCommand(2, 0xb0); + wait_ms(100); + + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x25); + writeCommand(2, 0x00); + wait_ms(380); + reb2 (); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(500); + writeCommand(2, 0xb0); + + writeCommand(2, 0x51); + writeCommand(2, 0x00); + writeCommand(2, 0x08); + writeCommand(2, 0x00); + wait_ms(2050); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(450); + writeCommand(2, 0xb8); + wait_ms(200); + writeCommand(2, 0x51);//---2--- + writeCommand(2, 0x00); + writeCommand(2, 0x05); + writeCommand(2, 0x00); + wait_ms(1550); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(430); + writeCommand(2, 0xb8); + wait_ms(200); + writeCommand(2, 0x51);//---3--- + writeCommand(2, 0x00); + writeCommand(2, 0x04); + writeCommand(2, 0x00); + wait_ms(2000); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(400); + writeCommand(2, 0xb8); + wait_ms(200); + writeCommand(2, 0x51);//---4--- + writeCommand(2, 0x00); + writeCommand(2, 0x02); + writeCommand(2, 0x00); + wait_ms(4000); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(300); + writeCommand(2, 0xb8); + wait_ms(200); + writeCommand(2, 0x51);//---5--- + writeCommand(2, 0x00); + writeCommand(2, 0x01); + writeCommand(2, 0x50); + wait_ms(3000); + writeCommand(2, 0x51);//---5--- + writeCommand(2, 0x00); + writeCommand(2, 0x01); + writeCommand(2, 0x00); + wait_ms(1500); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x20); + writeCommand(2, 0x00); + wait_ms(300); + writeCommand(2, 0xb8); + wait_ms(200); + writeCommand(2, 0x51);//---6--- + writeCommand(2, 0x00); + writeCommand(2, 0x01); + writeCommand(2, 0x50); + wait_ms(3000); + writeCommand(2, 0x51);//---6--- + writeCommand(2, 0x00); + writeCommand(2, 0x01); + writeCommand(2, 0x00); + wait_ms(2500); +} +void type1_speed () +{ + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x04); + writeCommand(1, 0xb0); + wait_ms(1500); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x03); + writeCommand(1, 0xe8); + wait_ms(2000); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x02); + writeCommand(1, 0x58); + wait_ms(2500); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x01); + writeCommand(1, 0x90); + wait_ms(3000); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x01); + writeCommand(1, 0x2c); + wait_ms(3500); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x00); + writeCommand(1, 0xfa); + wait_ms(4500); + writeCommand(1, 0x51); + writeCommand(1, 0x00); + writeCommand(1, 0x00); + writeCommand(1, 0x78); + wait_ms(5200); + writeCommand(1, 0xb0); +} + +int main() +{ + initMotor(); + MAXspeed_port_1_A(); + Step_Startspeed_port_1_A(); + Step_Stopspeed_port_1_A(); + + MAXspeed_port_2_A(); + Step_Startspeed_port_2_A(); + Step_Stopspeed_port_2_A(); + + writeCommand(2, 0x83); + writeCommand(1, 0x83); + + int i = 0; + while(1) { + if (i == 0) { + stertup1 (); + wait_ms(200); + stertup2 (); + wait_ms(4000); + } else if (i == 1) { + power_up_p1_p2 (); + wait_ms(1000); + } else if (i == 2) { + CCW_port_1_A2(); + CCW_port_2_A2(); + wait_ms(1000); + } else if (i == 3) { + on (); + wait_ms(2000); + } else if (i == 4) { + reb1 (); + } else if (i == 5) { + + //type1_demo (); + type1_speed (); + type1_tacho (); + + } else if (i == 6) { + writeCommand(1, 0x50); + writeCommand(1, 0x00); + writeCommand(1, 0x01); + writeCommand(1, 0x2c); + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x03); + writeCommand(2, 0x00); + wait_ms(5000); + reb3 (); + reb3 (); + reb3 (); + reb3 (); + reb3 (); + + + writeCommand(2, 0x50); + writeCommand(2, 0x00); + writeCommand(2, 0x03); + writeCommand(2, 0x00); + wait_ms(1800); + writeCommand(1, 0xb8); + writeCommand(2, 0xb8); + wait(10); + + } else if (i == 8) { + CCW_port_1_A(); + CCW_port_2_A(); + wait_ms(5000); + i = -1; + } + wait_ms(200); + + i++; + + } + +} + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Nov 06 10:20:54 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e2ed12d17f06 \ No newline at end of file