ryou sato / Mbed 2 deprecated LPC11U35_CTswitch_relay

Dependencies:   mbed LPC11U35_MCP41HV51-503EST

Committer:
ryousato
Date:
Tue Mar 09 05:40:47 2021 +0000
Revision:
9:0b3a7a9eed3e
Parent:
8:aea096edd536
20210309

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryousato 9:0b3a7a9eed3e 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 //////////////////////////////////////////////////
ryousato 0:df1e1f84ded8 7
ryousato 0:df1e1f84ded8 8 //Configure the PC Serial Port for CDC USB
ryousato 0:df1e1f84ded8 9 USBSerial serial;
ryousato 0:df1e1f84ded8 10 Serial device(P0_19,P0_18);
ryousato 0:df1e1f84ded8 11
ryousato 3:d55ebd20d750 12 char moji[32]; //入力文字列
ryousato 3:d55ebd20d750 13 int count = 0; //文字数カウンタ
ryousato 0:df1e1f84ded8 14
ryousato 9:0b3a7a9eed3e 15 //DigitalOut led(LED1);
ryousato 9:0b3a7a9eed3e 16 //DigitalInOut GPIOX(P0_0, PIN_OUTPUT, PullDown, 0);
ryousato 9:0b3a7a9eed3e 17 DigitalOut GPIO[] = {
ryousato 9:0b3a7a9eed3e 18 DigitalOut (P0_22, 0),
ryousato 9:0b3a7a9eed3e 19 DigitalOut (P0_11, 0),
ryousato 9:0b3a7a9eed3e 20 DigitalOut (P0_12, 0),
ryousato 9:0b3a7a9eed3e 21 DigitalOut (P0_13, 0),
ryousato 9:0b3a7a9eed3e 22 DigitalOut (P0_14, 0),
ryousato 9:0b3a7a9eed3e 23 DigitalOut (P0_15, 0),
ryousato 9:0b3a7a9eed3e 24 DigitalOut (P0_16, 0),
ryousato 9:0b3a7a9eed3e 25 DigitalOut (P0_23, 0),
ryousato 9:0b3a7a9eed3e 26 DigitalOut (P1_15, 0),
ryousato 9:0b3a7a9eed3e 27 DigitalOut (P0_21, 0),
ryousato 9:0b3a7a9eed3e 28 DigitalOut (P0_5, 0),
ryousato 9:0b3a7a9eed3e 29 DigitalOut (P0_4, 0),
ryousato 9:0b3a7a9eed3e 30 DigitalOut (P0_3, 0),
ryousato 9:0b3a7a9eed3e 31 DigitalOut (P0_2, 0),
ryousato 9:0b3a7a9eed3e 32 DigitalOut (P0_20, 0),
ryousato 9:0b3a7a9eed3e 33 DigitalOut (P1_19, 0),
ryousato 9:0b3a7a9eed3e 34 DigitalOut (P0_1),
ryousato 9:0b3a7a9eed3e 35 DigitalOut (P0_19, 0),
ryousato 9:0b3a7a9eed3e 36 DigitalOut (P0_18, 0),
ryousato 9:0b3a7a9eed3e 37 DigitalOut (P0_17, 0),
ryousato 9:0b3a7a9eed3e 38 };
ryousato 9:0b3a7a9eed3e 39 BusOut muxaddr(P0_7,P0_8,P0_9,P0_10); //マルチプレクサADDRバス
ryousato 0:df1e1f84ded8 40
ryousato 9:0b3a7a9eed3e 41 void helpwrite()
ryousato 9:0b3a7a9eed3e 42 {
ryousato 3:d55ebd20d750 43 serial.printf("\r\n------------------");
ryousato 9:0b3a7a9eed3e 44 serial.printf("\r\nrelayALLoff");
ryousato 9:0b3a7a9eed3e 45 serial.printf("\r\nrelay{1|...|8}");
ryousato 9:0b3a7a9eed3e 46 serial.printf("\r\nGPIOALL{L|H}");
ryousato 9:0b3a7a9eed3e 47 serial.printf("\r\nGPIO{1|...|20}{L|H}");
ryousato 3:d55ebd20d750 48 serial.printf("\r\n------------------");
ryousato 0:df1e1f84ded8 49 }
ryousato 0:df1e1f84ded8 50
ryousato 9:0b3a7a9eed3e 51 void Vswitch(int tmpInt)
ryousato 9:0b3a7a9eed3e 52 {
ryousato 9:0b3a7a9eed3e 53 //ADDRバス切替
ryousato 9:0b3a7a9eed3e 54 if (tmpInt<7) {
ryousato 9:0b3a7a9eed3e 55 muxaddr.write(tmpInt);
ryousato 9:0b3a7a9eed3e 56 } else if (tmpInt>=7) {
ryousato 9:0b3a7a9eed3e 57 tmpInt = tmpInt + 1;
ryousato 9:0b3a7a9eed3e 58 muxaddr.write(tmpInt);
ryousato 3:d55ebd20d750 59 }
ryousato 9:0b3a7a9eed3e 60 wait(0.01);
ryousato 9:0b3a7a9eed3e 61 serial.printf("\r\n OK");
ryousato 2:5e6613f149d4 62 }
ryousato 2:5e6613f149d4 63
ryousato 9:0b3a7a9eed3e 64 void GPIOswitch(int tmpIO, int tmpInt)
ryousato 9:0b3a7a9eed3e 65 {
ryousato 9:0b3a7a9eed3e 66 if (tmpIO==0) {
ryousato 9:0b3a7a9eed3e 67 for(int i=0; i<=19; i++) {
ryousato 9:0b3a7a9eed3e 68 GPIO[i] = tmpInt;
ryousato 6:91eec3396ee9 69 }
ryousato 6:91eec3396ee9 70 } else {
ryousato 9:0b3a7a9eed3e 71 tmpIO = tmpIO - 1;
ryousato 9:0b3a7a9eed3e 72 GPIO[tmpIO] = tmpInt;
ryousato 6:91eec3396ee9 73 }
ryousato 6:91eec3396ee9 74
ryousato 4:e69f73c66598 75 serial.printf("\r\n OK");
ryousato 4:e69f73c66598 76 }
ryousato 9:0b3a7a9eed3e 77 /*
ryousato 9:0b3a7a9eed3e 78 void GPIOXswitch(int tmpInt)
ryousato 9:0b3a7a9eed3e 79 {
ryousato 9:0b3a7a9eed3e 80 GPIOX = tmpInt;
ryousato 9:0b3a7a9eed3e 81 wait(0.01);
ryousato 4:e69f73c66598 82 serial.printf("\r\n OK");
ryousato 4:e69f73c66598 83 }
ryousato 9:0b3a7a9eed3e 84 */
ryousato 4:e69f73c66598 85
ryousato 3:d55ebd20d750 86 /******************************************************************************/
ryousato 3:d55ebd20d750 87 //シリアル入力受付 [メイン]
ryousato 3:d55ebd20d750 88 /******************************************************************************/
ryousato 9:0b3a7a9eed3e 89 void serial_inout()
ryousato 9:0b3a7a9eed3e 90 {
ryousato 0:df1e1f84ded8 91 if(serial.readable()) { // 受信確認
ryousato 9:0b3a7a9eed3e 92 moji[count] = serial.getc(); //キーボード入力文字を1文字ずつmojiに代入
ryousato 9:0b3a7a9eed3e 93 serial.printf("%c", moji[count]); //シリアル出力表示
ryousato 3:d55ebd20d750 94 // serial.printf("%c(%d)", moji[count],count); //シリアル出力表示
ryousato 9:0b3a7a9eed3e 95
ryousato 9:0b3a7a9eed3e 96 if(count == 31 ) { // ①文字数が既定の個数になった場合
ryousato 9:0b3a7a9eed3e 97 moji[31] = '\0'; // 末尾に終端文字を入れる
ryousato 9:0b3a7a9eed3e 98 count = 0; // 文字カウンタをリセット
ryousato 9:0b3a7a9eed3e 99 serial.printf("\r\n\r\n ERROR!");
ryousato 0:df1e1f84ded8 100 }
ryousato 0:df1e1f84ded8 101
ryousato 9:0b3a7a9eed3e 102 else if(moji[0] == '\n') {
ryousato 9:0b3a7a9eed3e 103 count = 0;
ryousato 9:0b3a7a9eed3e 104 }
ryousato 9:0b3a7a9eed3e 105
ryousato 0:df1e1f84ded8 106 else if((moji[count] == '\r')) { // ②CRを受信した場合
ryousato 3:d55ebd20d750 107 moji[count] = '\0'; //末尾に終端文字を入れる
ryousato 3:d55ebd20d750 108 count = 0; //文字カウンタをリセット
ryousato 9:0b3a7a9eed3e 109 if (strcmp(moji, "cmd") == 0) {
ryousato 9:0b3a7a9eed3e 110 helpwrite(); //コマンド一覧表示
ryousato 9:0b3a7a9eed3e 111 } else if(strcmp(moji, "help") == 0) {
ryousato 9:0b3a7a9eed3e 112 helpwrite(); //コマンド一覧表示
ryousato 9:0b3a7a9eed3e 113 } else if(strcmp(moji, "?") == 0) {
ryousato 9:0b3a7a9eed3e 114 helpwrite(); //コマンド一覧表示
ryousato 9:0b3a7a9eed3e 115 } else if(strcmp(moji, "relayALLoff") == 0) {
ryousato 9:0b3a7a9eed3e 116 Vswitch(0);
ryousato 9:0b3a7a9eed3e 117 } else if(strcmp(moji, "relay1") == 0) {
ryousato 9:0b3a7a9eed3e 118 Vswitch(1);
ryousato 9:0b3a7a9eed3e 119 } else if(strcmp(moji, "relay2") == 0) {
ryousato 9:0b3a7a9eed3e 120 Vswitch(2);
ryousato 9:0b3a7a9eed3e 121 } else if(strcmp(moji, "relay3") == 0) {
ryousato 9:0b3a7a9eed3e 122 Vswitch(3);
ryousato 9:0b3a7a9eed3e 123 } else if(strcmp(moji, "relay4") == 0) {
ryousato 9:0b3a7a9eed3e 124 Vswitch(4);
ryousato 9:0b3a7a9eed3e 125 } else if(strcmp(moji, "relay5") == 0) {
ryousato 9:0b3a7a9eed3e 126 Vswitch(5);
ryousato 9:0b3a7a9eed3e 127 } else if(strcmp(moji, "relay6") == 0) {
ryousato 9:0b3a7a9eed3e 128 Vswitch(6);
ryousato 9:0b3a7a9eed3e 129 } else if(strcmp(moji, "relay7") == 0) {
ryousato 9:0b3a7a9eed3e 130 Vswitch(7);
ryousato 9:0b3a7a9eed3e 131 } else if(strcmp(moji, "relay8") == 0) {
ryousato 9:0b3a7a9eed3e 132 Vswitch(8);
ryousato 9:0b3a7a9eed3e 133 } else if(strcmp(moji, "relay9") == 0) {
ryousato 9:0b3a7a9eed3e 134 Vswitch(9);
ryousato 9:0b3a7a9eed3e 135 } else if(strcmp(moji, "relay10") == 0) {
ryousato 9:0b3a7a9eed3e 136 Vswitch(10);
ryousato 9:0b3a7a9eed3e 137 } else if(strcmp(moji, "GPIO1L") == 0) {
ryousato 9:0b3a7a9eed3e 138 GPIOswitch(1,0);
ryousato 9:0b3a7a9eed3e 139 } else if(strcmp(moji, "GPIO1H") == 0) {
ryousato 9:0b3a7a9eed3e 140 GPIOswitch(1,1);
ryousato 9:0b3a7a9eed3e 141 } else if(strcmp(moji, "GPIO2L") == 0) {
ryousato 9:0b3a7a9eed3e 142 GPIOswitch(2,0);
ryousato 9:0b3a7a9eed3e 143 } else if(strcmp(moji, "GPIO2H") == 0) {
ryousato 9:0b3a7a9eed3e 144 GPIOswitch(2,1);
ryousato 9:0b3a7a9eed3e 145 } else if(strcmp(moji, "GPIO3L") == 0) {
ryousato 9:0b3a7a9eed3e 146 GPIOswitch(3,0);
ryousato 9:0b3a7a9eed3e 147 } else if(strcmp(moji, "GPIO3H") == 0) {
ryousato 9:0b3a7a9eed3e 148 GPIOswitch(3,1);
ryousato 9:0b3a7a9eed3e 149 } else if(strcmp(moji, "GPIO4L") == 0) {
ryousato 9:0b3a7a9eed3e 150 GPIOswitch(4,0);
ryousato 9:0b3a7a9eed3e 151 } else if(strcmp(moji, "GPIO4H") == 0) {
ryousato 9:0b3a7a9eed3e 152 GPIOswitch(4,1);
ryousato 9:0b3a7a9eed3e 153 } else if(strcmp(moji, "GPIO5L") == 0) {
ryousato 9:0b3a7a9eed3e 154 GPIOswitch(5,0);
ryousato 9:0b3a7a9eed3e 155 } else if(strcmp(moji, "GPIO5H") == 0) {
ryousato 9:0b3a7a9eed3e 156 GPIOswitch(5,1);
ryousato 9:0b3a7a9eed3e 157 } else if(strcmp(moji, "GPIO6L") == 0) {
ryousato 9:0b3a7a9eed3e 158 GPIOswitch(6,0);
ryousato 9:0b3a7a9eed3e 159 } else if(strcmp(moji, "GPIO6H") == 0) {
ryousato 9:0b3a7a9eed3e 160 GPIOswitch(6,1);
ryousato 9:0b3a7a9eed3e 161 } else if(strcmp(moji, "GPIO7L") == 0) {
ryousato 9:0b3a7a9eed3e 162 GPIOswitch(7,0);
ryousato 9:0b3a7a9eed3e 163 } else if(strcmp(moji, "GPIO7H") == 0) {
ryousato 9:0b3a7a9eed3e 164 GPIOswitch(7,1);
ryousato 9:0b3a7a9eed3e 165 } else if(strcmp(moji, "GPIO8L") == 0) {
ryousato 9:0b3a7a9eed3e 166 GPIOswitch(8,0);
ryousato 9:0b3a7a9eed3e 167 } else if(strcmp(moji, "GPIO8H") == 0) {
ryousato 9:0b3a7a9eed3e 168 GPIOswitch(8,1);
ryousato 9:0b3a7a9eed3e 169 } else if(strcmp(moji, "GPIO9L") == 0) {
ryousato 9:0b3a7a9eed3e 170 GPIOswitch(9,0);
ryousato 9:0b3a7a9eed3e 171 } else if(strcmp(moji, "GPIO9H") == 0) {
ryousato 9:0b3a7a9eed3e 172 GPIOswitch(9,1);
ryousato 9:0b3a7a9eed3e 173 } else if(strcmp(moji, "GPIO10L") == 0) {
ryousato 9:0b3a7a9eed3e 174 GPIOswitch(10,0);
ryousato 9:0b3a7a9eed3e 175 } else if(strcmp(moji, "GPIO10H") == 0) {
ryousato 9:0b3a7a9eed3e 176 GPIOswitch(10,1);
ryousato 9:0b3a7a9eed3e 177 } else if(strcmp(moji, "GPIO11L") == 0) {
ryousato 9:0b3a7a9eed3e 178 GPIOswitch(11,0);
ryousato 9:0b3a7a9eed3e 179 } else if(strcmp(moji, "GPIO11H") == 0) {
ryousato 9:0b3a7a9eed3e 180 GPIOswitch(11,1);
ryousato 9:0b3a7a9eed3e 181 } else if(strcmp(moji, "GPIO12L") == 0) {
ryousato 9:0b3a7a9eed3e 182 GPIOswitch(12,0);
ryousato 9:0b3a7a9eed3e 183 } else if(strcmp(moji, "GPIO12H") == 0) {
ryousato 9:0b3a7a9eed3e 184 GPIOswitch(12,1);
ryousato 9:0b3a7a9eed3e 185 } else if(strcmp(moji, "GPIO13L") == 0) {
ryousato 9:0b3a7a9eed3e 186 GPIOswitch(13,0);
ryousato 9:0b3a7a9eed3e 187 } else if(strcmp(moji, "GPIO13H") == 0) {
ryousato 9:0b3a7a9eed3e 188 GPIOswitch(13,1);
ryousato 9:0b3a7a9eed3e 189 } else if(strcmp(moji, "GPIO14L") == 0) {
ryousato 9:0b3a7a9eed3e 190 GPIOswitch(14,0);
ryousato 9:0b3a7a9eed3e 191 } else if(strcmp(moji, "GPIO14H") == 0) {
ryousato 9:0b3a7a9eed3e 192 GPIOswitch(14,1);
ryousato 9:0b3a7a9eed3e 193 } else if(strcmp(moji, "GPIO15L") == 0) {
ryousato 9:0b3a7a9eed3e 194 GPIOswitch(15,0);
ryousato 9:0b3a7a9eed3e 195 } else if(strcmp(moji, "GPIO15H") == 0) {
ryousato 9:0b3a7a9eed3e 196 GPIOswitch(15,1);
ryousato 9:0b3a7a9eed3e 197 } else if(strcmp(moji, "GPIO16L") == 0) {
ryousato 9:0b3a7a9eed3e 198 GPIOswitch(16,0);
ryousato 9:0b3a7a9eed3e 199 } else if(strcmp(moji, "GPIO16H") == 0) {
ryousato 9:0b3a7a9eed3e 200 GPIOswitch(16,1);
ryousato 9:0b3a7a9eed3e 201 } else if(strcmp(moji, "GPIO17L") == 0) {
ryousato 9:0b3a7a9eed3e 202 GPIOswitch(17,0);
ryousato 9:0b3a7a9eed3e 203 } else if(strcmp(moji, "GPIO17H") == 0) {
ryousato 9:0b3a7a9eed3e 204 GPIOswitch(17,1);
ryousato 9:0b3a7a9eed3e 205 } else if(strcmp(moji, "GPIO18L") == 0) {
ryousato 9:0b3a7a9eed3e 206 GPIOswitch(18,0);
ryousato 9:0b3a7a9eed3e 207 } else if(strcmp(moji, "GPIO18H") == 0) {
ryousato 9:0b3a7a9eed3e 208 GPIOswitch(18,1);
ryousato 9:0b3a7a9eed3e 209 } else if(strcmp(moji, "GPIO19L") == 0) {
ryousato 9:0b3a7a9eed3e 210 GPIOswitch(19,0);
ryousato 9:0b3a7a9eed3e 211 } else if(strcmp(moji, "GPIO19H") == 0) {
ryousato 9:0b3a7a9eed3e 212 GPIOswitch(19,1);
ryousato 9:0b3a7a9eed3e 213 } else if(strcmp(moji, "GPIO20L") == 0) {
ryousato 9:0b3a7a9eed3e 214 GPIOswitch(20,0);
ryousato 9:0b3a7a9eed3e 215 } else if(strcmp(moji, "GPIO20H") == 0) {
ryousato 9:0b3a7a9eed3e 216 GPIOswitch(20,1);
ryousato 9:0b3a7a9eed3e 217 } else if(strcmp(moji, "GPIOALLL") == 0) {
ryousato 9:0b3a7a9eed3e 218 GPIOswitch(0,0);
ryousato 9:0b3a7a9eed3e 219 } else if(strcmp(moji, "GPIOALLH") == 0) {
ryousato 9:0b3a7a9eed3e 220 GPIOswitch(0,1);
ryousato 9:0b3a7a9eed3e 221 // } else if(strcmp(moji, "GPIOXH") == 0) {
ryousato 9:0b3a7a9eed3e 222 // GPIOXswitch(1);
ryousato 9:0b3a7a9eed3e 223 // } else if(strcmp(moji, "GPIOXL") == 0) {
ryousato 9:0b3a7a9eed3e 224 // GPIOXswitch(0);
ryousato 9:0b3a7a9eed3e 225 } else serial.printf("\r\n\r\n NG!\r\n");
ryousato 9:0b3a7a9eed3e 226 } else count++; // 文字カウンタに1加算
ryousato 0:df1e1f84ded8 227 }
ryousato 9:0b3a7a9eed3e 228 }
ryousato 0:df1e1f84ded8 229
ryousato 3:d55ebd20d750 230 /******************************************************************************/
ryousato 3:d55ebd20d750 231 //メインプログラム
ryousato 3:d55ebd20d750 232 /******************************************************************************/
ryousato 9:0b3a7a9eed3e 233 int main()
ryousato 9:0b3a7a9eed3e 234 {
ryousato 9:0b3a7a9eed3e 235 wait(0.5);
ryousato 9:0b3a7a9eed3e 236 serial.printf("\r\nReady!\r\n");
ryousato 9:0b3a7a9eed3e 237
ryousato 9:0b3a7a9eed3e 238 while(1) {
ryousato 0:df1e1f84ded8 239 serial_inout();
ryousato 0:df1e1f84ded8 240 }
ryousato 9:0b3a7a9eed3e 241
ryousato 0:df1e1f84ded8 242
ryousato 3:d55ebd20d750 243 }