annotate Scan/STLcd/lcd_scan.c @ 332:2e0074f75855

Adding example logo to the lcdtest and bmp conversion script.
author Jacob Alexander <haata@kiibohd.com>
date Sat, 18 Apr 2015 11:24:15 -0700
parents 9e31d92caf12
children 136e47478441
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>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24 #include <led.h>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 #include <print.h>
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 // Local Includes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 #include "lcd_scan.h"
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29
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 // ----- Defines -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34 #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
35 #define LCD_PAGE_LEN 128
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36
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 // ----- Macros -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
40
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
41 // Number of entries in the SPI0 TxFIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
42 #define SPI0_TxFIFO_CNT ( ( SPI0_SR & SPI_SR_TXCTR ) >> 12 )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
43
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 // ----- Structs -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
47
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
48 // ----- Function Declarations -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
49
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
50 // CLI Functions
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
51 void cliFunc_lcdCmd( char* args );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
52 void cliFunc_lcdInit( char* args );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
53 void cliFunc_lcdTest( char* args );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
54
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
55
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 // ----- Variables -----
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 // Full Toggle State
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
60 uint8_t cliFullToggleState = 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
61
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
62 // Normal/Reverse Toggle State
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
63 uint8_t cliNormalReverseToggleState = 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
64
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65 // Scan Module command dictionary
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
66 CLIDict_Entry( lcdCmd, "Send byte via SPI, second argument enables a0. Defaults to control." );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
67 CLIDict_Entry( lcdInit, "Re-initialize the LCD display." );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
68 CLIDict_Entry( lcdTest, "Test out the LCD display." );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
69
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
70 CLIDict_Def( lcdCLIDict, "ST LCD Module Commands" ) = {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
71 CLIDict_Item( lcdCmd ),
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
72 CLIDict_Item( lcdInit ),
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
73 CLIDict_Item( lcdTest ),
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
74 { 0, 0, 0 } // Null entry for dictionary end
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
75 };
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
76
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
77
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 // ----- Interrupt Functions -----
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 // ----- 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 inline void SPI_setup()
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 // Enable SPI internal clock
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88 SIM_SCGC6 |= SIM_SCGC6_SPI0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 // Setup MOSI (SOUT) and SCLK (SCK)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
91 PORTC_PCR6 = PORT_PCR_DSE | PORT_PCR_MUX(2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 PORTC_PCR5 = PORT_PCR_DSE | PORT_PCR_MUX(2);
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 SS (PCS)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 PORTC_PCR4 = PORT_PCR_DSE | PORT_PCR_MUX(2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97 // Master Mode, CS0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98 SPI0_MCR = SPI_MCR_MSTR | SPI_MCR_PCSIS(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
99
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
100 // DSPI Clock and Transfer Attributes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
101 // Frame Size: 8 bits
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 // MSB First
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103 // CLK Low by default
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104 SPI0_CTAR0 = SPI_CTAR_FMSZ(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 | SPI_CTAR_ASC(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 | SPI_CTAR_DT(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107 | SPI_CTAR_CSSCK(7)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
108 | SPI_CTAR_PBR(0) | SPI_CTAR_BR(7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
109 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
110
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
111 // Write buffer to SPI FIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
112 void SPI_write( uint8_t *buffer, uint8_t len )
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 for ( uint8_t byte = 0; byte < len; byte++ )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
116 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
117 // Wait for SPI TxFIFO to have 4 or fewer entries
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
118 while ( !( SPI0_SR & SPI_SR_TFFF ) )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
119 delayMicroseconds(10);
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 // Write byte to TxFIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
122 // CS0, CTAR0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
123 SPI0_PUSHR = ( buffer[ byte ] & 0xff ) | SPI_PUSHR_PCS(1);
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 // Indicate transfer has completed
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
126 while ( !( SPI0_SR & SPI_SR_TCF ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
127 SPI0_SR |= SPI_SR_TCF;
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 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
130
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 // Write to a control register
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 void LCD_writeControlReg( uint8_t byte )
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 // Wait for TxFIFO to be empt
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
135 while ( SPI0_TxFIFO_CNT != 0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
136
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
137 // Set A0 low to enter control register mode
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
138 GPIOC_PCOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
140 // Write byte to SPI FIFO
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141 SPI_write( &byte, 1 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
143 // Wait for TxFIFO to be empty
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
144 while ( SPI0_TxFIFO_CNT != 0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
145
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
146 // Make sure data has transferred
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
147 delayMicroseconds(10); // XXX Adjust if SPI speed changes
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
148
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
149 // Set A0 high to go back to display register mode
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
150 GPIOC_PSOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
151 }
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 // Write to display register
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
154 // Pages 0-7 normal display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
155 // Page 8 icon buffer
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
156 void LCD_writeDisplayReg( uint8_t page, uint8_t *buffer, uint8_t len )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
158 // Set the register page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
159 LCD_writeControlReg( 0xB0 | ( 0x0F & page ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
160
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
161 // Set display start line
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
162 LCD_writeControlReg( 0x40 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
163
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
164 // Reset Column Address
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
165 LCD_writeControlReg( 0x10 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
166 LCD_writeControlReg( 0x00 );
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
167
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
168 // Write buffer to SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
169 SPI_write( buffer, len );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
170 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
171
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172 inline void LCD_clearPage( uint8_t page )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
174 // Set the register page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
175 LCD_writeControlReg( 0xB0 | ( 0x0F & page ) );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
176
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
177 // Set display start line
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
178 LCD_writeControlReg( 0x40 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
179
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
180 // Reset Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181 LCD_writeControlReg( 0x10 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
182 LCD_writeControlReg( 0x00 );
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 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
185 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
186 uint8_t byte = 0;
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 // Write buffer to SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
189 SPI_write( &byte, 1 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
190 }
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 // Wait for TxFIFO to be empty
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
193 while ( SPI0_TxFIFO_CNT != 0 );
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 // Clear Display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
197 void LCD_clear()
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 // Setup each page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
200 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
201 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
202 LCD_clearPage( page );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
203 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
204
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
205 // Reset Page, Start Line, and Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
206 // Page
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
207 LCD_writeControlReg( 0xB0 );
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 // Start Line
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
210 LCD_writeControlReg( 0x40 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
211
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
212 // Reset Column Address
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
213 LCD_writeControlReg( 0x10 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
214 LCD_writeControlReg( 0x00 );
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
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
217 // Intialize display
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
218 void LCD_initialize()
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 // ADC Select (Normal)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
221 LCD_writeControlReg( 0xA0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
222
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
223 // LCD Off
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
224 LCD_writeControlReg( 0xAE );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
225
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
226 // COM Scan Output Direction
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
227 LCD_writeControlReg( 0xC0 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
228
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
229 // LCD Bias (1/6 bias)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
230 LCD_writeControlReg( 0xA2 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
231
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
232 // Power Supply Operating Mode (Internal Only)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
233 LCD_writeControlReg( 0x2F );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
234
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
235 // Internal Rb/Ra Ratio
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
236 LCD_writeControlReg( 0x26 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
237
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
238 // Reset
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
239 LCD_writeControlReg( 0xE2 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
240
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
241 // Electric volume mode set, and value
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
242 LCD_writeControlReg( 0x81 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
243 LCD_writeControlReg( 0x00 );
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 // LCD On
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
246 LCD_writeControlReg( 0xAF );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
247
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
248 // Clear Display RAM
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
249 LCD_clear();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
250 }
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 // Setup
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
253 inline void LCD_setup()
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 // Register Scan CLI dictionary
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
256 CLI_registerDictionary( lcdCLIDict, lcdCLIDictName );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
257
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
258 // Initialize SPI
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
259 SPI_setup();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
260
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 // Setup Register Control Signal (A0)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
263 // Start in display register mode (1)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
264 GPIOC_PDDR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
265 PORTC_PCR7 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
266 GPIOC_PSOR |= (1<<7);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
267
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
268 // Setup LCD Reset pin (RST)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
269 // 0 - Reset, 1 - Normal Operation
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
270 // Start in normal mode (1)
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
271 GPIOC_PDDR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
272 PORTC_PCR8 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
273 GPIOC_PSOR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
274
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
275 // Run LCD intialization sequence
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
276 LCD_initialize();
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
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
279
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
280 // LCD State processing loop
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
281 inline uint8_t LCD_scan()
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
282 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
283 // NOP - Screen Refresh
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
284 //LCD_writeControlReg( 0xE3 );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
285 return 0;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
286 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
287
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
288
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
289
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
290 // ----- CLI Command Functions -----
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
291
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
292 void cliFunc_lcdInit( char* args )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
293 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
294 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
295 LCD_initialize();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
296 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
297
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
298 void cliFunc_lcdTest( char* args )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
299 {
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
300 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
301
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
302 //LCD_initialize();
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
303 // Test pattern
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
304 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
305
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
306
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
307 uint8_t logo[] = {
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
308 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
309 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
310 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
311 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
312 };
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
313 //uint8_t pattern[] = { 0xFF, 0x00, 0x96, 0xFF, 0x00, 0xFF, 0x00 };
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
314
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
315 // 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
316 //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
317
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
318 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
319 {
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents: 331
diff changeset
320 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
321 }
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
322 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
323
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
324 void cliFunc_lcdCmd( char* args )
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 char* curArgs;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
327 char* arg1Ptr;
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
328 char* arg2Ptr = args;
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 print( NL ); // No \r\n by default after the command is entered
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
332 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
333 CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
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 // No args
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
336 if ( *arg1Ptr == '\0' )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
337 return;
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 // SPI Command
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
340 uint8_t cmd = (uint8_t)numToInt( arg1Ptr );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
341
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
342 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
343 CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
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 // Single Arg
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
346 if ( *arg1Ptr == '\0' )
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
347 goto cmd;
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 // TODO Deal with a0
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
350 cmd:
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
351 info_msg("Sending - ");
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
352 printHex( cmd );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
353 print( NL );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
354 LCD_writeControlReg( cmd );
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
355 }
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
356