Home Page : http://www.mcugear.com/en/ MCU Gear manual mode (circuit quick changer!) You can save 8 schematic(bank 0-7) manually and change it quickly.
Fork of MCUGear by
Homepage
This is a MCU Gear manual mode library.¶
(日本語は英語の次に書いてあります。)
MCU Gear is a digital wiring extension board.(A kind of dynamic circuit changer.)
It can change its wiring dynamically, without the need of rewiring your device.
Your MCU can be connected to a theoretical maximum of 120 devices.
detail : http://mcugear.com/en/
You can save 8 schematics (bank 0-7) on Baseboard.
How to use it?¶
1,include library¶
1,include library
#include "mbed.h" #include "MCUGearBaseM.h" #include "MCUGearM.h" #include "commonM.h"
2,Declare Module¶
(! You do not pile up each module if you want to open module gate simultaneously.)
2,Declare Module
MCUGear myModule1(p28, p27, N_***_***_***); MCUGear myModule2(p28, p27, N_***_***_***);
myModule: Optional name for Module.
p28, p27, : I2C pins (KL25Z is "PTE0, PTE1")
N_*_*_* : Address. You can set it on the reverse side of the Module board.
3,Initialize baseboard¶
3,Initialize baseboard
initBase();
4,Make wiring data¶
4,Call wiring register
startReg(bank); myModule1.setWire(IO_MBED_P9, IO_REG_IN_DIR, 5); myModule1.setWire(IO_MBED_P15, IO_REG_OUT_DIR, 2); myModule1.setWire(IO_MBED_P12, IO_REG_OUT_DIR, 0); myModule2.setWire(IO_MBED_P13, IO_REG_OUT_DIR, 1); myModule2.setWire(IO_MBED_P14, IO_REG_IN_DIR, 3); myModule2.setWire(IO_MBED_P16, IO_REG_IN_DIR, 4); endReg(bank);
see the reference on MCUGearBaseboard.h file.
4,Call wiring register
// CPU I/O typedef enum { #if defined TARGET_LPC1768 IO_MBED_P15 = 0x80, IO_MBED_P13, IO_MBED_P16, IO_MBED_P12, IO_MBED_P5, IO_MBED_P11, IO_MBED_P23, IO_MBED_P22, IO_MBED_P26, IO_MBED_P10, IO_MBED_P21, IO_MBED_P9, IO_MBED_P6, IO_MBED_P7, IO_MBED_P8, IO_MBED_P14, IO_MBED_P24, IO_MBED_P25, IO_MBED_P28, IO_MBED_P27 #endif #if defined TARGET_KL25Z IO_MBED_PTA5 = 0x80, IO_MBED_PTC8, IO_MBED_PTC9, IO_MBED_PTD5, IO_MBED_PTA13, IO_MBED_PTD2, IO_MBED_PTB1, IO_MBED_PTB2, IO_MBED_PTA2, IO_MBED_PTD4, IO_MBED_PTB3, IO_MBED_PTA12, IO_MBED_PTD0, IO_MBED_PTD3, IO_MBED_PTD1, IO_MBED_PTA4, IO_MBED_PTB0, IO_MBED_PTA1, IO_MBED_PTE0, //SDA IO_MBED_PTE1 //SCL #endif } en_cpu_io;
-
startReg function
void startReg(uint8_t bank);
uint8_t bank : The "bank" is schematic layer. You can select from 0 to 7 bank.
setWire function
uint8_t setWire(uint8_t mcuIO, uint8_t direction, uint8_t moduleIO);
setWire() is wiring data to connect pin of MCU to pin of Module.
uint8_t mcuIO : You can choose 18 IOs.
uint8_t direction: choose signal direction IO_REG_OUT_DIR : output from MCU IO_REG_IN_DIR : input to MCU
uint8_t moduleIO: You can select module pin.
endReg function
void endReg(uint8_t bank);
uint8_t bank : The "bank" is schematic layer. You can select from 0 to 7 bank. Must be same as "starReg()".
You can make other schematic(bank) as with the code 4,.
5,Change the schematic (bank)¶
5,Change the schematic (bank)
void changeBank(uint8_t bank);
You can select the schematic form 0 to 7.
6,Open or close the module gate¶
6,Open or close the module gate
myModule1.connectModule(); myModule2.connectModule(); ... (same as normal mbed code) ... myModule1.disconnectModule(); myModule2.disconnectModule();
Now, you can connect the many modules simultaneously with bank system!¶
Sample code 1¶
Universal Module and LCD module test program. This is show you that is possible to connect both modules simultaneously.
I set test function board like the below picture.(Universal module)
Sample code 1
#include "mbed.h" #include "TextLCD.h" #include "MCUGearBaseM.h" #include "MCUGearM.h" #include "commonM.h" Serial pc(USBTX, USBRX); void setIOUni(MCUGear *mcugear); void setIOLCD(MCUGear *mcugear); DigitalOut myled(LED1); MCUGear UniM(p28, p27, N_VDD_VDD_VDD); //2 Connector Universal Module MCUGear LCDM(p28, p27, N_VDD_VSS_VSS); //LCD Module DigitalOut Dout1(p11); DigitalOut Dout2(p12); DigitalOut Dout3(p13); DigitalOut Dout4(p14); DigitalOut Dout5(p15); DigitalIn Din1(p9); DigitalIn Din2(p10); int main() { int sw1 = 0; int sw2 = 0; int nowBank = 0; initBase(); //initialize Baseboard //set schematic select 0-7 UniM.detectModule(); //save location data in MCUGear class. LCDM.detectModule(); //save location data in MCUGear class. startReg(0); setIOUni(&UniM);//make schematic Bank0 setIOLCD(&LCDM);//make schematic Bank0 endReg(0); changeBank(0);//select Bank LCDM.connectModule(); TextLCD lcd(p21, p22, p23, p24, p25, p26, TextLCD::LCD16x2); // rs, e, d4-d7 lcd.cls(); lcd.printf("Hello World!\n"); wait(1); LCDM.disconnectModule(); UniM.connectModule();//open the module gate LCDM.connectModule();//open the module gate while(1) { //UniM.connectModule(); //LCDM.connectModule(); sw1 = Din1.read(); sw2 = Din2.read(); printf("sw1 = %d sw2 = %d\r\n",sw1,sw2); lcd.printf(" "); //set IO as a neutral position lcd.cls(); //clear LCD lcd.printf("sw1 = %d\nsw2 = %d",sw1,sw2); //write LCD data wait_ms(10); //delay for view the LCD Dout1 = 0; Dout2 = 1; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 0; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 1; Dout3 = 0; wait(0.3); //UniM.disconnectModule();//close the module gate //LCDM.disconnectModule();//close the module gate } } void setIOUni(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P11, IO_REG_OUT_DIR,2); mcugear->setWire(IO_MBED_P12, IO_REG_OUT_DIR,3); mcugear->setWire(IO_MBED_P13, IO_REG_OUT_DIR,4); } void setIOLCD(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR,0); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR,1); mcugear->setWire(IO_MBED_P23, IO_REG_OUT_DIR,2); mcugear->setWire(IO_MBED_P24, IO_REG_OUT_DIR,3); mcugear->setWire(IO_MBED_P25, IO_REG_OUT_DIR,4); mcugear->setWire(IO_MBED_P26, IO_REG_OUT_DIR,5); }
Sample code 2¶
Universal Module test program. This is show you that is possible to change schematic(bank).
Sample code 2
#include "mbed.h" #include "TextLCD.h" #include "MCUGearBaseM.h" #include "MCUGearM.h" #include "commonM.h" Serial pc(USBTX, USBRX); void setIOBank0(MCUGear *mcugear); void setIOBank1(MCUGear *mcugear); void setIOBank2(MCUGear *mcugear); void setIOBank3(MCUGear *mcugear); void setIOBank4(MCUGear *mcugear); void setIOBank5(MCUGear *mcugear); void setIOBank6(MCUGear *mcugear); void setIOBank7(MCUGear *mcugear); DigitalOut myled(LED1); MCUGear UniM(p28, p27, N_VDD_VDD_VDD); //2 Connector Universal Module DigitalOut Dout1(p16); DigitalOut Dout2(p21); DigitalOut Dout3(p22); DigitalOut Dout4(p23); DigitalOut Dout5(p24); DigitalIn Din1(p9); DigitalIn Din2(p10); int main() { int sw1 = 0; int sw2 = 0; int nowBank = 0; initBase(); //initialize Baseboard //set schematic select 0-7 int location = UniM.detectModule(); //save location data in MCUGear class and you can check return data.Baseboard has 0-47 pin. printf("location = %d\n", &location); startReg(0); setIOBank0(&UniM);//make schematic Bank0 endReg(0); startReg(1); setIOBank1(&UniM);//make schematic Bank1 endReg(1); startReg(2); setIOBank2(&UniM);//make schematic Bank2 endReg(2); startReg(3); setIOBank3(&UniM);//make schematic Bank3 endReg(3); startReg(4); setIOBank4(&UniM);//make schematic Bank4 endReg(4); startReg(5); setIOBank5(&UniM);//make schematic Bank5 endReg(5); startReg(6); setIOBank6(&UniM);//make schematic Bank6 endReg(6); startReg(7); setIOBank7(&UniM);//make schematic Bank7 endReg(7); changeBank(0);//select Bank while(1) { UniM.connectModule(); sw1 = Din1.read(); sw2 = Din2.read(); printf("sw1 = %d sw2 = %d\r\n",sw1,sw2); Dout1 = 0; Dout2 = 1; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 0; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 1; Dout3 = 0; wait(0.3); UniM.disconnectModule(); if(sw1==0){//chage Bank ++nowBank; if(nowBank >= 8){ nowBank = 0; } changeBank(nowBank); printf("nowBank = %d\r\n",nowBank); } } } void setIOBank0(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); } void setIOBank1(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); } void setIOBank2(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank3(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); } void setIOBank4(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank5(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); } void setIOBank6(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank7(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); }
日本語説明¶
MCU Gearのマニュアルモードライブラリです。¶
detail : http://mcugear.com/en/ 8つの回路図(Bank 0~7 )をベースボードに保存できます。
使い方¶
1,ライブラリをインクルード¶
1,include library
#include "mbed.h" #include "MCUGearBaseM.h" #include "MCUGearM.h" #include "commonM.h"
2,モジュールを定義します。¶
(! 同じ回路図(Bank)で使うモジュールは積層しないでください。)
2,Declare Module
MCUGear myModule1(p28, p27, N_***_***_***); MCUGear myModule2(p28, p27, N_***_***_***);
myModule: モジュールに好きな名前を付けてください。
p28, p27, : I2C pins (KL25Z is "PTE0, PTE1")
N_*_*_* : Address. モジュールの裏面に設定したアドレスです。
3,ベースボードの初期化¶
3,Initialize baseboard
initBase();
4,配線データの作成¶
4,Call wiring register
startReg(bank); myModule1.setWire(IO_MBED_P9, IO_REG_IN_DIR, 5); myModule1.setWire(IO_MBED_P15, IO_REG_OUT_DIR, 2); myModule1.setWire(IO_MBED_P12, IO_REG_OUT_DIR, 0); myModule2.setWire(IO_MBED_P13, IO_REG_OUT_DIR, 1); myModule2.setWire(IO_MBED_P14, IO_REG_IN_DIR, 3); myModule2.setWire(IO_MBED_P16, IO_REG_IN_DIR, 4); endReg(bank);
IOの定義番号などは MCUGearBaseboard.h ファイルを参考にしてください。
4,Call wiring register
// CPU I/O typedef enum { #if defined TARGET_LPC1768 IO_MBED_P15 = 0x80, IO_MBED_P13, IO_MBED_P16, IO_MBED_P12, IO_MBED_P5, IO_MBED_P11, IO_MBED_P23, IO_MBED_P22, IO_MBED_P26, IO_MBED_P10, IO_MBED_P21, IO_MBED_P9, IO_MBED_P6, IO_MBED_P7, IO_MBED_P8, IO_MBED_P14, IO_MBED_P24, IO_MBED_P25, IO_MBED_P28, IO_MBED_P27 #endif #if defined TARGET_KL25Z IO_MBED_PTA5 = 0x80, IO_MBED_PTC8, IO_MBED_PTC9, IO_MBED_PTD5, IO_MBED_PTA13, IO_MBED_PTD2, IO_MBED_PTB1, IO_MBED_PTB2, IO_MBED_PTA2, IO_MBED_PTD4, IO_MBED_PTB3, IO_MBED_PTA12, IO_MBED_PTD0, IO_MBED_PTD3, IO_MBED_PTD1, IO_MBED_PTA4, IO_MBED_PTB0, IO_MBED_PTA1, IO_MBED_PTE0, //SDA IO_MBED_PTE1 //SCL #endif } en_cpu_io;
-
startReg function
void startReg(uint8_t bank);
uint8_t bank : bankは回路図の事で、0~7まで設定できます。動作中にも何度も書き換えも可能です。
setWire function
uint8_t setWire(uint8_t mcuIO, uint8_t direction, uint8_t moduleIO);
setWire()関数はmbedの端子とモジュールの端子の割り振り方を決める関数です。
uint8_t mcuIO : mbedの18端子がアダプターボード(MCUボード)を介してベースボードに接続されています。(残りの端子はアダプターボード(MCUボード)から端子が出ています。)
uint8_t direction: mbedから見て入力か出力かを設定します。 IO_REG_OUT_DIR : output from MCU IO_REG_IN_DIR : input to MCU
uint8_t moduleIO: モジュールの出口の端子をどれにするかを決めます。
endReg function
void endReg(uint8_t bank);
uint8_t bank : bankは回路図の事で、0~7まで設定できます。動作中にも何度も書き換えも可能です。必ず "starReg()"のBankと同じ値にしてください。
上記と同様に、他の回路図(Bank)も作ることができます。
5,回路図(Bank)の切替¶
5,Change the schematic (bank)
void changeBank(uint8_t bank);
回路図は上記の関数で、Bankの値を0~7を入れれば、すぐに切り替えることができます。 (実行前にモジュールのゲートは閉じておくと安全です。)
6,モジュールのゲート開閉¶
6,Open or close the module gate
myModule1.connectModule(); myModule2.connectModule(); ... (same as normal mbed code) ... myModule1.disconnectModule(); myModule2.disconnectModule();
モジュールのゲートを開けるにはconnectModule()関数、閉じるにはdisconnectModule()関数です。
回路図(Bank)を保存して、複数のモジュールゲートを開いたまま動作させることができます!¶
Sample code 1¶
ユニバーサルモジュールとLCDモジュールを同時に接続したまま使うテストプログラムです。
ユニバーサルモジュールは以下の図のように接続します。
Sample code 1
#include "mbed.h" #include "TextLCD.h" #include "MCUGearBase.h" #include "MCUGear.h" #include "common.h" Serial pc(USBTX, USBRX); void setIOUni(MCUGear *mcugear); void setIOLCD(MCUGear *mcugear); DigitalOut myled(LED1); MCUGear UniM(p28, p27, N_VDD_VDD_VDD); //2 Connector Universal Module MCUGear LCDM(p28, p27, N_VDD_VSS_VSS); //LCD Module DigitalOut Dout1(p11); DigitalOut Dout2(p12); DigitalOut Dout3(p13); DigitalOut Dout4(p14); DigitalOut Dout5(p15); DigitalIn Din1(p9); DigitalIn Din2(p10); int main() { int sw1 = 0; int sw2 = 0; int nowBank = 0; initBase(); //initialize Baseboard //set schematic select 0-7 UniM.detectModule(); //save location data in MCUGear class. LCDM.detectModule(); //save location data in MCUGear class. startReg(0); setIOUni(&UniM);//make schematic Bank0 setIOLCD(&LCDM);//make schematic Bank0 endReg(0); changeBank(0);//select Bank LCDM.connectModule(); TextLCD lcd(p21, p22, p23, p24, p25, p26, TextLCD::LCD16x2); // rs, e, d4-d7 lcd.cls(); lcd.printf("Hello World!\n"); wait(1); LCDM.disconnectModule(); UniM.connectModule();//open the module gate LCDM.connectModule();//open the module gate while(1) { //UniM.connectModule(); //LCDM.connectModule(); sw1 = Din1.read(); sw2 = Din2.read(); printf("sw1 = %d sw2 = %d\r\n",sw1,sw2); lcd.printf(" "); //set IO as a neutral position lcd.cls(); //clear LCD lcd.printf("sw1 = %d\nsw2 = %d",sw1,sw2); //write LCD data wait_ms(10); //delay for view the LCD Dout1 = 0; Dout2 = 1; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 0; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 1; Dout3 = 0; wait(0.3); //UniM.disconnectModule();//close the module gate //LCDM.disconnectModule();//close the module gate } } void setIOUni(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P11, IO_REG_OUT_DIR,2); mcugear->setWire(IO_MBED_P12, IO_REG_OUT_DIR,3); mcugear->setWire(IO_MBED_P13, IO_REG_OUT_DIR,4); } void setIOLCD(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR,0); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR,1); mcugear->setWire(IO_MBED_P23, IO_REG_OUT_DIR,2); mcugear->setWire(IO_MBED_P24, IO_REG_OUT_DIR,3); mcugear->setWire(IO_MBED_P25, IO_REG_OUT_DIR,4); mcugear->setWire(IO_MBED_P26, IO_REG_OUT_DIR,5); }
Sample code 2¶
ユニバーサルモジュールに、沢山の回路図(Bank)を設定して、スイッチ1(sw1)に当たる端子が押されたときにバンクを切り替えて動きます。
Sample code 2
#include "mbed.h" #include "TextLCD.h" #include "MCUGearBaseM.h" #include "MCUGearM.h" #include "commonM.h" Serial pc(USBTX, USBRX); void setIOBank0(MCUGear *mcugear); void setIOBank1(MCUGear *mcugear); void setIOBank2(MCUGear *mcugear); void setIOBank3(MCUGear *mcugear); void setIOBank4(MCUGear *mcugear); void setIOBank5(MCUGear *mcugear); void setIOBank6(MCUGear *mcugear); void setIOBank7(MCUGear *mcugear); DigitalOut myled(LED1); MCUGear UniM(p28, p27, N_VDD_VDD_VDD); //2 Connector Universal Module DigitalOut Dout1(p16); DigitalOut Dout2(p21); DigitalOut Dout3(p22); DigitalOut Dout4(p23); DigitalOut Dout5(p24); DigitalIn Din1(p9); DigitalIn Din2(p10); int main() { int sw1 = 0; int sw2 = 0; int nowBank = 0; initBase(); //initialize Baseboard //set schematic select 0-7 int location = UniM.detectModule(); //save location data in MCUGear class and you can check return data.Baseboard has 0-47 pin. printf("location = %d\n", &location); startReg(0); setIOBank0(&UniM);//make schematic Bank0 endReg(0); startReg(1); setIOBank1(&UniM);//make schematic Bank1 endReg(1); startReg(2); setIOBank2(&UniM);//make schematic Bank2 endReg(2); startReg(3); setIOBank3(&UniM);//make schematic Bank3 endReg(3); startReg(4); setIOBank4(&UniM);//make schematic Bank4 endReg(4); startReg(5); setIOBank5(&UniM);//make schematic Bank5 endReg(5); startReg(6); setIOBank6(&UniM);//make schematic Bank6 endReg(6); startReg(7); setIOBank7(&UniM);//make schematic Bank7 endReg(7); changeBank(0);//select Bank while(1) { UniM.connectModule(); sw1 = Din1.read(); sw2 = Din2.read(); printf("sw1 = %d sw2 = %d\r\n",sw1,sw2); Dout1 = 0; Dout2 = 1; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 0; Dout3 = 1; wait(0.3); Dout1 = 1; Dout2 = 1; Dout3 = 0; wait(0.3); UniM.disconnectModule(); if(sw1==0){//chage Bank ++nowBank; if(nowBank >= 8){ nowBank = 0; } changeBank(nowBank); printf("nowBank = %d\r\n",nowBank); } } } void setIOBank0(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); } void setIOBank1(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); } void setIOBank2(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank3(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); } void setIOBank4(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank5(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); } void setIOBank6(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 4); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 2); } void setIOBank7(MCUGear *mcugear){ mcugear->setWire(IO_MBED_P10, IO_REG_IN_DIR, 0); mcugear->setWire(IO_MBED_P9, IO_REG_IN_DIR, 1); mcugear->setWire(IO_MBED_P16, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_MBED_P21, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_MBED_P22, IO_REG_OUT_DIR, 4); }