C++ file for display control

Dependencies:   4DGL mbed ConfigFile

Fork of 4DGLtest by Stephane ROCHON

Committer:
WillemBraat
Date:
Thu Jun 26 11:41:45 2014 +0000
Revision:
3:f7bce78b04c1
Child:
6:904d00252480
CDU Display code file

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 3:f7bce78b04c1 10 I2C CDU_KB(p28, p27); //Communication lines to keyboard chip
WillemBraat 3:f7bce78b04c1 11
WillemBraat 3:f7bce78b04c1 12 //CDU Keyboard LEDS
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 3:f7bce78b04c1 20 AnalogIn BGL_POT( p15 ); //background light control potmeter
WillemBraat 3:f7bce78b04c1 21 PwmOut BGL_LED( p21 ); //PWM output
WillemBraat 3:f7bce78b04c1 22
WillemBraat 3:f7bce78b04c1 23 /*void CDU_KB_INT_ON()
WillemBraat 3:f7bce78b04c1 24 {
WillemBraat 3:f7bce78b04c1 25
WillemBraat 3:f7bce78b04c1 26 }
WillemBraat 3:f7bce78b04c1 27 */
WillemBraat 3:f7bce78b04c1 28
WillemBraat 3:f7bce78b04c1 29 void CDU_KB_COMM_INIT()
WillemBraat 3:f7bce78b04c1 30 { //initialize communication with TCA84818
WillemBraat 3:f7bce78b04c1 31 CDU_KB.write(CDU_KB_WRITE); //initiate write cycle
WillemBraat 3:f7bce78b04c1 32 //intialize all registers from TCA8418 here
WillemBraat 3:f7bce78b04c1 33 CDU_KB.read(CDU_KB_READ); //start reading from TCA4818
WillemBraat 3:f7bce78b04c1 34 }
WillemBraat 3:f7bce78b04c1 35
WillemBraat 3:f7bce78b04c1 36 void CDU_KB_GET_KEY_TASK()
WillemBraat 3:f7bce78b04c1 37 {
WillemBraat 3:f7bce78b04c1 38 CDU_KB.write(CDU_KB_READ); //initiate read cycle
WillemBraat 3:f7bce78b04c1 39 key_hit_ID = CDU_KB.read(CDU_KB_READ) ; //read key value
WillemBraat 3:f7bce78b04c1 40 //CDU_OS.SetEvent(KEY_EVENT,SEND_KEYMESSAGE_TASK_ID ); //Set event key to wakeup task
WillemBraat 3:f7bce78b04c1 41 }
WillemBraat 3:f7bce78b04c1 42
WillemBraat 3:f7bce78b04c1 43 void CDU_KB_INT_START()
WillemBraat 3:f7bce78b04c1 44 {
WillemBraat 3:f7bce78b04c1 45 CDU_KB_INT.mode( PullUp );
WillemBraat 3:f7bce78b04c1 46 CDU_KB_INT.fall(&CDU_KB_GET_KEY_TASK);
WillemBraat 3:f7bce78b04c1 47 }
WillemBraat 3:f7bce78b04c1 48
WillemBraat 3:f7bce78b04c1 49 void SET_BGL_INTENSITY( int nVal )
WillemBraat 3:f7bce78b04c1 50 {
WillemBraat 3:f7bce78b04c1 51 //AnalogIn BGL_POT( p15 ); //background light control potmeter. Returns a value between 0.0 and 1.0
WillemBraat 3:f7bce78b04c1 52 //PwmOut BGL_LED( p21 ); //PWM output
WillemBraat 3:f7bce78b04c1 53 //calculate required brightness in percentage from 0%-100%
WillemBraat 3:f7bce78b04c1 54 //nVal 255 --> calculate brightness from potmeter value
WillemBraat 3:f7bce78b04c1 55 //nVal = 0 --> switch off backlight
WillemBraat 3:f7bce78b04c1 56 //nVal = 100 --> switch on backlight max
WillemBraat 3:f7bce78b04c1 57
WillemBraat 3:f7bce78b04c1 58 switch (nVal)
WillemBraat 3:f7bce78b04c1 59 {
WillemBraat 3:f7bce78b04c1 60 case 0:
WillemBraat 3:f7bce78b04c1 61 {
WillemBraat 3:f7bce78b04c1 62 //switch off backlighting
WillemBraat 3:f7bce78b04c1 63 BGL_LED.pulsewidth( 0.0 );
WillemBraat 3:f7bce78b04c1 64 break;
WillemBraat 3:f7bce78b04c1 65 }
WillemBraat 3:f7bce78b04c1 66 case 100:
WillemBraat 3:f7bce78b04c1 67 {
WillemBraat 3:f7bce78b04c1 68 //switch on backlighting
WillemBraat 3:f7bce78b04c1 69 BGL_LED.pulsewidth( 100.0 );
WillemBraat 3:f7bce78b04c1 70 break;
WillemBraat 3:f7bce78b04c1 71 }
WillemBraat 3:f7bce78b04c1 72 case 255:
WillemBraat 3:f7bce78b04c1 73 {
WillemBraat 3:f7bce78b04c1 74 //calculate percentage from potmeter value
WillemBraat 3:f7bce78b04c1 75 BGL_LED.pulsewidth( 0.0 + 100*BGL_POT );
WillemBraat 3:f7bce78b04c1 76 }
WillemBraat 3:f7bce78b04c1 77 }
WillemBraat 3:f7bce78b04c1 78 }