Wim Huiskamp
/
SC16IS750_Test
Testsoftware for SC16IS750
Revision 2:8aba07490dce, committed 2014-02-13
- Comitter:
- wim
- Date:
- Thu Feb 13 17:12:12 2014 +0000
- Parent:
- 1:f0d3984f2586
- Child:
- 3:3d4269319b51
- Commit message:
- Testversion 2
Changed in this revision
SC16IS750.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/SC16IS750.lib Sun Feb 09 14:58:33 2014 +0000 +++ b/SC16IS750.lib Thu Feb 13 17:12:12 2014 +0000 @@ -1,1 +1,1 @@ -SC16IS750#0440152c5387 +SC16IS750#76cb93b511f2
--- a/main.cpp Sun Feb 09 14:58:33 2014 +0000 +++ b/main.cpp Thu Feb 13 17:12:12 2014 +0000 @@ -1,13 +1,64 @@ #include "mbed.h" #include "SC16IS750.h" + +#if defined(TARGET_LPC1768) +// SPI for LPC1768 +#define D_MOSI p5 +#define D_MISO p6 +#define D_SCLK p7 +#define D_CS p8 +#define D_INTR p15 + +// Serial for LPC1768 +#define D_TX USBTX +#define D_RX USBRX +//#define D_RST p25 +//#define D_STS p26 +#endif + +#if defined(TARGET_KL25Z) +// SPI for KL25Z +#define D_MOSI PTD2 +#define D_MISO PTD3 +#define D_SCLK PTD1 +#define D_CS PTD0 +//#define D_INTR p15 + +// I2C for KL25Z +#define D_SCL PTE1 +#define D_SDA PTE0 + +// Serial for KL25Z +#define D_TX USBTX +#define D_RX USBRX +#endif + +#if defined(TARGET_LPC812) +// SPI for LPC812 +#define D_MOSI P0_14 +#define D_MISO P0_15 +#define D_SCLK P0_12 +#define D_CS P0_13 +//#define D_INTR P0_7 + +// Serial for LPC812 +#define D_TX P0_4 +#define D_RX P0_0 +//#define D_RST P0_9 +//#define D_STS P0_17 +#endif + + //SPI Version -SPI spi(PTD2, PTD3, PTD1); //MOSI, MISO, SCK +//SPI spi(PTD2, PTD3, PTD1); //MOSI, MISO, SCK +SPI spi(D_MOSI, D_MISO, D_SCLK); //MOSI, MISO, SCK //DigitalOut CS(PTD0); //CS -SC16IS750_SPI serial_bridge(&spi, PTD0); +//SC16IS750_SPI serial_bridge(&spi, PTD0); +SC16IS750_SPI serial_bridge(&spi, D_CS); //I2C Version -//I2C i2c(PTE0, PTE1); //SDA, SCL +//I2C i2c(D_SDA, D_SCL); //SDA, SCL //SC16IS750_I2C serial_bridge(&i2c, DEFAULT_SC16IS750_ADDR); DigitalOut myled1(LED_RED); @@ -15,7 +66,7 @@ //DigitalOut myled3(LED_BLUE); // Same as PTD1 (SCK) DigitalOut heartbeatLED(LED_GREEN); -Serial pc(USBTX,USBRX); +Serial pc(D_TX,D_RX); void show_menu() { pc.printf("0: Exit\n\r"); @@ -23,13 +74,12 @@ pc.printf("2: Init\n\r"); pc.printf("3: IO Out\n\r"); pc.printf("4: Echo Text\n\r"); + pc.printf("5: Free bufferspace\n\r"); + pc.printf("6: Enable RTS/CTS\n\r"); + pc.printf("7: Disable RTS/CTS\n\r"); + pc.printf("8: Write block\n\r"); #if(0) - - pc.printf("5: \n\r"); - pc.printf("6: \n\r"); - pc.printf("7: \n\r"); - pc.printf("8: \n\r"); pc.printf("9: \n\r"); pc.printf("A: \n\r"); pc.printf("B: \n\r"); @@ -68,10 +118,20 @@ int main() { bool running=true; - char command; + bool running_test=true; + char command, ch; int i=0; - pc.printf("\nHello World!\n\r"); +#if defined(TARGET_LPC1768) + pc.printf("\r\nHello World from LPC1768\r\n"); +#endif +#if defined(TARGET_KL25Z) + pc.printf("\r\nHello World from KL25Z\r\n"); +#endif +#if defined(TARGET_LPC812) + pc.printf("\r\nHello World from LPC812\r\n"); +#endif + heartbeat_start(); @@ -128,9 +188,8 @@ case '4' : pc.printf("Echo Text, Enter '$' to quit...\n\r"); - char ch; - bool running_test=true; - + running_test=true; + while (running_test) { // From SPI/I2C to serial while (running_test && pc.readable()) { @@ -151,8 +210,27 @@ pc.printf("\n\rEcho Text Done\n\r"); break; + case '5' : + pc.printf("Available for Reading = %3d (Free Space = %3d)\n\r", serial_bridge.readableCount(), SC16IS750_FIFO_RX - serial_bridge.readableCount()); + pc.printf("Available for Writing = %3d (Used Space = %3d)\n\r", serial_bridge.writableCount(), SC16IS750_FIFO_TX - serial_bridge.writableCount()); + break; + + case '6' : + pc.printf("Enable RTS/CTS\n\r"); + serial_bridge.set_flow_control(SC16IS750::RTSCTS); + break; + case '7' : + pc.printf("Disable RTS/CTS\n\r"); + serial_bridge.set_flow_control(SC16IS750::Disabled); + break; + + case '8' : + pc.printf("Write block\n\r"); + serial_bridge.write("Hello World from mbed and SC16IS750 "); + break; + default : - break; + break; } //switch } //if