C++ file for display control

Dependencies:   4DGL mbed ConfigFile

Fork of 4DGLtest by Stephane ROCHON

Committer:
WillemBraat
Date:
Sat Jul 05 16:32:03 2014 +0000
Revision:
7:779c5b8d3b14
Parent:
6:904d00252480
Child:
8:dd258f9e24b0
Display functions completed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WillemBraat 3:f7bce78b04c1 1 /* Keyboard chip TCA8418 control */
WillemBraat 3:f7bce78b04c1 2 #include "mbed.h"
WillemBraat 3:f7bce78b04c1 3 #include "keyboard.h"
WillemBraat 3:f7bce78b04c1 4
WillemBraat 3:f7bce78b04c1 5 extern int key_hit_ID;
WillemBraat 3:f7bce78b04c1 6 //extern mbos CDU_OS;
WillemBraat 3:f7bce78b04c1 7
WillemBraat 3:f7bce78b04c1 8 //CDU Keyboard communications KEYBOARD_INT
WillemBraat 3:f7bce78b04c1 9 InterruptIn CDU_KB_INT( p5 ); //Set CDU keyboard interrupt line.
WillemBraat 6:904d00252480 10 I2C CDU_I2C(p28, p27); //I2C bus for keyboard/temp chip.
WillemBraat 3:f7bce78b04c1 11
WillemBraat 7:779c5b8d3b14 12 //CDU Keyboard LEDS (can be PWM driven also...)
WillemBraat 3:f7bce78b04c1 13 DigitalOut EXEC( p12 );
WillemBraat 3:f7bce78b04c1 14 DigitalOut FAIL( p17 );
WillemBraat 3:f7bce78b04c1 15 DigitalOut DSPY( p18 );
WillemBraat 3:f7bce78b04c1 16 DigitalOut MSG( p19 );
WillemBraat 3:f7bce78b04c1 17 DigitalOut OFST( p20 );
WillemBraat 3:f7bce78b04c1 18
WillemBraat 3:f7bce78b04c1 19 //CDU background lighting
WillemBraat 6:904d00252480 20 AnalogIn BGL_POT( p16 ); //background light control potmeter
WillemBraat 7:779c5b8d3b14 21 PwmOut BGL_LED( p21 ); //PWM output background lighting
WillemBraat 3:f7bce78b04c1 22
WillemBraat 3:f7bce78b04c1 23 void CDU_KB_COMM_INIT()
WillemBraat 3:f7bce78b04c1 24 { //initialize communication with TCA84818
WillemBraat 6:904d00252480 25 CDU_I2C.write(CDU_KB_WRITE); //initiate write cycle
WillemBraat 3:f7bce78b04c1 26 //intialize all registers from TCA8418 here
WillemBraat 6:904d00252480 27 CDU_I2C.read(CDU_KB_READ); //start reading from TCA4818
WillemBraat 3:f7bce78b04c1 28 }
WillemBraat 3:f7bce78b04c1 29
WillemBraat 6:904d00252480 30 void CDU_KB_GET_KEY()
WillemBraat 3:f7bce78b04c1 31 {
WillemBraat 6:904d00252480 32 CDU_I2C.write(CDU_KB_READ); //initiate read cycle
WillemBraat 6:904d00252480 33 key_hit_ID = CDU_I2C.read(CDU_KB_READ) ; //read key value
WillemBraat 3:f7bce78b04c1 34 //CDU_OS.SetEvent(KEY_EVENT,SEND_KEYMESSAGE_TASK_ID ); //Set event key to wakeup task
WillemBraat 3:f7bce78b04c1 35 }
WillemBraat 3:f7bce78b04c1 36
WillemBraat 3:f7bce78b04c1 37 void CDU_KB_INT_START()
WillemBraat 3:f7bce78b04c1 38 {
WillemBraat 7:779c5b8d3b14 39 CDU_KB_INT.mode( PullUp ); //Keyboard chip pulls this line to 0 on a keypress
WillemBraat 7:779c5b8d3b14 40 CDU_KB_INT.fall(&CDU_KB_GET_KEY); //Bind function to interrupt handler
WillemBraat 3:f7bce78b04c1 41 }
WillemBraat 3:f7bce78b04c1 42
WillemBraat 7:779c5b8d3b14 43 void CDU_SET_BGL_INTENSITY( int nVal=255 )
WillemBraat 3:f7bce78b04c1 44 {
WillemBraat 3:f7bce78b04c1 45 //AnalogIn BGL_POT( p15 ); //background light control potmeter. Returns a value between 0.0 and 1.0
WillemBraat 3:f7bce78b04c1 46 //PwmOut BGL_LED( p21 ); //PWM output
WillemBraat 3:f7bce78b04c1 47 //calculate required brightness in percentage from 0%-100%
WillemBraat 7:779c5b8d3b14 48 //nVal 255 --> calculate brightness from potmeter value (default value if no parameter is passed)
WillemBraat 3:f7bce78b04c1 49 //nVal = 0 --> switch off backlight
WillemBraat 3:f7bce78b04c1 50 //nVal = 100 --> switch on backlight max
WillemBraat 3:f7bce78b04c1 51
WillemBraat 3:f7bce78b04c1 52 switch (nVal)
WillemBraat 3:f7bce78b04c1 53 {
WillemBraat 3:f7bce78b04c1 54 case 0:
WillemBraat 3:f7bce78b04c1 55 {
WillemBraat 3:f7bce78b04c1 56 //switch off backlighting
WillemBraat 3:f7bce78b04c1 57 BGL_LED.pulsewidth( 0.0 );
WillemBraat 3:f7bce78b04c1 58 break;
WillemBraat 3:f7bce78b04c1 59 }
WillemBraat 3:f7bce78b04c1 60 case 100:
WillemBraat 3:f7bce78b04c1 61 {
WillemBraat 3:f7bce78b04c1 62 //switch on backlighting
WillemBraat 3:f7bce78b04c1 63 BGL_LED.pulsewidth( 100.0 );
WillemBraat 3:f7bce78b04c1 64 break;
WillemBraat 3:f7bce78b04c1 65 }
WillemBraat 3:f7bce78b04c1 66 case 255:
WillemBraat 3:f7bce78b04c1 67 {
WillemBraat 3:f7bce78b04c1 68 //calculate percentage from potmeter value
WillemBraat 3:f7bce78b04c1 69 BGL_LED.pulsewidth( 0.0 + 100*BGL_POT );
WillemBraat 3:f7bce78b04c1 70 }
WillemBraat 3:f7bce78b04c1 71 }
WillemBraat 3:f7bce78b04c1 72 }