For LPC1114FN28

Dependencies:   MCUGearALPC1114 TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 #include "mbed.h"
00003 #include "TextLCD.h"
00004 
00005 #include "MCUGearBaseALPC1114.h"
00006 #include "MCUGearALPC1114.h"
00007 #include "commonALPC1114.h"
00008 
00009 Serial pc(dp16, dp15); // tx, rx Set BaudRate = 115200 in main()
00010 
00011 void setIOUni(MCUGear *mcugear);
00012 void setIOLCD(MCUGear *mcugear);
00013 
00014 MCUGear UniM(dp5, dp27, N_VDD_VDD_VDD);       //2 Connector Universal Module
00015 MCUGear LCDM(dp5, dp27, N_VDD_VSS_VSS);        //LCD Module
00016 
00017 //output pins = P0_3, P0_7, P0_11, P1_0, P1_1, P1_2, P1_4, P1_5
00018 DigitalOut Dout1(dp26);
00019 DigitalOut Dout2(dp28);
00020 DigitalOut Dout3(dp4);
00021 DigitalOut Dout4(dp9);
00022 DigitalOut Dout5(dp10);
00023 DigitalOut Dout6(dp11);
00024 DigitalOut Dout7(dp14);
00025 DigitalOut Dout8(dp15);
00026 
00027 //inputpins = P1_8, P1_9
00028 DigitalIn Din1(dp17);
00029 DigitalIn Din2(dp18);
00030 
00031 int main() {
00032     
00033     int sw1 = 0;
00034     int sw2 = 0;
00035     pc.printf("Hello World!\r\n");
00036         
00037     wait(1);
00038     
00039     initBase(); //initialize Baseboard
00040     
00041     //set schematic select 0-7
00042     UniM.detectModule();    //save location data in MCUGear class.
00043     LCDM.detectModule();    //save location data in MCUGear class.
00044     
00045     //startReg(0);  //AutoMode can not use Bank
00046     setIOUni(&UniM);//make schematic Bank0
00047     setIOLCD(&LCDM);//make schematic Bank0
00048     //endReg(0);    //AutoMode can not use Bank
00049     
00050     //changeBank(0);//select Bank
00051     
00052     
00053     LCDM.connectModuleA();
00054     TextLCD lcd(dp26, dp28, dp4, dp9, dp10, dp11, TextLCD::LCD16x2); // rs, e, d4-d7//set output pins from Dout1 to Dout6.
00055     lcd.cls();
00056     lcd.printf("Hello World!\n");
00057     wait(1);
00058     LCDM.disconnectModule();
00059     
00060     while(1) {
00061         
00062         UniM.connectModuleA();
00063         sw1 = Din1.read();
00064         sw2 = Din2.read();
00065         printf("sw1 = %d  sw2 = %d\r\n",sw1,sw2);
00066         UniM.disconnectModule();
00067         
00068         LCDM.connectModuleA();
00069         lcd.printf(" ");    //set IO as a neutral position
00070         lcd.cls();   //clear LCD
00071         lcd.printf("sw1 = %d\nsw2 = %d",sw1,sw2);   //write LCD data
00072         wait_ms(10);    //delay for view the LCD
00073         LCDM.disconnectModule();
00074         
00075         UniM.connectModuleA();
00076         Dout1 = 0;
00077         Dout2 = 1;
00078         Dout3 = 1;
00079         wait(0.3);
00080         
00081         Dout1 = 1;
00082         Dout2 = 0;
00083         Dout3 = 1;
00084         wait(0.3);
00085         
00086         Dout1 = 1;
00087         Dout2 = 1;
00088         Dout3 = 0;
00089         wait(0.3);
00090         UniM.disconnectModule();
00091 
00092     }
00093 }
00094 
00095 
00096 void setIOUni(MCUGear *mcugear){
00097     mcugear->setWireA(IOin1, IO_REG_IN_DIR, 0);
00098     mcugear->setWireA(IOin2, IO_REG_IN_DIR, 1);
00099     mcugear->setWireA(IOout1, IO_REG_OUT_DIR,2);
00100     mcugear->setWireA(IOout2, IO_REG_OUT_DIR,3);
00101     mcugear->setWireA(IOout3, IO_REG_OUT_DIR,4);
00102 }
00103 
00104 void setIOLCD(MCUGear *mcugear){
00105     mcugear->setWireA(IOout1, IO_REG_OUT_DIR,0);
00106     mcugear->setWireA(IOout2, IO_REG_OUT_DIR,1);
00107     mcugear->setWireA(IOout3, IO_REG_OUT_DIR,2);
00108     mcugear->setWireA(IOout4, IO_REG_OUT_DIR,3);
00109     mcugear->setWireA(IOout5, IO_REG_OUT_DIR,4);
00110     mcugear->setWireA(IOout6, IO_REG_OUT_DIR,5);
00111 }
00112