annotate Scan/STLcd/lcd_scan.c @ 352:99b567a3b1f2

Adding cli API call to set LCD backlight brightness (16 bit per channel)
author Jacob Alexander <haata@kiibohd.com>
date Sat, 01 Aug 2015 22:47:34 -0700
parents 38395a57cf52
children c6613db89cbe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 /* Copyright (C) 2015 by Jacob Alexander
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 *
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 * This file is free software: you can redistribute it and/or modify
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 * it under the terms of the GNU General Public License as published by
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 * the Free Software Foundation, either version 3 of the License, or
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 * (at your option) any later version.
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 *
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 * This file is distributed in the hope that it will be useful,
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 * GNU General Public License for more details.
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 *
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 * You should have received a copy of the GNU General Public License
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 * along with this file. If not, see <http://www.gnu.org/licenses/>.
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 */
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17 // ----- Includes -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19 // Compiler Includes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20 #include <Lib/ScanLib.h>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22 // Project Includes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23 #include <cli.h>
351
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
24 #include <kll.h>
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 #include <led.h>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 #include <print.h>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 // Local Includes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 #include "lcd_scan.h"
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33 // ----- Defines -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35 #define LCD_TOTAL_VISIBLE_PAGES 4
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
36 #define LCD_PAGE_LEN 128
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
39
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
40 // ----- Macros -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
41
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
42 // Number of entries in the SPI0 TxFIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
43 #define SPI0_TxFIFO_CNT ( ( SPI0_SR & SPI_SR_TXCTR ) >> 12 )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
44
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
45
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
46
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
47 // ----- Structs -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
48
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
49 // ----- Function Declarations -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
50
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
51 // CLI Functions
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
52 void cliFunc_lcdCmd ( char* args );
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
53 void cliFunc_lcdColor( char* args );
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
54 void cliFunc_lcdInit ( char* args );
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
55 void cliFunc_lcdTest ( char* args );
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
56
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
57
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
58
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
59 // ----- Variables -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
60
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
61 // Full Toggle State
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
62 uint8_t cliFullToggleState = 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
63
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
64 // Normal/Reverse Toggle State
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65 uint8_t cliNormalReverseToggleState = 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
66
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
67 // Scan Module command dictionary
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
68 CLIDict_Entry( lcdCmd, "Send byte via SPI, second argument enables a0. Defaults to control." );
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
69 CLIDict_Entry( lcdColor, "Set backlight color. 3 16-bit numbers: R G B. i.e. 0xFFF 0x1444 0x32" );
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
70 CLIDict_Entry( lcdInit, "Re-initialize the LCD display." );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
71 CLIDict_Entry( lcdTest, "Test out the LCD display." );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
72
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
73 CLIDict_Def( lcdCLIDict, "ST LCD Module Commands" ) = {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
74 CLIDict_Item( lcdCmd ),
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
75 CLIDict_Item( lcdColor ),
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
76 CLIDict_Item( lcdInit ),
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
77 CLIDict_Item( lcdTest ),
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78 { 0, 0, 0 } // Null entry for dictionary end
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 };
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
80
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
81
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
82
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
83 // ----- Interrupt Functions -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
84
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
85
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
86
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
87 // ----- Functions -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89 inline void SPI_setup()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
91 // Enable SPI internal clock
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 SIM_SCGC6 |= SIM_SCGC6_SPI0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
94 // Setup MOSI (SOUT) and SCLK (SCK)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 PORTC_PCR6 = PORT_PCR_DSE | PORT_PCR_MUX(2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96 PORTC_PCR5 = PORT_PCR_DSE | PORT_PCR_MUX(2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98 // Setup SS (PCS)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
99 PORTC_PCR4 = PORT_PCR_DSE | PORT_PCR_MUX(2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
100
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
101 // Master Mode, CS0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 SPI0_MCR = SPI_MCR_MSTR | SPI_MCR_PCSIS(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104 // DSPI Clock and Transfer Attributes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 // Frame Size: 8 bits
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 // MSB First
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107 // CLK Low by default
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
108 SPI0_CTAR0 = SPI_CTAR_FMSZ(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
109 | SPI_CTAR_ASC(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
110 | SPI_CTAR_DT(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
111 | SPI_CTAR_CSSCK(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
112 | SPI_CTAR_PBR(0) | SPI_CTAR_BR(7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
113 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
114
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
115 // Write buffer to SPI FIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
116 void SPI_write( uint8_t *buffer, uint8_t len )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
117 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
118
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
119 for ( uint8_t byte = 0; byte < len; byte++ )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
120 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
121 // Wait for SPI TxFIFO to have 4 or fewer entries
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
122 while ( !( SPI0_SR & SPI_SR_TFFF ) )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
123 delayMicroseconds(10);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
124
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
125 // Write byte to TxFIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
126 // CS0, CTAR0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
127 SPI0_PUSHR = ( buffer[ byte ] & 0xff ) | SPI_PUSHR_PCS(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
128
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
129 // Indicate transfer has completed
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
130 while ( !( SPI0_SR & SPI_SR_TCF ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 SPI0_SR |= SPI_SR_TCF;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
133 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
134
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
135 // Write to a control register
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
136 void LCD_writeControlReg( uint8_t byte )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
137 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
138 // Wait for TxFIFO to be empt
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139 while ( SPI0_TxFIFO_CNT != 0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
140
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141 // Set A0 low to enter control register mode
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142 GPIOC_PCOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
143
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
144 // Write byte to SPI FIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
145 SPI_write( &byte, 1 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
146
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
147 // Wait for TxFIFO to be empty
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
148 while ( SPI0_TxFIFO_CNT != 0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
149
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
150 // Make sure data has transferred
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
151 delayMicroseconds(10); // XXX Adjust if SPI speed changes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
152
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
153 // Set A0 high to go back to display register mode
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
154 GPIOC_PSOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
155 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
156
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157 // Write to display register
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
158 // Pages 0-7 normal display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
159 // Page 8 icon buffer
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
160 void LCD_writeDisplayReg( uint8_t page, uint8_t *buffer, uint8_t len )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
162 // Set the register page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
163 LCD_writeControlReg( 0xB0 | ( 0x0F & page ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
164
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
165 // Set display start line
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
166 LCD_writeControlReg( 0x40 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
167
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
168 // Reset Column Address
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
169 LCD_writeControlReg( 0x10 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
170 LCD_writeControlReg( 0x00 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
171
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172 // Write buffer to SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173 SPI_write( buffer, len );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
174 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
175
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
176 inline void LCD_clearPage( uint8_t page )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
177 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
178 // Set the register page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
179 LCD_writeControlReg( 0xB0 | ( 0x0F & page ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
180
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181 // Set display start line
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
182 LCD_writeControlReg( 0x40 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
183
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
184 // Reset Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
185 LCD_writeControlReg( 0x10 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
186 LCD_writeControlReg( 0x00 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
187
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
188 for ( uint8_t page_reg = 0; page_reg < LCD_PAGE_LEN; page_reg++ )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
189 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
190 uint8_t byte = 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
191
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
192 // Write buffer to SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
193 SPI_write( &byte, 1 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
194 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
195
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
196 // Wait for TxFIFO to be empty
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
197 while ( SPI0_TxFIFO_CNT != 0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
198 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
199
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
200 // Clear Display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
201 void LCD_clear()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
202 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
203 // Setup each page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
204 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
205 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
206 LCD_clearPage( page );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
207 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
208
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
209 // Reset Page, Start Line, and Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
210 // Page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
211 LCD_writeControlReg( 0xB0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
212
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
213 // Start Line
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
214 LCD_writeControlReg( 0x40 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
215
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
216 // Reset Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
217 LCD_writeControlReg( 0x10 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
218 LCD_writeControlReg( 0x00 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
219 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
220
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
221 // Intialize display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
222 void LCD_initialize()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
223 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
224 // ADC Select (Normal)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
225 LCD_writeControlReg( 0xA0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
226
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
227 // LCD Off
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
228 LCD_writeControlReg( 0xAE );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
229
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
230 // COM Scan Output Direction
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
231 LCD_writeControlReg( 0xC0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
232
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
233 // LCD Bias (1/6 bias)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
234 LCD_writeControlReg( 0xA2 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
235
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
236 // Power Supply Operating Mode (Internal Only)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
237 LCD_writeControlReg( 0x2F );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
238
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
239 // Internal Rb/Ra Ratio
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
240 LCD_writeControlReg( 0x26 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
241
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
242 // Reset
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
243 LCD_writeControlReg( 0xE2 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
244
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
245 // Electric volume mode set, and value
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
246 LCD_writeControlReg( 0x81 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
247 LCD_writeControlReg( 0x00 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
248
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
249 // LCD On
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
250 LCD_writeControlReg( 0xAF );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
251
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
252 // Clear Display RAM
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
253 LCD_clear();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
254 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
255
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
256 // Setup
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
257 inline void LCD_setup()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
258 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
259 // Register Scan CLI dictionary
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
260 CLI_registerDictionary( lcdCLIDict, lcdCLIDictName );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
261
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
262 // Initialize SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
263 SPI_setup();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
264
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
265 // Setup Register Control Signal (A0)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
266 // Start in display register mode (1)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
267 GPIOC_PDDR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
268 PORTC_PCR7 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
269 GPIOC_PSOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
270
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
271 // Setup LCD Reset pin (RST)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
272 // 0 - Reset, 1 - Normal Operation
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
273 // Start in normal mode (1)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
274 GPIOC_PDDR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
275 PORTC_PCR8 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
276 GPIOC_PSOR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
277
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
278 // Run LCD intialization sequence
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
279 LCD_initialize();
347
136e47478441 UARTConnect enumeration working!
Jacob Alexander <haata@kiibohd.com>
parents: 332
diff changeset
280
136e47478441 UARTConnect enumeration working!
Jacob Alexander <haata@kiibohd.com>
parents: 332
diff changeset
281 // Setup Backlight
136e47478441 UARTConnect enumeration working!
Jacob Alexander <haata@kiibohd.com>
parents: 332
diff changeset
282 // TODO Expose default settings
351
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
283 SIM_SCGC6 |= SIM_SCGC6_FTM0;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
284 FTM0_CNT = 0; // Reset counter
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
285
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
286 // PWM Period
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
287 // 16-bit maximum
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
288 FTM0_MOD = 0xFFFF;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
289
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
290 // Set FTM to PWM output - Edge Aligned, Low-true pulses
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
291 FTM0_C0SC = 0x24; // MSnB:MSnA = 10, ELSnB:ELSnA = 01
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
292 FTM0_C1SC = 0x24;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
293 FTM0_C2SC = 0x24;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
294
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
295 // Base FTM clock selection (72 MHz system clock)
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
296 // @ 0xFFFF period, 72 MHz / 0xFFFF * 2 = Actual period
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
297 // Higher pre-scalar will use the most power (also look the best)
351
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
298 // Pre-scalar calculations
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
299 // 0 - 72 MHz -> 549 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
300 // 1 - 36 MHz -> 275 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
301 // 2 - 18 MHz -> 137 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
302 // 3 - 9 MHz -> 69 Hz (Slightly visible flicker)
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
303 // 4 - 4 500 kHz -> 34 Hz (Visible flickering)
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
304 // 5 - 2 250 kHz -> 17 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
305 // 6 - 1 125 kHz -> 9 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
306 // 7 - 562 500 Hz -> 4 Hz
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
307 // Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
308 // Which will reduce the brightness range
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
309
351
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
310 // System clock, /w prescalar setting
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
311 FTM0_SC = FTM_SC_CLKS(1) | FTM_SC_PS( STLcdBacklightPrescalar_define );
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
312
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
313 // Red
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
314 FTM0_C0V = STLcdBacklightRed_define;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
315 PORTC_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(4);
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
316
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
317 // Green
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
318 FTM0_C1V = STLcdBacklightGreen_define;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
319 PORTC_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(4);
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
320
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
321 // Blue
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
322 FTM0_C2V = STLcdBacklightBlue_define;
38395a57cf52 Adding 16-bit brightness control to LCD backlight
Jacob Alexander <haata@kiibohd.com>
parents: 347
diff changeset
323 PORTC_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(4);
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
324 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
325
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
326
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
327 // LCD State processing loop
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
328 inline uint8_t LCD_scan()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
329 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
330 // NOP - Screen Refresh
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
331 //LCD_writeControlReg( 0xE3 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
332 return 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
333 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
334
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
335
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
336
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
337 // ----- CLI Command Functions -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
338
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
339 void cliFunc_lcdInit( char* args )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
340 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
341 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
342 LCD_initialize();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
343 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
344
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
345 void cliFunc_lcdTest( char* args )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
346 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
347 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
348
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
349 //LCD_initialize();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
350 // Test pattern
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
351 uint8_t pattern[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
352
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
353
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
354 uint8_t logo[] = {
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
355 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
356 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
357 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
359 };
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
360 //uint8_t pattern[] = { 0xFF, 0x00, 0x96, 0xFF, 0x00, 0xFF, 0x00 };
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
361
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
362 // Write to page D0
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
363 //LCD_writeDisplayReg( 0, pattern, sizeof( pattern ) );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
364
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
365 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
366 {
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
367 LCD_writeDisplayReg( page, &logo[page * LCD_PAGE_LEN], LCD_PAGE_LEN );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
368 }
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
369 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
370
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
371 void cliFunc_lcdCmd( char* args )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
372 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
373 char* curArgs;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
374 char* arg1Ptr;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
375 char* arg2Ptr = args;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
376
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
377 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
378
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
379 curArgs = arg2Ptr; // Use the previous 2nd arg pointer to separate the next arg from the list
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
380 CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
381
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
382 // No args
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
383 if ( *arg1Ptr == '\0' )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
384 return;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
385
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
386 // SPI Command
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
387 uint8_t cmd = (uint8_t)numToInt( arg1Ptr );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
388
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
389 curArgs = arg2Ptr; // Use the previous 2nd arg pointer to separate the next arg from the list
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
390 CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
391
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
392 // Single Arg
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
393 if ( *arg1Ptr == '\0' )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
394 goto cmd;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
395
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
396 // TODO Deal with a0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
397 cmd:
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
398 info_msg("Sending - ");
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
399 printHex( cmd );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
400 print( NL );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
401 LCD_writeControlReg( cmd );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
402 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
403
352
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
404 void cliFunc_lcdColor( char* args )
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
405 {
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
406 char* curArgs;
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
407 char* arg1Ptr;
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
408 char* arg2Ptr = args;
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
409
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
410 // Colors
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
411 uint16_t rgb[3]; // Red, Green, Blue
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
412
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
413 // Parse integers from 3 arguments
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
414 for ( uint8_t color = 0; color < 3; color++ )
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
415 {
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
416 curArgs = arg2Ptr;
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
417 CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
418
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
419 // Give up if not enough args given
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
420 if ( *arg1Ptr == '\0' )
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
421 return;
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
422
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
423 // Convert argument to integer
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
424 rgb[ color ] = numToInt( arg1Ptr );
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
425 }
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
426
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
427 // Set PWM channels
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
428 FTM0_C0V = rgb[0];
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
429 FTM0_C1V = rgb[1];
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
430 FTM0_C2V = rgb[2];
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
431
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
432 print( NL ); // No \r\n by default after the command is entered
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
433 }
99b567a3b1f2 Adding cli API call to set LCD backlight brightness (16 bit per channel)
Jacob Alexander <haata@kiibohd.com>
parents: 351
diff changeset
434