Keg sharing system

Dependencies:   4DGL-uLCD-SE TextLCD mbed

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?

UserRevisionLine numberNew 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 }