Library designed as an interface to the mbed Pin Connect Block
Diff: main.cpp
- Revision:
- 2:ab6e423ac150
- Parent:
- 1:e9f239e90ef4
--- a/main.cpp Tue Nov 29 05:12:02 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,293 +0,0 @@ -#include "mbed.h" -#include "PinConnectBlock.h" - -Serial myComputer(USBTX, USBRX); -void interruptHandler1(void) -{ myComputer.printf("Testing Pin 1 |"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); - wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); - wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("|"); } -void interruptHandler2(void) -{ myComputer.printf("Testing Pin 2 |"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); - wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); - wait(1); myComputer.printf("-"); wait(1); myComputer.printf("-"); wait(1); myComputer.printf("|"); } -void checkFunctRegisters() -{ - for (int i = 0; i < 10; i++) - { - myComputer.printf("\r\nPinselReg %d:\r\n\t", i); - for (int j = 0; j < 4; j++) - { - myComputer.printf("%X ", *((char*)((unsigned long*)&LPC_PINCON->PINSEL0 + i) + j)); - } - } -} -void checkResistRegisters() -{ - for (int i = 0; i < 10; i++) - { - myComputer.printf("\r\nPinmodReg %d:\r\n\t", i); - for (int j = 0; j < 4; j++) - { - myComputer.printf("%X ", *((char*)((unsigned long*)&LPC_PINCON->PINMODE0 + i) + j)); - } - } -} -void checkODMRegisters() -{ - for (int i = 0; i < 5; i++) - { - myComputer.printf("\r\nPinmodODReg %d:\r\n\t", i); - for (int j = 0; j < 4; j++) - { - myComputer.printf("%X ", *((char*)((unsigned long*)&LPC_PINCON->PINMODE_OD0 + i) + j)); - } - } -} -void checkTMRegister() -{ - myComputer.printf("\r\nPinselTMReg:\r\n\t"); - for (int j = 0; j < 4; j++) - { - myComputer.printf("%X ", *((char*)&LPC_PINCON->PINSEL10 + j)); - } -} -void checkI2CRegister() -{ - myComputer.printf("\r\nI2CPADReg:\r\n\t"); - for (int j = 0; j < 4; j++) - { - myComputer.printf("%X ", *((char*)&LPC_PINCON->I2CPADCFG + j)); - } -} - -int main () -{ - PinConnectBlock::SetPinConnection(2, 11, 0x01); - NVIC_SetVector(EINT1_IRQn, (uint32_t)interruptHandler1); - NVIC_SetPriority(EINT1_IRQn, 1); - NVIC_EnableIRQ(EINT1_IRQn); - - /*InterruptIn hardint(p30); - hardint.rise(&interruptHandler2); - NVIC_SetPriority(EINT3_IRQn, 0);*/ - - /*unsigned char result; - for (int i = 1; i < 7; i++) - { - myComputer.printf("Port %d:\r\n", i); - for (int j = 0; j < 35; j++) - { - myComputer.printf("\tPin %d:\r\n", j); - for (int k = 0; k < 4; k++) - { - result = PinConnectBlock::ValidateInput(i, j, k); - myComputer.printf("\t\tMode %d: %d ", k, result); - result = PinConnectBlock::ValidateInput(i, j, k | 0x0C); - myComputer.printf("Mode %d: %d ", k | 0x0C, result); - result = PinConnectBlock::ValidateInput(i, j, k | 0x10); - myComputer.printf("Mode %d: %d \r\n", k | 0x10, result); - result = PinConnectBlock::ValidateInput(i, j, k | 0x14); - myComputer.printf("Mode %d: %d \r\n", k | 0x14, result); - } - } - }*/ - - /*PinConnectBlock::SetPinConnection(2, 11, 0x13); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters(); - myComputer.printf("\r\nPin 2.11 Mode: %X\r\n\r\n", PinConnectBlock::GetPinConnection(2, 11)); - PinConnectBlock::SetPinConnection(2, 11, 0x0C); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters(); - myComputer.printf("\r\nPin 2.11 Mode: %X\r\n\r\n", PinConnectBlock::GetPinConnection(2, 11)); - PinConnectBlock::SetPinConnection(2, 11, 0x1F); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters(); - myComputer.printf("\r\nPin 2.11 Mode: %X\r\n\r\n", PinConnectBlock::GetPinConnection(2, 11)); - PinConnectBlock::SetPinConnection(2, 11, 0x00); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters(); - myComputer.printf("\r\nPin 2.11 Mode: %X\r\n\r\n", PinConnectBlock::GetPinConnection(2, 11)); - PinConnectBlock::SetPinConnection(2, 11, 0x01); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters(); - myComputer.printf("\r\nPin 2.11 Mode: %X\r\n\r\n", PinConnectBlock::GetPinConnection(2, 11)); - PinConnectBlock::SetPinConnection(1, 10, 0x02); - PinConnectBlock::SetPinConnection(0, 28, 0x1F); - PinConnectBlock::SetPinConnection(0, 29, 0x1F); - checkFunctRegisters(); - checkResistRegisters(); - checkODMRegisters();*/ - - /*PinConnectBlock::SetFunctionMode(1, 18, 0x02); - PinConnectBlock::SetFunctionMode(1, 20, 0x03); - checkFunctRegisters(); - myComputer.printf("\r\nPin 3.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(4, 29)); - myComputer.printf("\r\nPin 3.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(3, 25)); - myComputer.printf("\r\nPin 2.11 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(2, 11)); - myComputer.printf("\r\nPin 1.18 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 18)); - myComputer.printf("\r\nPin 1.20 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 20)); - myComputer.printf("\r\nPin 1.0 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 0)); - myComputer.printf("\r\nPin 0.15 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(0, 15)); - myComputer.printf("\r\nPin 0.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(0, 25)); - PinConnectBlock::SetFunctionMode(4, 29, 0x01); - PinConnectBlock::SetFunctionMode(3, 25, 0x02); - PinConnectBlock::SetFunctionMode(2, 11, 0x01); - PinConnectBlock::SetFunctionMode(1, 0, 0x01); - PinConnectBlock::SetFunctionMode(0, 15, 0x02); - PinConnectBlock::SetFunctionMode(0, 25, 0x03); - PinConnectBlock::SetFunctionMode(1, 18, 0x00); - PinConnectBlock::SetFunctionMode(1, 20, 0x00); - checkFunctRegisters(); - myComputer.printf("\r\nPin 3.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(4, 29)); - myComputer.printf("\r\nPin 3.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(3, 25)); - myComputer.printf("\r\nPin 2.11 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(2, 11)); - myComputer.printf("\r\nPin 1.18 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 18)); - myComputer.printf("\r\nPin 1.20 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 20)); - myComputer.printf("\r\nPin 1.0 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(1, 0)); - myComputer.printf("\r\nPin 0.15 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(0, 15)); - myComputer.printf("\r\nPin 0.25 Fmode: %d\r\n\r\n", PinConnectBlock::GetFunctionMode(0, 25));*/ - - /*PinConnectBlock::SetResistorMode(1, 18, 0x00); - PinConnectBlock::SetResistorMode(1, 20, 0x03); - checkResistRegisters(); - myComputer.printf("\r\nPin 0.0 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(0, 0)); - myComputer.printf("\r\nPin 0.15 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(0, 15)); - myComputer.printf("\r\nPin 1.18 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 18)); - myComputer.printf("\r\nPin 1.20 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 20)); - myComputer.printf("\r\nPin 1.31 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 31)); - myComputer.printf("\r\nPin 2.0 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(2, 0)); - myComputer.printf("\r\nPin 3.26 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(3, 26)); - myComputer.printf("\r\nPin 4.28 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(4, 28)); - PinConnectBlock::SetResistorMode(0, 0, 0x01); - PinConnectBlock::SetResistorMode(0, 15, 0x02); - PinConnectBlock::SetResistorMode(1, 18, 0x03); - PinConnectBlock::SetResistorMode(1, 20, 0x00); - PinConnectBlock::SetResistorMode(1, 31, 0x01); - PinConnectBlock::SetResistorMode(2, 0, 0x02); - PinConnectBlock::SetResistorMode(3, 26, 0x03); - PinConnectBlock::SetResistorMode(4, 28, 0x01); - checkResistRegisters(); - myComputer.printf("\r\nPin 0.0 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(0, 0)); - myComputer.printf("\r\nPin 0.15 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(0, 15)); - myComputer.printf("\r\nPin 1.18 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 18)); - myComputer.printf("\r\nPin 1.20 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 20)); - myComputer.printf("\r\nPin 1.31 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(1, 31)); - myComputer.printf("\r\nPin 2.0 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(2, 0)); - myComputer.printf("\r\nPin 3.26 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(3, 26)); - myComputer.printf("\r\nPin 4.28 Rmode: %d\r\n\r\n", PinConnectBlock::GetResistorMode(4, 28));*/ - - /*PinConnectBlock::SetOpenDrainMode(3, 26, 1); - PinConnectBlock::SetOpenDrainMode(3, 25, 1); - checkODMRegisters(); - myComputer.printf("\r\nPin 0.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 0)); - myComputer.printf("\r\nPin 0.11 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 11)); - myComputer.printf("\r\nPin 0.15 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 15)); - myComputer.printf("\r\nPin 0.26 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 26)); - myComputer.printf("\r\nPin 0.29 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 29)); - myComputer.printf("\r\nPin 0.30 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 30)); - myComputer.printf("\r\nPin 1.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(1, 0)); - myComputer.printf("\r\nPin 1.31 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(1, 31)); - myComputer.printf("\r\nPin 2.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(2, 0)); - myComputer.printf("\r\nPin 2.13 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(2, 13)); - myComputer.printf("\r\nPin 3.25 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(3, 25)); - myComputer.printf("\r\nPin 3.26 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(3, 26)); - myComputer.printf("\r\nPin 4.28 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(4, 28)); - myComputer.printf("\r\nPin 4.29 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(4, 29)); - PinConnectBlock::SetOpenDrainMode(0, 0, 1); - PinConnectBlock::SetOpenDrainMode(0, 11, 1); - PinConnectBlock::SetOpenDrainMode(0, 15, 1); - PinConnectBlock::SetOpenDrainMode(0, 26, 1); - PinConnectBlock::SetOpenDrainMode(0, 29, 1); - PinConnectBlock::SetOpenDrainMode(0, 30, 1); - PinConnectBlock::SetOpenDrainMode(1, 0, 1); - PinConnectBlock::SetOpenDrainMode(1, 31, 1); - PinConnectBlock::SetOpenDrainMode(2, 0, 1); - PinConnectBlock::SetOpenDrainMode(2, 13, 1); - PinConnectBlock::SetOpenDrainMode(3, 25, 0); - PinConnectBlock::SetOpenDrainMode(3, 26, 0); - PinConnectBlock::SetOpenDrainMode(4, 28, 1); - PinConnectBlock::SetOpenDrainMode(4, 29, 1); - checkODMRegisters(); - myComputer.printf("\r\nPin 0.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 0)); - myComputer.printf("\r\nPin 0.11 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 11)); - myComputer.printf("\r\nPin 0.15 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 15)); - myComputer.printf("\r\nPin 0.26 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 26)); - myComputer.printf("\r\nPin 0.29 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 29)); - myComputer.printf("\r\nPin 0.30 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(0, 30)); - myComputer.printf("\r\nPin 1.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(1, 0)); - myComputer.printf("\r\nPin 1.31 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(1, 31)); - myComputer.printf("\r\nPin 2.0 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(2, 0)); - myComputer.printf("\r\nPin 2.13 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(2, 13)); - myComputer.printf("\r\nPin 3.25 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(3, 25)); - myComputer.printf("\r\nPin 3.26 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(3, 26)); - myComputer.printf("\r\nPin 4.28 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(4, 28)); - myComputer.printf("\r\nPin 4.29 ODmode: %d\r\n\r\n", PinConnectBlock::GetOpenDrainMode(4, 29));*/ - - /*checkTMRegister(); - myComputer.printf("\r\nTrace mode: %d\r\n\r\n", PinConnectBlock::GetTraceMode()); - PinConnectBlock::SetTraceMode(1); - checkTMRegister(); - myComputer.printf("\r\nTrace mode: %d\r\n\r\n", PinConnectBlock::GetTraceMode()); - PinConnectBlock::SetTraceMode(0); - checkTMRegister(); - myComputer.printf("\r\nTrace mode: %d\r\n\r\n", PinConnectBlock::GetTraceMode());*/ - - /*checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - PinConnectBlock::SetI2C0Mode(0x03); - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - PinConnectBlock::SetI2C0Mode(0x01); - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - PinConnectBlock::SetI2C0Mode(0x02); - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - PinConnectBlock::SetI2C0Mode(0x00); - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG |= 0x00000001; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG |= 0x00000003; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG |= 0x00000007; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG &= ~0x0000000F; - LPC_PINCON->I2CPADCFG |= 0x00000008; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG |= 0x0000000C; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode()); - LPC_PINCON->I2CPADCFG |= 0x0000000E; - checkI2CRegister(); - myComputer.printf("\r\nI2C0mode: %d\r\n\r\n", PinConnectBlock::GetI2C0Mode());*/ - - DigitalOut led1(LED1); - DigitalOut led2(LED2); - DigitalOut led3(LED3); - DigitalOut led4(LED4); - while (1) - { - led1 = !led1; - wait_ms(250); - led2 = !led2; - wait_ms(250); - led3 = !led3; - wait_ms(250); - led4 = !led4; - wait_ms(250); - - NVIC_SetPendingIRQ(EINT1_IRQn); - wait(10); - } -} \ No newline at end of file