1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
31
37
40
41
42
47
57
58
63
64
65
66
67
68
69
70
71
72
73
74
75
80
81
82
96
118
119
120
121
122
123
124
125
126
127
134
135
142
143
/* ... */
#include "main.h"
Includes
#define KYBRD_FIRST_COLUMN (uint16_t)7
#define KYBRD_LAST_COLUMN (uint16_t)479
#define KYBRD_FIRST_LINE (uint8_t) 100
#define SMALL_FONT_COLUMN_WIDTH 8
#define SMALL_FONT_LINE_WIDTH 15
#define KYBRD_LAST_LINE (uint16_t)200
6 defines
Private define
extern HID_DEMO_StateMachine hid_demo;
extern uint32_t hid_demo_ready;
uint8_t KeybrdCharXpos = 0;
uint16_t KeybrdCharYpos = 0;
Private variables
static void USR_KEYBRD_Init(void);
Private function prototypes
/* ... */
void HID_KeyboardMenuProcess(void)
{
if(hid_demo.keyboard_state == HID_KEYBOARD_START)
{
LCD_LOG_ClearTextZone();
BSP_LCD_ClearStringLine(19);
USBH_HID_KeybdInit(&hUSBHost);
USR_KEYBRD_Init();
}if (hid_demo.keyboard_state == HID_KEYBOARD_START) { ... }
}{ ... }
/* ... */
static void USR_KEYBRD_Init(void)
{
LCD_LOG_ClearTextZone();
BSP_LCD_SetTextColor(LCD_COLOR_YELLOW);
BSP_LCD_DisplayStringAtLine(4, (uint8_t *)"Use Keyboard to type characters: ");
BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
KeybrdCharXpos = KYBRD_FIRST_LINE;
KeybrdCharYpos = KYBRD_FIRST_COLUMN;
}{ ... }
/* ... */
void USR_KEYBRD_ProcessData(uint8_t data)
{
if(data == '\n')
{
KeybrdCharYpos = KYBRD_FIRST_COLUMN;
KeybrdCharXpos += SMALL_FONT_LINE_WIDTH;
if(KeybrdCharXpos > KYBRD_LAST_LINE)
{
LCD_LOG_ClearTextZone();
KeybrdCharXpos = KYBRD_FIRST_LINE;
KeybrdCharYpos = KYBRD_FIRST_COLUMN;
}if (KeybrdCharXpos > KYBRD_LAST_LINE) { ... }
}if (data == '\n') { ... }
else if(data == '\r')
{
if(KeybrdCharYpos == KYBRD_FIRST_COLUMN)
{
if(KeybrdCharXpos == KYBRD_FIRST_LINE)
{
KeybrdCharYpos = KYBRD_FIRST_COLUMN;
}if (KeybrdCharXpos == KYBRD_FIRST_LINE) { ... }
else
{
KeybrdCharXpos -= SMALL_FONT_LINE_WIDTH;
KeybrdCharYpos = (KYBRD_LAST_COLUMN - SMALL_FONT_COLUMN_WIDTH);
}else { ... }
}if (KeybrdCharYpos == KYBRD_FIRST_COLUMN) { ... }
else
{
KeybrdCharYpos -= SMALL_FONT_COLUMN_WIDTH;
}else { ... }
BSP_LCD_DisplayChar(KeybrdCharYpos, KeybrdCharXpos, ' ');
}else if (data == '\r') { ... }
else
{
BSP_LCD_DisplayChar(KeybrdCharYpos, KeybrdCharXpos, data);
KeybrdCharYpos += SMALL_FONT_COLUMN_WIDTH;
if(KeybrdCharYpos == KYBRD_LAST_COLUMN)
{
KeybrdCharYpos = KYBRD_FIRST_COLUMN;
KeybrdCharXpos += SMALL_FONT_LINE_WIDTH;
}if (KeybrdCharYpos == KYBRD_LAST_COLUMN) { ... }
if(KeybrdCharXpos > KYBRD_LAST_LINE)
{
LCD_LOG_ClearTextZone();
KeybrdCharXpos = KYBRD_FIRST_LINE;
BSP_LCD_DisplayChar(KeybrdCharYpos,KeybrdCharXpos, data);
}if (KeybrdCharXpos > KYBRD_LAST_LINE) { ... }
}else { ... }
}{ ... }