yuki makura / Mbed 2 deprecated 2018_wamv_sw_panel

Dependencies:   mbed mbed-rtos EthernetInterface

Revision:
0:e894a0665114
Child:
1:8485adfbbd18
diff -r 000000000000 -r e894a0665114 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Dec 10 19:41:42 2018 +0000
@@ -0,0 +1,162 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "mbed.h"
+
+#define ON (1)
+#define OFF (0)
+
+#define COLOR_RED (0b100)
+#define COLOR_YELLOW (0b110)
+#define COLOR_GREEN (0b010)
+#define COLOR_BLUE (0b001)
+#define COLOR_CYAN (0b011)
+#define COLOR_MAZENTA (0b101)
+#define COLOR_WHITE (0b111)
+#define COLOR_BLACK (0b000)
+
+DigitalOut led_ctrl_5v(p8);
+DigitalOut led_ctrl_12v(p9);
+DigitalOut led_ctrl_24v(p10);
+DigitalOut led_ctrl_main(p6);
+DigitalOut led_motor_main_fuse(p5);
+DigitalOut led_motor_12v_fuse(p7);
+DigitalOut led_motor_main(p11);
+DigitalOut led_motor_12v(p17);
+
+DigitalIn relay_ctrl_main(p14, PullNone);
+DigitalIn relay_motor_main(p12, PullNone);
+DigitalIn relay_motor_12v(p13, PullNone);
+
+AnalogIn ad_ctrl_main(p20);
+
+Serial pc(USBTX, USBRX, 9600);
+
+I2C i2c_master(p28, p27);
+const char master_addr = 0x70;
+
+/*CAN*/
+CAN can_master(p30, p29);
+
+void LedCheck(void);
+
+// main() runs in its own thread in the OS
+int main()
+{
+    float voltage_ctrl_main = 0.0;
+    char command;
+    char address;
+    char data[8];
+    char can_data[2];
+    led_ctrl_5v = OFF;
+    led_ctrl_12v = OFF;
+    led_ctrl_24v = OFF;
+    led_ctrl_main = OFF;
+    led_motor_main_fuse = OFF;
+    led_motor_12v_fuse = OFF;
+    led_motor_main = OFF;
+    led_motor_12v = OFF;
+    
+    LedCheck();
+
+    while (true) {
+        /*address = 0b1001000;
+        command = 0b10000011;        
+        i2c_master.write(address, &command, 1, true);
+        wait_us(300);
+        i2c_master.read(address, &data[0], 1, true);
+        
+        command = 0b10010011;        
+        i2c_master.write(address, &command, 1);
+        wait_us(300);
+        i2c_master.read(address, &data[1], 1, true);
+        
+        command = 0b10100011;        
+        i2c_master.write(address, &command, 1);
+        wait_us(300);
+        i2c_master.read(address, &data[2], 1, true);
+        
+        command = 0b10110011;        
+        i2c_master.write(address, &command, 1);
+        wait_us(300);
+        i2c_master.read(address, &data[3], 1, true);
+        
+        voltage_ctrl_main = (ad_ctrl_main.read() * 104.0 * 3.3 / 13.0);*/
+        led_ctrl_main = relay_ctrl_main;
+        led_motor_main_fuse = relay_motor_main;
+        led_motor_main = relay_motor_main;
+        led_motor_12v_fuse = relay_motor_12v;
+        //printf("%04x\t%04x\t%04x\t%04x\t", data[0], data[1], data[2], data[3]);
+        //printf("%f(v)\n", voltage_ctrl_main);
+        
+        if(ON == relay_motor_main)
+        {
+            can_data[0] = COLOR_YELLOW;
+            can_data[1] = 0x10;
+        }
+        else
+        {
+            can_data[0] = COLOR_RED;
+            can_data[1] = 0x10;
+        }
+        CANMessage msg(0x1852, can_data, sizeof(can_data), CANData, CANStandard);
+        can_master.write(msg);
+    }
+}
+
+void LedCheck(void)
+{
+    led_ctrl_5v = ON;
+    wait(0.05f);
+    led_ctrl_5v = OFF;
+    
+    led_ctrl_12v = ON;
+    wait(0.05f);
+    led_ctrl_12v = OFF;
+    
+    led_ctrl_24v = ON;
+    wait(0.05f);
+    led_ctrl_24v = OFF; 
+    
+    led_ctrl_main = ON;
+    wait(0.05f);
+    led_ctrl_main = OFF;
+    
+    led_motor_main_fuse = ON;
+    wait(0.05f);
+    led_motor_main_fuse = OFF;
+
+    led_motor_12v_fuse = ON;
+    wait(0.05f);
+    led_motor_12v_fuse = OFF;
+    
+    led_motor_main = ON;
+    wait(0.05f);
+    led_motor_main = OFF;
+    
+    led_motor_12v = ON;
+    wait(0.05f);
+    led_motor_12v = OFF;
+    
+    led_ctrl_5v = ON;    
+    led_ctrl_12v = ON;
+    led_ctrl_24v = ON; 
+    led_ctrl_main = ON;
+    led_motor_main_fuse = ON;
+    led_motor_12v_fuse = ON;
+    led_motor_main = ON;
+    led_motor_12v = ON;
+    wait(0.2f);
+
+    led_ctrl_12v = OFF;
+    led_ctrl_5v = OFF;
+    led_ctrl_24v = OFF;
+    led_ctrl_main = OFF;
+    led_motor_main_fuse = OFF;
+    led_motor_12v_fuse = OFF;
+    led_motor_main = OFF;
+    led_motor_12v = OFF;
+
+}    
\ No newline at end of file