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