![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Keg sharing system
Dependencies: 4DGL-uLCD-SE TextLCD mbed
main.cpp@0:dd375f44efef, 2016-12-07 (annotated)
- Committer:
- taylornichols
- Date:
- Wed Dec 07 06:54:24 2016 +0000
- Revision:
- 0:dd375f44efef
- Child:
- 1:f531f70a27c3
working digit entry; ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
taylornichols | 0:dd375f44efef | 1 | #include "mbed.h" |
taylornichols | 0:dd375f44efef | 2 | #include <mpr121.h> |
taylornichols | 0:dd375f44efef | 3 | |
taylornichols | 0:dd375f44efef | 4 | // on-board LEDs |
taylornichols | 0:dd375f44efef | 5 | DigitalOut led1 ( LED1 ) ; |
taylornichols | 0:dd375f44efef | 6 | DigitalOut led2 ( LED2 ) ; |
taylornichols | 0:dd375f44efef | 7 | DigitalOut led3 ( LED3 ) ; |
taylornichols | 0:dd375f44efef | 8 | DigitalOut led4 ( LED4 ) ; |
taylornichols | 0:dd375f44efef | 9 | |
taylornichols | 0:dd375f44efef | 10 | // COM port |
taylornichols | 0:dd375f44efef | 11 | Serial com( USBTX , USBRX , 9600 ); |
taylornichols | 0:dd375f44efef | 12 | |
taylornichols | 0:dd375f44efef | 13 | // keypad |
taylornichols | 0:dd375f44efef | 14 | InterruptIn interrupt ( p26 ) ; |
taylornichols | 0:dd375f44efef | 15 | I2C i2c ( p9 , p10 ) ; |
taylornichols | 0:dd375f44efef | 16 | Mpr121 keypad ( & i2c , Mpr121::ADD_VSS ) ; |
taylornichols | 0:dd375f44efef | 17 | |
taylornichols | 0:dd375f44efef | 18 | int unsigned pin_count ( 0 ) ; |
taylornichols | 0:dd375f44efef | 19 | int unsigned pin_value ( 0 ) ; |
taylornichols | 0:dd375f44efef | 20 | void keypad_callback ( ) |
taylornichols | 0:dd375f44efef | 21 | { |
taylornichols | 0:dd375f44efef | 22 | // TEST |
taylornichols | 0:dd375f44efef | 23 | led2 = ! led2 ; |
taylornichols | 0:dd375f44efef | 24 | // com.putc ( 'y' ) ; |
taylornichols | 0:dd375f44efef | 25 | // com.putc ( 'z' ) ; |
taylornichols | 0:dd375f44efef | 26 | // com.putc ( '\n' ) ; |
taylornichols | 0:dd375f44efef | 27 | int value ( keypad.read(0x00) ) ; |
taylornichols | 0:dd375f44efef | 28 | value += keypad.read(0x01) << 8 ; |
taylornichols | 0:dd375f44efef | 29 | // com.printf( "%x\n" , value ) ; |
taylornichols | 0:dd375f44efef | 30 | if ( value == 0 ) return ; |
taylornichols | 0:dd375f44efef | 31 | |
taylornichols | 0:dd375f44efef | 32 | switch ( value ) |
taylornichols | 0:dd375f44efef | 33 | { |
taylornichols | 0:dd375f44efef | 34 | // case 0 : return ; |
taylornichols | 0:dd375f44efef | 35 | case 0x1 : if ( pin_count != 0 ) -- pin_count ; pin_value /= 10 ; return ; // DELETE |
taylornichols | 0:dd375f44efef | 36 | case 0x10 : pin_value = pin_value * 10 ; break ; // 0 |
taylornichols | 0:dd375f44efef | 37 | case 0x100 : pin_count = pin_value = 0 ; return ; // ENTER |
taylornichols | 0:dd375f44efef | 38 | case 0x2 : pin_value = pin_value * 10 + 1 ; break ; |
taylornichols | 0:dd375f44efef | 39 | case 0x20 : pin_value = pin_value * 10 + 2 ; break ; |
taylornichols | 0:dd375f44efef | 40 | case 0x200 : pin_value = pin_value * 10 + 3 ; break ; |
taylornichols | 0:dd375f44efef | 41 | case 0x4 : pin_value = pin_value * 10 + 4 ; break ; |
taylornichols | 0:dd375f44efef | 42 | case 0x40 : pin_value = pin_value * 10 + 5 ; break ; |
taylornichols | 0:dd375f44efef | 43 | case 0x400 : pin_value = pin_value * 10 + 6 ; break ; |
taylornichols | 0:dd375f44efef | 44 | case 0x8 : pin_value = pin_value * 10 + 7 ; break ; |
taylornichols | 0:dd375f44efef | 45 | case 0x80 : pin_value = pin_value * 10 + 8 ; break ; |
taylornichols | 0:dd375f44efef | 46 | case 0x800 : pin_value = pin_value * 10 + 9 ; break ; |
taylornichols | 0:dd375f44efef | 47 | } |
taylornichols | 0:dd375f44efef | 48 | if ( pin_count == 3 ) |
taylornichols | 0:dd375f44efef | 49 | { |
taylornichols | 0:dd375f44efef | 50 | // com.printf ( "{%d:%d}\n" , pin_value , pin_count ) ; |
taylornichols | 0:dd375f44efef | 51 | com.printf ( "%d\n\r" , pin_value ) ; |
taylornichols | 0:dd375f44efef | 52 | pin_value = pin_count = 0 ; |
taylornichols | 0:dd375f44efef | 53 | return ; |
taylornichols | 0:dd375f44efef | 54 | // send pin |
taylornichols | 0:dd375f44efef | 55 | // return ; |
taylornichols | 0:dd375f44efef | 56 | } |
taylornichols | 0:dd375f44efef | 57 | // com.printf ( "%d : %d\n" , pin_value , pin_count ) ; |
taylornichols | 0:dd375f44efef | 58 | ++ pin_count ; |
taylornichols | 0:dd375f44efef | 59 | // com.printf(8080) ; |
taylornichols | 0:dd375f44efef | 60 | // int unsigned num = 8080 ; |
taylornichols | 0:dd375f44efef | 61 | // com.write ( ) ; |
taylornichols | 0:dd375f44efef | 62 | } |
taylornichols | 0:dd375f44efef | 63 | |
taylornichols | 0:dd375f44efef | 64 | int main ( ) |
taylornichols | 0:dd375f44efef | 65 | { |
taylornichols | 0:dd375f44efef | 66 | // INIT |
taylornichols | 0:dd375f44efef | 67 | interrupt.fall ( & keypad_callback ) ; |
taylornichols | 0:dd375f44efef | 68 | interrupt.mode ( PullUp ) ; |
taylornichols | 0:dd375f44efef | 69 | |
taylornichols | 0:dd375f44efef | 70 | while(1) |
taylornichols | 0:dd375f44efef | 71 | { |
taylornichols | 0:dd375f44efef | 72 | led1 = 1; |
taylornichols | 0:dd375f44efef | 73 | wait(0.2); |
taylornichols | 0:dd375f44efef | 74 | led1 = 0; |
taylornichols | 0:dd375f44efef | 75 | wait(0.2); |
taylornichols | 0:dd375f44efef | 76 | } |
taylornichols | 0:dd375f44efef | 77 | } |