standalone sx1276 demo program

Dependencies:   SX1276Lib mbed

Fork of SX1276_GPS by CaryCoders

Committer:
vtraveller
Date:
Sat Aug 02 13:50:40 2014 +0000
Revision:
4:d70e37f6c6bd
Parent:
3:ed09f95739df
Child:
5:6c9ee7e3a20c
Keyboard working version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:88d87b1c1f8b 1 #include "mbed.h"
vtraveller 4:d70e37f6c6bd 2
vtraveller 4:d70e37f6c6bd 3 #include "Adafruit_RGBLCDShield.h"
vtraveller 4:d70e37f6c6bd 4 //#include "MCP23017.h"
wim 0:88d87b1c1f8b 5
vtraveller 3:ed09f95739df 6 Serial pc(SERIAL_TX, SERIAL_RX);
wim 0:88d87b1c1f8b 7
vtraveller 3:ed09f95739df 8 MCP23017 mcp23017 = MCP23017(I2C_SDA, I2C_SCL, 0x40);
vtraveller 4:d70e37f6c6bd 9 Adafruit_RGBLCDShield lcd(mcp23017);
wim 0:88d87b1c1f8b 10
vtraveller 3:ed09f95739df 11 #define RED 0x1
vtraveller 3:ed09f95739df 12 #define YELLOW 0x3
vtraveller 3:ed09f95739df 13 #define GREEN 0x2
vtraveller 3:ed09f95739df 14 #define TEAL 0x6
vtraveller 3:ed09f95739df 15 #define BLUE 0x4
vtraveller 3:ed09f95739df 16 #define VIOLET 0x5
vtraveller 3:ed09f95739df 17 #define WHITE 0x7
vtraveller 3:ed09f95739df 18
vtraveller 3:ed09f95739df 19 // Allows to set the backlight, if the LCD backpack is used
vtraveller 3:ed09f95739df 20 void SetBacklight(unsigned char status)
vtraveller 3:ed09f95739df 21 {
vtraveller 3:ed09f95739df 22 pc.printf("Backlight: %i\n\r", status);
vtraveller 3:ed09f95739df 23
vtraveller 3:ed09f95739df 24 mcp23017.digitalWrite(8, (~(status >> 2) & 0x1));
vtraveller 3:ed09f95739df 25 mcp23017.digitalWrite(7, (~(status >> 1) & 0x1));
vtraveller 3:ed09f95739df 26 mcp23017.digitalWrite(6, (~status & 0x1));
vtraveller 3:ed09f95739df 27 }
wim 0:88d87b1c1f8b 28
vtraveller 4:d70e37f6c6bd 29 void loop()
vtraveller 3:ed09f95739df 30 {
vtraveller 4:d70e37f6c6bd 31 // set the cursor to column 0, line 1
vtraveller 4:d70e37f6c6bd 32 // (note: line 1 is the second row, since counting begins with 0):
vtraveller 4:d70e37f6c6bd 33 lcd.setCursor(0, 1);
vtraveller 4:d70e37f6c6bd 34
vtraveller 4:d70e37f6c6bd 35 uint8_t buttons = lcd.readButtons();
vtraveller 4:d70e37f6c6bd 36
vtraveller 4:d70e37f6c6bd 37 if (buttons)
vtraveller 4:d70e37f6c6bd 38 {
vtraveller 4:d70e37f6c6bd 39 lcd.clear();
vtraveller 4:d70e37f6c6bd 40 lcd.setCursor(0,0);
vtraveller 4:d70e37f6c6bd 41
vtraveller 4:d70e37f6c6bd 42 if (buttons & BUTTON_UP)
vtraveller 4:d70e37f6c6bd 43 {
vtraveller 4:d70e37f6c6bd 44 pc.printf("UP ");
vtraveller 4:d70e37f6c6bd 45
vtraveller 4:d70e37f6c6bd 46 lcd.printf("UP ");
vtraveller 4:d70e37f6c6bd 47 lcd.setBacklight(RED);
vtraveller 4:d70e37f6c6bd 48 }
vtraveller 4:d70e37f6c6bd 49
vtraveller 4:d70e37f6c6bd 50 if (buttons & BUTTON_DOWN)
vtraveller 4:d70e37f6c6bd 51 {
vtraveller 4:d70e37f6c6bd 52 pc.printf("DOWN ");
vtraveller 4:d70e37f6c6bd 53
vtraveller 4:d70e37f6c6bd 54 lcd.printf("DOWN ");
vtraveller 4:d70e37f6c6bd 55 lcd.setBacklight(YELLOW);
vtraveller 4:d70e37f6c6bd 56 }
vtraveller 4:d70e37f6c6bd 57
vtraveller 4:d70e37f6c6bd 58 if (buttons & BUTTON_LEFT)
vtraveller 4:d70e37f6c6bd 59 {
vtraveller 4:d70e37f6c6bd 60 pc.printf("LEFT ");
vtraveller 4:d70e37f6c6bd 61
vtraveller 4:d70e37f6c6bd 62 lcd.printf("LEFT ");
vtraveller 4:d70e37f6c6bd 63 lcd.setBacklight(GREEN);
vtraveller 4:d70e37f6c6bd 64 }
vtraveller 4:d70e37f6c6bd 65
vtraveller 4:d70e37f6c6bd 66 if (buttons & BUTTON_RIGHT)
vtraveller 4:d70e37f6c6bd 67 {
vtraveller 4:d70e37f6c6bd 68 pc.printf("RIGHT ");
vtraveller 4:d70e37f6c6bd 69
vtraveller 4:d70e37f6c6bd 70 lcd.printf("RIGHT ");
vtraveller 4:d70e37f6c6bd 71 lcd.setBacklight(TEAL);
vtraveller 4:d70e37f6c6bd 72 }
vtraveller 4:d70e37f6c6bd 73
vtraveller 4:d70e37f6c6bd 74 if (buttons & BUTTON_SELECT)
vtraveller 4:d70e37f6c6bd 75 {
vtraveller 4:d70e37f6c6bd 76 pc.printf("SELECT ");
vtraveller 4:d70e37f6c6bd 77
vtraveller 4:d70e37f6c6bd 78 lcd.printf("SELECT ");
vtraveller 4:d70e37f6c6bd 79 lcd.setBacklight(VIOLET);
vtraveller 4:d70e37f6c6bd 80 }
vtraveller 4:d70e37f6c6bd 81 }
vtraveller 3:ed09f95739df 82 }
vtraveller 3:ed09f95739df 83
vtraveller 3:ed09f95739df 84 int main()
vtraveller 3:ed09f95739df 85 {
vtraveller 4:d70e37f6c6bd 86 pc.printf("\n\rSTART\n\r");
wim 0:88d87b1c1f8b 87
wim 0:88d87b1c1f8b 88 // I2C init
vtraveller 3:ed09f95739df 89 //mcp23017.i2c.frequency(400000);
wim 0:88d87b1c1f8b 90
wim 0:88d87b1c1f8b 91 // Port A is databus - Output
vtraveller 3:ed09f95739df 92 //mcp23017.direction(PORT_A, PORT_DIR_OUT);
vtraveller 3:ed09f95739df 93
wim 0:88d87b1c1f8b 94 // Port B is controlbus - Output
vtraveller 3:ed09f95739df 95 //mcp23017.direction(PORT_B, PORT_DIR_OUT);
vtraveller 3:ed09f95739df 96
vtraveller 3:ed09f95739df 97 pc.printf("mcp23017.config(0,1,0);\n\r");
vtraveller 3:ed09f95739df 98 mcp23017.config(0,1,0);
vtraveller 3:ed09f95739df 99 wait(0.5);
wim 0:88d87b1c1f8b 100
vtraveller 4:d70e37f6c6bd 101 //pc.printf("mcp23017.pinMode\n\r");
vtraveller 4:d70e37f6c6bd 102 //mcp23017.pinMode(8, DIR_OUTPUT);
vtraveller 4:d70e37f6c6bd 103 //mcp23017.pinMode(7, DIR_OUTPUT);
vtraveller 4:d70e37f6c6bd 104 //mcp23017.pinMode(6, DIR_OUTPUT);
vtraveller 3:ed09f95739df 105
vtraveller 4:d70e37f6c6bd 106 //SetBacklight(WHITE);
vtraveller 3:ed09f95739df 107
vtraveller 4:d70e37f6c6bd 108 //wait(0.5);
vtraveller 4:d70e37f6c6bd 109 //pc.printf("MPC Init done\n\r");
vtraveller 4:d70e37f6c6bd 110
vtraveller 4:d70e37f6c6bd 111 lcd.begin(16,2);
vtraveller 4:d70e37f6c6bd 112 lcd.display();
vtraveller 4:d70e37f6c6bd 113
vtraveller 4:d70e37f6c6bd 114 lcd._putc('A');
vtraveller 3:ed09f95739df 115 wait(0.5);
vtraveller 4:d70e37f6c6bd 116
vtraveller 4:d70e37f6c6bd 117 lcd.printf("Hello, world!");
vtraveller 4:d70e37f6c6bd 118 lcd.setBacklight(GREEN);
wim 0:88d87b1c1f8b 119
vtraveller 4:d70e37f6c6bd 120 while (true)
vtraveller 4:d70e37f6c6bd 121 {
vtraveller 4:d70e37f6c6bd 122 loop();
vtraveller 4:d70e37f6c6bd 123 wait(0.2);
vtraveller 4:d70e37f6c6bd 124 }
vtraveller 3:ed09f95739df 125
vtraveller 4:d70e37f6c6bd 126 //pc.printf("FINISHED\n\r");
wim 0:88d87b1c1f8b 127 }