ryou sato / Mbed 2 deprecated LPC11U35_CTswitch_relay

Dependencies:   mbed LPC11U35_MCP41HV51-503EST

Committer:
ryousato
Date:
Mon Aug 24 08:49:14 2020 +0000
Revision:
2:5e6613f149d4
Parent:
1:88f0bc1e1aff
Child:
3:d55ebd20d750
printf (count) ver

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryousato 0:df1e1f84ded8 1 //////////////////////////////////////////////////
ryousato 0:df1e1f84ded8 2 // Include Files
ryousato 0:df1e1f84ded8 3 #include "mbed.h"
ryousato 0:df1e1f84ded8 4 #include "LPC11Uxx.h"
ryousato 0:df1e1f84ded8 5 #include "USBSerial.h"
ryousato 0:df1e1f84ded8 6 #include "stdio.h"
ryousato 0:df1e1f84ded8 7 #include "math.h"
ryousato 0:df1e1f84ded8 8 //////////////////////////////////////////////////
ryousato 0:df1e1f84ded8 9
ryousato 0:df1e1f84ded8 10 //Configure the PC Serial Port for CDC USB
ryousato 0:df1e1f84ded8 11 USBSerial serial;
ryousato 0:df1e1f84ded8 12 Serial device(P0_19,P0_18);
ryousato 0:df1e1f84ded8 13
ryousato 0:df1e1f84ded8 14 //Pin Defines
ryousato 0:df1e1f84ded8 15 DigitalOut myled(LED1);
ryousato 0:df1e1f84ded8 16
ryousato 1:88f0bc1e1aff 17 char moji[32]; //入力文字列
ryousato 1:88f0bc1e1aff 18 int count = 0; //文字数カウンタ
ryousato 1:88f0bc1e1aff 19
ryousato 0:df1e1f84ded8 20 DigitalOut coilEN1(P0_1);
ryousato 0:df1e1f84ded8 21 DigitalOut coilEN2(P0_2);
ryousato 0:df1e1f84ded8 22 DigitalOut coilEN3(P0_3);
ryousato 0:df1e1f84ded8 23 DigitalOut coilEN4(P0_4);
ryousato 0:df1e1f84ded8 24 DigitalOut coilEN5(P0_5);
ryousato 0:df1e1f84ded8 25 DigitalOut coilEN6(P0_20);
ryousato 0:df1e1f84ded8 26 DigitalOut coilEN7(P1_19);
ryousato 0:df1e1f84ded8 27
ryousato 0:df1e1f84ded8 28 DigitalOut ENn(P0_16);
ryousato 0:df1e1f84ded8 29 DigitalOut addr0(P0_17);
ryousato 0:df1e1f84ded8 30 DigitalOut addr1(P0_18);
ryousato 0:df1e1f84ded8 31 DigitalOut addr2(P0_19);
ryousato 0:df1e1f84ded8 32
ryousato 0:df1e1f84ded8 33 DigitalOut SCT_AMP(P0_10);
ryousato 0:df1e1f84ded8 34 DigitalOut WLATn(P0_23);
ryousato 0:df1e1f84ded8 35 DigitalOut SHDNn(P1_15);
ryousato 0:df1e1f84ded8 36
ryousato 0:df1e1f84ded8 37 AnalogIn AD_TRANS_IN(P0_11);
ryousato 0:df1e1f84ded8 38 AnalogIn AD_CT_IN(P0_12);
ryousato 0:df1e1f84ded8 39
ryousato 1:88f0bc1e1aff 40 SPI spi(P0_9, P0_8, P0_6);
ryousato 2:5e6613f149d4 41
ryousato 1:88f0bc1e1aff 42 void setup() {
ryousato 2:5e6613f149d4 43 spi.format(16,0);
ryousato 2:5e6613f149d4 44 wait(1);
ryousato 2:5e6613f149d4 45 spi.frequency(1000000);
ryousato 1:88f0bc1e1aff 46 device.baud(115200);
ryousato 0:df1e1f84ded8 47
ryousato 0:df1e1f84ded8 48 coilEN1 = 0;
ryousato 0:df1e1f84ded8 49 coilEN2 = 0;
ryousato 0:df1e1f84ded8 50 coilEN3 = 0;
ryousato 0:df1e1f84ded8 51 coilEN4 = 0;
ryousato 0:df1e1f84ded8 52 coilEN5 = 0;
ryousato 0:df1e1f84ded8 53 coilEN6 = 0;
ryousato 0:df1e1f84ded8 54 coilEN7 = 0;
ryousato 0:df1e1f84ded8 55
ryousato 0:df1e1f84ded8 56 ENn = 1;
ryousato 0:df1e1f84ded8 57 addr0 = 0;
ryousato 0:df1e1f84ded8 58 addr1 = 0;
ryousato 0:df1e1f84ded8 59 addr2 = 0;
ryousato 0:df1e1f84ded8 60
ryousato 0:df1e1f84ded8 61 SCT_AMP = 0;
ryousato 0:df1e1f84ded8 62 WLATn = 1;
ryousato 0:df1e1f84ded8 63 SHDNn = 0;
ryousato 2:5e6613f149d4 64 }
ryousato 0:df1e1f84ded8 65
ryousato 2:5e6613f149d4 66 void serialstart(){
ryousato 0:df1e1f84ded8 67 wait(0.5);
ryousato 0:df1e1f84ded8 68 serial.printf("Hello World!\r\n");
ryousato 2:5e6613f149d4 69 wait(0.5);
ryousato 0:df1e1f84ded8 70 }
ryousato 0:df1e1f84ded8 71
ryousato 0:df1e1f84ded8 72 void helpwrite(){
ryousato 0:df1e1f84ded8 73 serial.printf("\r\ncmd");
ryousato 0:df1e1f84ded8 74 serial.printf("\r\nhelp");
ryousato 0:df1e1f84ded8 75 serial.printf("\r\nOK");
ryousato 0:df1e1f84ded8 76 }
ryousato 0:df1e1f84ded8 77
ryousato 2:5e6613f149d4 78 void TCON(){
ryousato 2:5e6613f149d4 79 int whoami = spi.write(0x40FF);
ryousato 2:5e6613f149d4 80 serial.printf("\r\nWHOAMI register = 0x%X\r\n", whoami);
ryousato 2:5e6613f149d4 81 }
ryousato 2:5e6613f149d4 82
ryousato 2:5e6613f149d4 83 void TCONread(){
ryousato 2:5e6613f149d4 84 int whoami = spi.write(0x4C00);
ryousato 2:5e6613f149d4 85 serial.printf("\r\nWHOAMI register = 0x%X\r\n", whoami);
ryousato 2:5e6613f149d4 86 }
ryousato 2:5e6613f149d4 87
ryousato 2:5e6613f149d4 88 void read(){
ryousato 2:5e6613f149d4 89 int whoami = spi.write(0x0C00);
ryousato 2:5e6613f149d4 90 serial.printf("\r\nWHOAMI register = 0x%X\r\n", whoami);
ryousato 2:5e6613f149d4 91 }
ryousato 2:5e6613f149d4 92
ryousato 2:5e6613f149d4 93 void write(){
ryousato 2:5e6613f149d4 94 int whoami = spi.write(0x00FF);
ryousato 2:5e6613f149d4 95 serial.printf("\r\nWHOAMI register = 0x%X\r\n", whoami);
ryousato 2:5e6613f149d4 96 }
ryousato 2:5e6613f149d4 97
ryousato 2:5e6613f149d4 98 void WLAT(){
ryousato 2:5e6613f149d4 99 WLATn = 0;
ryousato 2:5e6613f149d4 100 wait(0.1);
ryousato 2:5e6613f149d4 101 WLATn = 1;
ryousato 2:5e6613f149d4 102 }
ryousato 2:5e6613f149d4 103
ryousato 2:5e6613f149d4 104 void CSn(){
ryousato 2:5e6613f149d4 105 ENn = 0;
ryousato 2:5e6613f149d4 106 }
ryousato 2:5e6613f149d4 107
ryousato 2:5e6613f149d4 108 void CSp(){
ryousato 2:5e6613f149d4 109 ENn = 1;
ryousato 2:5e6613f149d4 110 }
ryousato 2:5e6613f149d4 111
ryousato 0:df1e1f84ded8 112 void serial_inout(){
ryousato 0:df1e1f84ded8 113 if(serial.readable()) { // 受信確認
ryousato 0:df1e1f84ded8 114 moji[count] = serial.getc(); //キーボード入力文字を1文字ずつmojiに代入
ryousato 0:df1e1f84ded8 115 serial.printf("%c(%d)", moji[count],count); //シリアル出力表示
ryousato 0:df1e1f84ded8 116
ryousato 0:df1e1f84ded8 117 if(count == 31 ){ // ①文字数が既定の個数になった場合
ryousato 0:df1e1f84ded8 118 moji[31] = '\0'; // 末尾に終端文字を入れる
ryousato 0:df1e1f84ded8 119 count = 0; // 文字カウンタをリセット
ryousato 0:df1e1f84ded8 120 serial.printf("\r\nERR!\r\n");
ryousato 0:df1e1f84ded8 121 }
ryousato 0:df1e1f84ded8 122
ryousato 1:88f0bc1e1aff 123 else if(moji[0] == '\n'){count = 0;}
ryousato 0:df1e1f84ded8 124
ryousato 0:df1e1f84ded8 125 else if((moji[count] == '\r')) { // ②CRを受信した場合
ryousato 0:df1e1f84ded8 126 moji[count] = '\0'; // 末尾に終端文字を入れる
ryousato 0:df1e1f84ded8 127 count = 0; // 文字カウンタをリセット
ryousato 0:df1e1f84ded8 128 if(strcmp(moji, "cmd") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 129 else if(strcmp(moji, "help") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 130 else if(strcmp(moji, "?") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 131 else if(strcmp(moji, "initial") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 132 else if(strcmp(moji, "VON") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 133 else if(strcmp(moji, "VOFF") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 134 else if(strcmp(moji, "50Hz") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 135 else if(strcmp(moji, "60Hz") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 136 else if(strcmp(moji, "trans_adj") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 137 else if(strcmp(moji, "ct1_adj") == 0){helpwrite();}
ryousato 0:df1e1f84ded8 138 else if(strcmp(moji, "ct2_adj") == 0){helpwrite();}
ryousato 2:5e6613f149d4 139 else if(strcmp(moji, "TCON") == 0){TCON();}
ryousato 2:5e6613f149d4 140 else if(strcmp(moji, "TCONread") == 0){TCONread();}
ryousato 2:5e6613f149d4 141 else if(strcmp(moji, "read") == 0){read();}
ryousato 2:5e6613f149d4 142 else if(strcmp(moji, "write") == 0){write();}
ryousato 2:5e6613f149d4 143 else if(strcmp(moji, "WLAT") == 0){WLAT();}
ryousato 2:5e6613f149d4 144 else serial.printf("\r\nNG");
ryousato 0:df1e1f84ded8 145 }
ryousato 0:df1e1f84ded8 146
ryousato 0:df1e1f84ded8 147 else count++; // 文字カウンタに1加算
ryousato 0:df1e1f84ded8 148 }
ryousato 0:df1e1f84ded8 149 }
ryousato 0:df1e1f84ded8 150
ryousato 0:df1e1f84ded8 151 //////////////////////////////////////////////////
ryousato 0:df1e1f84ded8 152 // main Program
ryousato 0:df1e1f84ded8 153 int main() {
ryousato 0:df1e1f84ded8 154 setup();
ryousato 2:5e6613f149d4 155 serialstart();
ryousato 2:5e6613f149d4 156
ryousato 0:df1e1f84ded8 157 myled = 1;
ryousato 0:df1e1f84ded8 158
ryousato 0:df1e1f84ded8 159 while(1){
ryousato 0:df1e1f84ded8 160 serial_inout();
ryousato 0:df1e1f84ded8 161 }
ryousato 0:df1e1f84ded8 162 }
ryousato 0:df1e1f84ded8 163 //////////////////////////////////////////////////
ryousato 0:df1e1f84ded8 164
ryousato 0:df1e1f84ded8 165