![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
standalone sx1276 demo program
Fork of SX1276_GPS by
main.cpp@4:d70e37f6c6bd, 2014-08-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |