mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-19 09:38:32 -04:00
Add FreeRTOS-Plus directory.
This commit is contained in:
parent
7bd5f21ad5
commit
f508a5f653
6798 changed files with 134949 additions and 19 deletions
205
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h
Normal file
205
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h
Normal file
|
@ -0,0 +1,205 @@
|
|||
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
|
||||
* File Name : lcd.h
|
||||
* Author : MCD Application Team
|
||||
* Version : VX.Y.Z
|
||||
* Date : mm/dd/yyyy
|
||||
* Description : This file contains all the functions prototypes for the
|
||||
* lcd firmware driver.
|
||||
********************************************************************************
|
||||
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
||||
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
||||
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
||||
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*******************************************************************************/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __LCD_H
|
||||
#define __LCD_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f10x_lib.h"
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* LCD Registers */
|
||||
#define R0 0x00
|
||||
#define R1 0x01
|
||||
#define R2 0x02
|
||||
#define R3 0x03
|
||||
#define R4 0x04
|
||||
#define R5 0x05
|
||||
#define R6 0x06
|
||||
#define R7 0x07
|
||||
#define R8 0x08
|
||||
#define R9 0x09
|
||||
#define R10 0x0A
|
||||
#define R12 0x0C
|
||||
#define R13 0x0D
|
||||
#define R14 0x0E
|
||||
#define R15 0x0F
|
||||
#define R16 0x10
|
||||
#define R17 0x11
|
||||
#define R18 0x12
|
||||
#define R19 0x13
|
||||
#define R20 0x14
|
||||
#define R21 0x15
|
||||
#define R22 0x16
|
||||
#define R23 0x17
|
||||
#define R24 0x18
|
||||
#define R25 0x19
|
||||
#define R26 0x1A
|
||||
#define R27 0x1B
|
||||
#define R28 0x1C
|
||||
#define R29 0x1D
|
||||
#define R30 0x1E
|
||||
#define R31 0x1F
|
||||
#define R32 0x20
|
||||
#define R33 0x21
|
||||
#define R34 0x22
|
||||
#define R36 0x24
|
||||
#define R37 0x25
|
||||
#define R40 0x28
|
||||
#define R41 0x29
|
||||
#define R43 0x2B
|
||||
#define R45 0x2D
|
||||
#define R48 0x30
|
||||
#define R49 0x31
|
||||
#define R50 0x32
|
||||
#define R51 0x33
|
||||
#define R52 0x34
|
||||
#define R53 0x35
|
||||
#define R54 0x36
|
||||
#define R55 0x37
|
||||
#define R56 0x38
|
||||
#define R57 0x39
|
||||
#define R59 0x3B
|
||||
#define R60 0x3C
|
||||
#define R61 0x3D
|
||||
#define R62 0x3E
|
||||
#define R63 0x3F
|
||||
#define R64 0x40
|
||||
#define R65 0x41
|
||||
#define R66 0x42
|
||||
#define R67 0x43
|
||||
#define R68 0x44
|
||||
#define R69 0x45
|
||||
#define R70 0x46
|
||||
#define R71 0x47
|
||||
#define R72 0x48
|
||||
#define R73 0x49
|
||||
#define R74 0x4A
|
||||
#define R75 0x4B
|
||||
#define R76 0x4C
|
||||
#define R77 0x4D
|
||||
#define R78 0x4E
|
||||
#define R79 0x4F
|
||||
#define R80 0x50
|
||||
#define R81 0x51
|
||||
#define R82 0x52
|
||||
#define R83 0x53
|
||||
#define R96 0x60
|
||||
#define R97 0x61
|
||||
#define R106 0x6A
|
||||
#define R118 0x76
|
||||
#define R128 0x80
|
||||
#define R129 0x81
|
||||
#define R130 0x82
|
||||
#define R131 0x83
|
||||
#define R132 0x84
|
||||
#define R133 0x85
|
||||
#define R134 0x86
|
||||
#define R135 0x87
|
||||
#define R136 0x88
|
||||
#define R137 0x89
|
||||
#define R139 0x8B
|
||||
#define R140 0x8C
|
||||
#define R141 0x8D
|
||||
#define R143 0x8F
|
||||
#define R144 0x90
|
||||
#define R145 0x91
|
||||
#define R146 0x92
|
||||
#define R147 0x93
|
||||
#define R148 0x94
|
||||
#define R149 0x95
|
||||
#define R150 0x96
|
||||
#define R151 0x97
|
||||
#define R152 0x98
|
||||
#define R153 0x99
|
||||
#define R154 0x9A
|
||||
#define R157 0x9D
|
||||
#define R192 0xC0
|
||||
#define R193 0xC1
|
||||
#define R229 0xE5
|
||||
|
||||
/* LCD Control pins */
|
||||
#define CtrlPin_NCS GPIO_Pin_2 /* PB.02 */
|
||||
|
||||
/* LCD color */
|
||||
#define White 0xFFFF
|
||||
#define Black 0x0000
|
||||
#define Grey 0xF7DE
|
||||
#define Blue 0x001F
|
||||
#define Blue2 0x051F
|
||||
#define Red 0xF800
|
||||
#define Magenta 0xF81F
|
||||
#define Green 0x07E0
|
||||
#define Cyan 0x7FFF
|
||||
#define Yellow 0xFFE0
|
||||
|
||||
#define Line0 0
|
||||
#define Line1 24
|
||||
#define Line2 48
|
||||
#define Line3 72
|
||||
#define Line4 96
|
||||
#define Line5 120
|
||||
#define Line6 144
|
||||
#define Line7 168
|
||||
#define Line8 192
|
||||
#define Line9 216
|
||||
|
||||
#define Horizontal 0x00
|
||||
#define Vertical 0x01
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
/*----- High layer function -----*/
|
||||
void LCD_Setup(void);
|
||||
void STM3210D_LCD_Init(void);
|
||||
void LCD_SetTextColor(vu16 Color);
|
||||
void LCD_SetBackColor(vu16 Color);
|
||||
void LCD_ClearLine(u8 Line);
|
||||
void LCD_Clear(u16 Color);
|
||||
void LCD_SetCursor(u8 Xpos, u16 Ypos);
|
||||
void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c);
|
||||
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);
|
||||
void LCD_DisplayStringLine(u8 Line, u8 *ptr);
|
||||
void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width);
|
||||
void LCD_WindowModeDisable(void);
|
||||
void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction);
|
||||
void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width);
|
||||
void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius);
|
||||
void LCD_DrawMonoPict(uc32 *Pict);
|
||||
//void LCD_DrawBMP(u32 BmpAddress);
|
||||
void LCD_DrawBMP(uc16 *BmpAddress);
|
||||
/*----- Medium layer function -----*/
|
||||
void LCD_nCS_StartByte(u8 Start_Byte);
|
||||
void LCD_WriteRegIndex(u8 LCD_Reg);
|
||||
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);
|
||||
void LCD_WriteRAM_Prepare(void);
|
||||
void LCD_WriteRAMWord(u16 RGB_Code);
|
||||
u16 LCD_ReadReg(u8 LCD_Reg);
|
||||
void LCD_WriteRAM(u16 RGB_Code);
|
||||
void LCD_PowerOn(void);
|
||||
void LCD_DisplayOn(void);
|
||||
void LCD_DisplayOff(void);
|
||||
|
||||
/*----- Low layer function -----*/
|
||||
void LCD_CtrlLinesConfig(void);
|
||||
void LCD_CtrlLinesWrite(GPIO_TypeDef* GPIOx, u16 CtrlPins, BitAction BitVal);
|
||||
void LCD_SPIConfig(void);
|
||||
|
||||
#endif /* __LCD_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
|
415
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h
Normal file
415
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h
Normal file
|
@ -0,0 +1,415 @@
|
|||
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
|
||||
* File Name : fonts.h
|
||||
* Author : MCD Application Team
|
||||
* Version : V1.1
|
||||
* Date : 11/26/2007
|
||||
* Description : This file contains all the LCD fonts size definition.
|
||||
********************************************************************************
|
||||
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
||||
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
||||
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
||||
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*******************************************************************************/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __FONTS_H
|
||||
#define __FONTS_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f10x_lib.h"
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* ASCII Table: each character is 16 column (16dots large)
|
||||
and 24 raw (24 dots high) */
|
||||
uc16 ASCII_Table[] =
|
||||
{
|
||||
/* Space ' ' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '!' */
|
||||
0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0000, 0x0000,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '"' */
|
||||
0x0000, 0x0000, 0x00CC, 0x00CC, 0x00CC, 0x00CC, 0x00CC, 0x00CC,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '#' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C60, 0x0C60,
|
||||
0x0C60, 0x0630, 0x0630, 0x1FFE, 0x1FFE, 0x0630, 0x0738, 0x0318,
|
||||
0x1FFE, 0x1FFE, 0x0318, 0x0318, 0x018C, 0x018C, 0x018C, 0x0000,
|
||||
/* '$' */
|
||||
0x0000, 0x0080, 0x03E0, 0x0FF8, 0x0E9C, 0x1C8C, 0x188C, 0x008C,
|
||||
0x0098, 0x01F8, 0x07E0, 0x0E80, 0x1C80, 0x188C, 0x188C, 0x189C,
|
||||
0x0CB8, 0x0FF0, 0x03E0, 0x0080, 0x0080, 0x0000, 0x0000, 0x0000,
|
||||
/* '%' */
|
||||
0x0000, 0x0000, 0x0000, 0x180E, 0x0C1B, 0x0C11, 0x0611, 0x0611,
|
||||
0x0311, 0x0311, 0x019B, 0x018E, 0x38C0, 0x6CC0, 0x4460, 0x4460,
|
||||
0x4430, 0x4430, 0x4418, 0x6C18, 0x380C, 0x0000, 0x0000, 0x0000,
|
||||
/* '&' */
|
||||
0x0000, 0x01E0, 0x03F0, 0x0738, 0x0618, 0x0618, 0x0330, 0x01F0,
|
||||
0x00F0, 0x00F8, 0x319C, 0x330E, 0x1E06, 0x1C06, 0x1C06, 0x3F06,
|
||||
0x73FC, 0x21F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ''' */
|
||||
0x0000, 0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '(' */
|
||||
0x0000, 0x0200, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x0060, 0x0060,
|
||||
0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030,
|
||||
0x0060, 0x0060, 0x00C0, 0x00C0, 0x0180, 0x0300, 0x0200, 0x0000,
|
||||
/* ')' */
|
||||
0x0000, 0x0020, 0x0060, 0x00C0, 0x0180, 0x0180, 0x0300, 0x0300,
|
||||
0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600,
|
||||
0x0300, 0x0300, 0x0180, 0x0180, 0x00C0, 0x0060, 0x0020, 0x0000,
|
||||
/* '*' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
|
||||
0x06D8, 0x07F8, 0x01E0, 0x0330, 0x0738, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '+' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x3FFC, 0x3FFC, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ',' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0180, 0x0180, 0x0100, 0x0100, 0x0080, 0x0000, 0x0000,
|
||||
/* '-' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x07E0, 0x07E0, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '.' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '/' */
|
||||
0x0000, 0x0C00, 0x0C00, 0x0600, 0x0600, 0x0600, 0x0300, 0x0300,
|
||||
0x0300, 0x0380, 0x0180, 0x0180, 0x0180, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x0060, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '0' */
|
||||
0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C18, 0x180C, 0x180C, 0x180C,
|
||||
0x180C, 0x180C, 0x180C, 0x180C, 0x180C, 0x180C, 0x0C18, 0x0E38,
|
||||
0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '1' */
|
||||
0x0000, 0x0100, 0x0180, 0x01C0, 0x01F0, 0x0198, 0x0188, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '2' */
|
||||
0x0000, 0x03E0, 0x0FF8, 0x0C18, 0x180C, 0x180C, 0x1800, 0x1800,
|
||||
0x0C00, 0x0600, 0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018,
|
||||
0x1FFC, 0x1FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '3' */
|
||||
0x0000, 0x01E0, 0x07F8, 0x0E18, 0x0C0C, 0x0C0C, 0x0C00, 0x0600,
|
||||
0x03C0, 0x07C0, 0x0C00, 0x1800, 0x1800, 0x180C, 0x180C, 0x0C18,
|
||||
0x07F8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '4' */
|
||||
0x0000, 0x0C00, 0x0E00, 0x0F00, 0x0F00, 0x0D80, 0x0CC0, 0x0C60,
|
||||
0x0C60, 0x0C30, 0x0C18, 0x0C0C, 0x3FFC, 0x3FFC, 0x0C00, 0x0C00,
|
||||
0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '5' */
|
||||
0x0000, 0x0FF8, 0x0FF8, 0x0018, 0x0018, 0x000C, 0x03EC, 0x07FC,
|
||||
0x0E1C, 0x1C00, 0x1800, 0x1800, 0x1800, 0x180C, 0x0C1C, 0x0E18,
|
||||
0x07F8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '6' */
|
||||
0x0000, 0x07C0, 0x0FF0, 0x1C38, 0x1818, 0x0018, 0x000C, 0x03CC,
|
||||
0x0FEC, 0x0E3C, 0x1C1C, 0x180C, 0x180C, 0x180C, 0x1C18, 0x0E38,
|
||||
0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '7' */
|
||||
0x0000, 0x1FFC, 0x1FFC, 0x0C00, 0x0600, 0x0600, 0x0300, 0x0380,
|
||||
0x0180, 0x01C0, 0x00C0, 0x00E0, 0x0060, 0x0060, 0x0070, 0x0030,
|
||||
0x0030, 0x0030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '8' */
|
||||
0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C18, 0x0C18, 0x0C18, 0x0638,
|
||||
0x07F0, 0x07F0, 0x0C18, 0x180C, 0x180C, 0x180C, 0x180C, 0x0C38,
|
||||
0x0FF8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '9' */
|
||||
0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C1C, 0x180C, 0x180C, 0x180C,
|
||||
0x1C1C, 0x1E38, 0x1BF8, 0x19E0, 0x1800, 0x0C00, 0x0C00, 0x0E1C,
|
||||
0x07F8, 0x01F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ':' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ';' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0180, 0x0180, 0x0100, 0x0100, 0x0080, 0x0000, 0x0000, 0x0000,
|
||||
/* '<' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1000, 0x1C00, 0x0F80, 0x03E0, 0x00F8, 0x0018, 0x00F8, 0x03E0,
|
||||
0x0F80, 0x1C00, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '=' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1FF8, 0x0000, 0x0000, 0x0000, 0x1FF8, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '>' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0008, 0x0038, 0x01F0, 0x07C0, 0x1F00, 0x1800, 0x1F00, 0x07C0,
|
||||
0x01F0, 0x0038, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '?' */
|
||||
0x0000, 0x03E0, 0x0FF8, 0x0C18, 0x180C, 0x180C, 0x1800, 0x0C00,
|
||||
0x0600, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x00C0, 0x0000, 0x0000,
|
||||
0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '@' */
|
||||
0x0000, 0x0000, 0x07E0, 0x1818, 0x2004, 0x29C2, 0x4A22, 0x4411,
|
||||
0x4409, 0x4409, 0x4409, 0x2209, 0x1311, 0x0CE2, 0x4002, 0x2004,
|
||||
0x1818, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'A' */
|
||||
0x0000, 0x0380, 0x0380, 0x06C0, 0x06C0, 0x06C0, 0x0C60, 0x0C60,
|
||||
0x1830, 0x1830, 0x1830, 0x3FF8, 0x3FF8, 0x701C, 0x600C, 0x600C,
|
||||
0xC006, 0xC006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'B' */
|
||||
0x0000, 0x03FC, 0x0FFC, 0x0C0C, 0x180C, 0x180C, 0x180C, 0x0C0C,
|
||||
0x07FC, 0x0FFC, 0x180C, 0x300C, 0x300C, 0x300C, 0x300C, 0x180C,
|
||||
0x1FFC, 0x07FC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'C' */
|
||||
0x0000, 0x07C0, 0x1FF0, 0x3838, 0x301C, 0x700C, 0x6006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x6006, 0x700C, 0x301C,
|
||||
0x1FF0, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'D' */
|
||||
0x0000, 0x03FE, 0x0FFE, 0x0E06, 0x1806, 0x1806, 0x3006, 0x3006,
|
||||
0x3006, 0x3006, 0x3006, 0x3006, 0x3006, 0x1806, 0x1806, 0x0E06,
|
||||
0x0FFE, 0x03FE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'E' */
|
||||
0x0000, 0x3FFC, 0x3FFC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
|
||||
0x1FFC, 0x1FFC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
|
||||
0x3FFC, 0x3FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'F' */
|
||||
0x0000, 0x3FF8, 0x3FF8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
|
||||
0x1FF8, 0x1FF8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
|
||||
0x0018, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'G' */
|
||||
0x0000, 0x0FE0, 0x3FF8, 0x783C, 0x600E, 0xE006, 0xC007, 0x0003,
|
||||
0x0003, 0xFE03, 0xFE03, 0xC003, 0xC007, 0xC006, 0xC00E, 0xF03C,
|
||||
0x3FF8, 0x0FE0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'H' */
|
||||
0x0000, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
|
||||
0x3FFC, 0x3FFC, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
|
||||
0x300C, 0x300C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'I' */
|
||||
0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'J' */
|
||||
0x0000, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600,
|
||||
0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0618, 0x0618, 0x0738,
|
||||
0x03F0, 0x01E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'K' */
|
||||
0x0000, 0x3006, 0x1806, 0x0C06, 0x0606, 0x0306, 0x0186, 0x00C6,
|
||||
0x0066, 0x0076, 0x00DE, 0x018E, 0x0306, 0x0606, 0x0C06, 0x1806,
|
||||
0x3006, 0x6006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'L' */
|
||||
0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
|
||||
0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
|
||||
0x1FF8, 0x1FF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'M' */
|
||||
0x0000, 0xE00E, 0xF01E, 0xF01E, 0xF01E, 0xD836, 0xD836, 0xD836,
|
||||
0xD836, 0xCC66, 0xCC66, 0xCC66, 0xC6C6, 0xC6C6, 0xC6C6, 0xC6C6,
|
||||
0xC386, 0xC386, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'N' */
|
||||
0x0000, 0x300C, 0x301C, 0x303C, 0x303C, 0x306C, 0x306C, 0x30CC,
|
||||
0x30CC, 0x318C, 0x330C, 0x330C, 0x360C, 0x360C, 0x3C0C, 0x3C0C,
|
||||
0x380C, 0x300C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'O' */
|
||||
0x0000, 0x07E0, 0x1FF8, 0x381C, 0x700E, 0x6006, 0xC003, 0xC003,
|
||||
0xC003, 0xC003, 0xC003, 0xC003, 0xC003, 0x6006, 0x700E, 0x381C,
|
||||
0x1FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'P' */
|
||||
0x0000, 0x0FFC, 0x1FFC, 0x380C, 0x300C, 0x300C, 0x300C, 0x300C,
|
||||
0x180C, 0x1FFC, 0x07FC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
|
||||
0x000C, 0x000C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'Q' */
|
||||
0x0000, 0x07E0, 0x1FF8, 0x381C, 0x700E, 0x6006, 0xE003, 0xC003,
|
||||
0xC003, 0xC003, 0xC003, 0xC003, 0xE007, 0x6306, 0x3F0E, 0x3C1C,
|
||||
0x3FF8, 0xF7E0, 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'R' */
|
||||
0x0000, 0x0FFE, 0x1FFE, 0x3806, 0x3006, 0x3006, 0x3006, 0x3806,
|
||||
0x1FFE, 0x07FE, 0x0306, 0x0606, 0x0C06, 0x1806, 0x1806, 0x3006,
|
||||
0x3006, 0x6006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'S' */
|
||||
0x0000, 0x03E0, 0x0FF8, 0x0C1C, 0x180C, 0x180C, 0x000C, 0x001C,
|
||||
0x03F8, 0x0FE0, 0x1E00, 0x3800, 0x3006, 0x3006, 0x300E, 0x1C1C,
|
||||
0x0FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'T' */
|
||||
0x0000, 0x7FFE, 0x7FFE, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'U' */
|
||||
0x0000, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
|
||||
0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x1818,
|
||||
0x1FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'V' */
|
||||
0x0000, 0x6003, 0x3006, 0x3006, 0x3006, 0x180C, 0x180C, 0x180C,
|
||||
0x0C18, 0x0C18, 0x0E38, 0x0630, 0x0630, 0x0770, 0x0360, 0x0360,
|
||||
0x01C0, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'W' */
|
||||
0x0000, 0x6003, 0x61C3, 0x61C3, 0x61C3, 0x3366, 0x3366, 0x3366,
|
||||
0x3366, 0x3366, 0x3366, 0x1B6C, 0x1B6C, 0x1B6C, 0x1A2C, 0x1E3C,
|
||||
0x0E38, 0x0E38, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'X' */
|
||||
0x0000, 0xE00F, 0x700C, 0x3018, 0x1830, 0x0C70, 0x0E60, 0x07C0,
|
||||
0x0380, 0x0380, 0x03C0, 0x06E0, 0x0C70, 0x1C30, 0x1818, 0x300C,
|
||||
0x600E, 0xE007, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'Y' */
|
||||
0x0000, 0xC003, 0x6006, 0x300C, 0x381C, 0x1838, 0x0C30, 0x0660,
|
||||
0x07E0, 0x03C0, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'Z' */
|
||||
0x0000, 0x7FFC, 0x7FFC, 0x6000, 0x3000, 0x1800, 0x0C00, 0x0600,
|
||||
0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018, 0x000C, 0x0006,
|
||||
0x7FFE, 0x7FFE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '[' */
|
||||
0x0000, 0x03E0, 0x03E0, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060,
|
||||
0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060,
|
||||
0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x03E0, 0x03E0, 0x0000,
|
||||
/* '\' */
|
||||
0x0000, 0x0030, 0x0030, 0x0060, 0x0060, 0x0060, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x01C0, 0x0180, 0x0180, 0x0180, 0x0300, 0x0300, 0x0300,
|
||||
0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ']' */
|
||||
0x0000, 0x03E0, 0x03E0, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300,
|
||||
0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300,
|
||||
0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x03E0, 0x03E0, 0x0000,
|
||||
/* '^' */
|
||||
0x0000, 0x0000, 0x01C0, 0x01C0, 0x0360, 0x0360, 0x0360, 0x0630,
|
||||
0x0630, 0x0C18, 0x0C18, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '_' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* ''' */
|
||||
0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'a' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03F0, 0x07F8,
|
||||
0x0C1C, 0x0C0C, 0x0F00, 0x0FF0, 0x0CF8, 0x0C0C, 0x0C0C, 0x0F1C,
|
||||
0x0FF8, 0x18F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'b' */
|
||||
0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x03D8, 0x0FF8,
|
||||
0x0C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C38,
|
||||
0x0FF8, 0x03D8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'c' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x07F0,
|
||||
0x0E30, 0x0C18, 0x0018, 0x0018, 0x0018, 0x0018, 0x0C18, 0x0E30,
|
||||
0x07F0, 0x03C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'd' */
|
||||
0x0000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1BC0, 0x1FF0,
|
||||
0x1C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C30,
|
||||
0x1FF0, 0x1BC0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'e' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x0FF0,
|
||||
0x0C30, 0x1818, 0x1FF8, 0x1FF8, 0x0018, 0x0018, 0x1838, 0x1C30,
|
||||
0x0FF0, 0x07C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'f' */
|
||||
0x0000, 0x0F80, 0x0FC0, 0x00C0, 0x00C0, 0x00C0, 0x07F0, 0x07F0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'g' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0DE0, 0x0FF8,
|
||||
0x0E18, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0E18,
|
||||
0x0FF8, 0x0DE0, 0x0C00, 0x0C0C, 0x061C, 0x07F8, 0x01F0, 0x0000,
|
||||
/* 'h' */
|
||||
0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x07D8, 0x0FF8,
|
||||
0x1C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818,
|
||||
0x1818, 0x1818, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'i' */
|
||||
0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'j' */
|
||||
0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00F8, 0x0078, 0x0000,
|
||||
/* 'k' */
|
||||
0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x0C0C, 0x060C,
|
||||
0x030C, 0x018C, 0x00CC, 0x006C, 0x00FC, 0x019C, 0x038C, 0x030C,
|
||||
0x060C, 0x0C0C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'l' */
|
||||
0x0000, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'm' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3C7C, 0x7EFF,
|
||||
0xE3C7, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183,
|
||||
0xC183, 0xC183, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'n' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0798, 0x0FF8,
|
||||
0x1C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818,
|
||||
0x1818, 0x1818, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'o' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x0FF0,
|
||||
0x0C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C30,
|
||||
0x0FF0, 0x03C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'p' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03D8, 0x0FF8,
|
||||
0x0C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C38,
|
||||
0x0FF8, 0x03D8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0000,
|
||||
/* 'q' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1BC0, 0x1FF0,
|
||||
0x1C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C30,
|
||||
0x1FF0, 0x1BC0, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x0000,
|
||||
/* 'r' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07B0, 0x03F0,
|
||||
0x0070, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030,
|
||||
0x0030, 0x0030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 's' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03E0, 0x03F0,
|
||||
0x0E38, 0x0C18, 0x0038, 0x03F0, 0x07C0, 0x0C00, 0x0C18, 0x0E38,
|
||||
0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 't' */
|
||||
0x0000, 0x0000, 0x0080, 0x00C0, 0x00C0, 0x00C0, 0x07F0, 0x07F0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x07C0, 0x0780, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'u' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1818, 0x1818,
|
||||
0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C38,
|
||||
0x1FF0, 0x19E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'v' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x180C, 0x0C18,
|
||||
0x0C18, 0x0C18, 0x0630, 0x0630, 0x0630, 0x0360, 0x0360, 0x0360,
|
||||
0x01C0, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'w' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41C1, 0x41C1,
|
||||
0x61C3, 0x6363, 0x6363, 0x6363, 0x3636, 0x3636, 0x3636, 0x1C1C,
|
||||
0x1C1C, 0x1C1C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'x' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x381C, 0x1C38,
|
||||
0x0C30, 0x0660, 0x0360, 0x0360, 0x0360, 0x0360, 0x0660, 0x0C30,
|
||||
0x1C38, 0x381C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* 'y' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3018, 0x1830,
|
||||
0x1830, 0x1870, 0x0C60, 0x0C60, 0x0CE0, 0x06C0, 0x06C0, 0x0380,
|
||||
0x0380, 0x0380, 0x0180, 0x0180, 0x01C0, 0x00F0, 0x0070, 0x0000,
|
||||
/* 'z' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1FFC, 0x1FFC,
|
||||
0x0C00, 0x0600, 0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018,
|
||||
0x1FFC, 0x1FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* '{' */
|
||||
0x0000, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x0060, 0x0060, 0x0030, 0x0060, 0x0040, 0x00C0, 0x00C0,
|
||||
0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x0180, 0x0300, 0x0000, 0x0000,
|
||||
/* '|' */
|
||||
0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0000,
|
||||
/* '}' */
|
||||
0x0000, 0x0060, 0x00C0, 0x01C0, 0x0180, 0x0180, 0x0180, 0x0180,
|
||||
0x0180, 0x0300, 0x0300, 0x0600, 0x0300, 0x0100, 0x0180, 0x0180,
|
||||
0x0180, 0x0180, 0x0180, 0x0180, 0x00C0, 0x0060, 0x0000, 0x0000,
|
||||
/* '~' */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x10F0, 0x1FF8, 0x0F08, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
};
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
#endif /* __FONTS_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
|
972
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c
Normal file
972
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c
Normal file
|
@ -0,0 +1,972 @@
|
|||
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
|
||||
* File Name : lcd.c
|
||||
* Author : MCD Application Team
|
||||
* Version : VX.Y.Z
|
||||
* Date : mm/dd/yyyy
|
||||
* Description : This file includes the LCD driver for AM-240320L8TNQW00H
|
||||
* (LCD_ILI9320) Liquid Crystal Display Module of STM3210D-EVAL
|
||||
* board.
|
||||
********************************************************************************
|
||||
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
||||
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
||||
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
||||
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*******************************************************************************/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <stm32f10x_conf.h>
|
||||
#include <stm32f10x_lib.h>
|
||||
|
||||
#include "STM3210D_lcd.h"
|
||||
#include "fonts.h"
|
||||
|
||||
extern void timerDly(unsigned int);
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
#define START_BYTE 0x70
|
||||
#define SET_INDEX 0x00
|
||||
#define READ_STATUS 0x01
|
||||
#define LCD_WRITE_REG 0x02
|
||||
#define LCD_READ_REG 0x03
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Global variables to set the written text color */
|
||||
static vu16 TextColor = 0x0000, BackColor = 0xFFFF;
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* Private functions ---------------------------------------------------------*/
|
||||
|
||||
#define timerDly( x ) vTaskDelay( ( x * 10 ) / portTICK_RATE_MS );
|
||||
#define vBlockToWait( x )
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_Setup
|
||||
* Description : Setups the LCD.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_Setup(void)
|
||||
{
|
||||
/* Configure the LCD Control pins --------------------------------------------*/
|
||||
LCD_CtrlLinesConfig();
|
||||
|
||||
/* Configure the SPI3 interface ----------------------------------------------*/
|
||||
LCD_SPIConfig();
|
||||
|
||||
timerDly(5); /* Delay 50 ms */
|
||||
/* Start Initial Sequence ------------------------------------------------*/
|
||||
LCD_WriteReg(R229, 0x8000); /* Set the internal vcore voltage */
|
||||
LCD_WriteReg(R0, 0x0001); /* Start internal OSC. */
|
||||
LCD_WriteReg(R1, 0x0100); /* set SS and SM bit */
|
||||
LCD_WriteReg(R2, 0x0700); /* set 1 line inversion */
|
||||
LCD_WriteReg(R3, 0x1030); /* set GRAM write direction and BGR=1. */
|
||||
LCD_WriteReg(R4, 0x0000); /* Resize register */
|
||||
LCD_WriteReg(R8, 0x0202); /* set the back porch and front porch */
|
||||
LCD_WriteReg(R9, 0x0000); /* set non-display area refresh cycle ISC[3:0] */
|
||||
LCD_WriteReg(R10, 0x0000); /* FMARK function */
|
||||
LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
|
||||
LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
|
||||
LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */
|
||||
|
||||
/* Power On sequence -----------------------------------------------------*/
|
||||
LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
||||
LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
||||
LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
|
||||
LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
|
||||
timerDly(20); /* Dis-charge capacitor power voltage (200ms) */
|
||||
LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
||||
LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
||||
timerDly(5); /* Delay 50 ms */
|
||||
LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
|
||||
timerDly(5); /* Delay 50 ms */
|
||||
LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
|
||||
LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
|
||||
timerDly(5); /* Delay 50 ms */
|
||||
LCD_WriteReg(R32, 0x0000); /* GRAM horizontal Address */
|
||||
LCD_WriteReg(R33, 0x0000); /* GRAM Vertical Address */
|
||||
|
||||
/* Adjust the Gamma Curve ------------------------------------------------*/
|
||||
LCD_WriteReg(R48, 0x0006);
|
||||
LCD_WriteReg(R49, 0x0101);
|
||||
LCD_WriteReg(R50, 0x0003);
|
||||
LCD_WriteReg(R53, 0x0106);
|
||||
LCD_WriteReg(R54, 0x0b02);
|
||||
LCD_WriteReg(R55, 0x0302);
|
||||
LCD_WriteReg(R56, 0x0707);
|
||||
LCD_WriteReg(R57, 0x0007);
|
||||
LCD_WriteReg(R60, 0x0600);
|
||||
LCD_WriteReg(R61, 0x020b);
|
||||
|
||||
/* Set GRAM area ---------------------------------------------------------*/
|
||||
LCD_WriteReg(R80, 0x0000); /* Horizontal GRAM Start Address */
|
||||
LCD_WriteReg(R81, 0x00EF); /* Horizontal GRAM End Address */
|
||||
LCD_WriteReg(R82, 0x0000); /* Vertical GRAM Start Address */
|
||||
LCD_WriteReg(R83, 0x013F); /* Vertical GRAM End Address */
|
||||
|
||||
LCD_WriteReg(R96, 0x2700); /* Gate Scan Line */
|
||||
LCD_WriteReg(R97, 0x0001); /* NDL,VLE, REV */
|
||||
LCD_WriteReg(R106, 0x0000); /* set scrolling line */
|
||||
|
||||
/* Partial Display Control -----------------------------------------------*/
|
||||
LCD_WriteReg(R128, 0x0000);
|
||||
LCD_WriteReg(R129, 0x0000);
|
||||
LCD_WriteReg(R130, 0x0000);
|
||||
LCD_WriteReg(R131, 0x0000);
|
||||
LCD_WriteReg(R132, 0x0000);
|
||||
LCD_WriteReg(R133, 0x0000);
|
||||
|
||||
/* Panel Control ---------------------------------------------------------*/
|
||||
LCD_WriteReg(R144, 0x0010);
|
||||
LCD_WriteReg(R146, 0x0000);
|
||||
LCD_WriteReg(R147, 0x0003);
|
||||
LCD_WriteReg(R149, 0x0110);
|
||||
LCD_WriteReg(R151, 0x0000);
|
||||
LCD_WriteReg(R152, 0x0000);
|
||||
|
||||
/* Set GRAM write direction and BGR = 1 */
|
||||
/* I/D=01 (Horizontal : increment, Vertical : decrement) */
|
||||
/* AM=1 (address is updated in vertical writing direction) */
|
||||
LCD_WriteReg(R3, 0x1018);
|
||||
|
||||
LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : STM3210D_LCD_Init
|
||||
* Description : Initializes the LCD.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void STM3210D_LCD_Init(void)
|
||||
{
|
||||
/* Setups the LCD */
|
||||
LCD_Setup();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_SetTextColor
|
||||
* Description : Sets the Text color.
|
||||
* Input : - Color: specifies the Text color code RGB(5-6-5).
|
||||
* Output : - TextColor: Text color global variable used by LCD_DrawChar
|
||||
* and LCD_DrawPicture functions.
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_SetTextColor(vu16 Color)
|
||||
{
|
||||
TextColor = Color;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_SetBackColor
|
||||
* Description : Sets the Background color.
|
||||
* Input : - Color: specifies the Background color code RGB(5-6-5).
|
||||
* Output : - BackColor: Background color global variable used by
|
||||
* LCD_DrawChar and LCD_DrawPicture functions.
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_SetBackColor(vu16 Color)
|
||||
{
|
||||
BackColor = Color;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_ClearLine
|
||||
* Description : Clears the selected line.
|
||||
* Input : - Line: the Line to be cleared.
|
||||
* This parameter can be one of the following values:
|
||||
* - Linex: where x can be 0..9
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_ClearLine(u8 Line)
|
||||
{
|
||||
LCD_DisplayStringLine(Line, ( unsigned char * ) " ");
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_Clear
|
||||
* Description : Clears the hole LCD.
|
||||
* Input : Color: the color of the background.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_Clear(u16 Color)
|
||||
{
|
||||
vu32 index = 0;
|
||||
|
||||
LCD_SetCursor(0x00, 0x013F);
|
||||
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
|
||||
for(index = 0; index < 76800; index++)
|
||||
{
|
||||
LCD_WriteRAM(Color);
|
||||
}
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_SetCursor
|
||||
* Description : Sets the cursor position.
|
||||
* Input : - Xpos: specifies the X position.
|
||||
* - Ypos: specifies the Y position.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_SetCursor(u8 Xpos, u16 Ypos)
|
||||
{
|
||||
LCD_WriteReg(R32, Xpos);
|
||||
LCD_WriteReg(R33, Ypos);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawChar
|
||||
* Description : Draws a character on LCD.
|
||||
* Input : - Xpos: the Line where to display the character shape.
|
||||
* This parameter can be one of the following values:
|
||||
* - Linex: where x can be 0..9
|
||||
* - Ypos: start column address.
|
||||
* - c: pointer to the character data.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c)
|
||||
{
|
||||
vu32 index = 0, i = 0;
|
||||
vu8 Xaddress = 0;
|
||||
|
||||
Xaddress = Xpos;
|
||||
|
||||
LCD_SetCursor(Xaddress, Ypos);
|
||||
|
||||
for(index = 0; index < 24; index++)
|
||||
{
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
|
||||
for(i = 0; i < 16; i++)
|
||||
{
|
||||
if((c[index] & (1 << i)) == 0x00)
|
||||
{
|
||||
LCD_WriteRAM(BackColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
LCD_WriteRAM(TextColor);
|
||||
}
|
||||
}
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
Xaddress++;
|
||||
LCD_SetCursor(Xaddress, Ypos);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DisplayChar
|
||||
* Description : Displays one character (16dots width, 24dots height).
|
||||
* Input : - Line: the Line where to display the character shape .
|
||||
* This parameter can be one of the following values:
|
||||
* - Linex: where x can be 0..9
|
||||
* - Column: start column address.
|
||||
* - Ascii: character ascii code, must be between 0x20 and 0x7E.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)
|
||||
{
|
||||
Ascii -= 32;
|
||||
LCD_DrawChar(Line, Column, &ASCII_Table[Ascii * 24]);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DisplayStringLine
|
||||
* Description : Displays a maximum of 20 char on the LCD.
|
||||
* Input : - Line: the Line where to display the character shape .
|
||||
* This parameter can be one of the following values:
|
||||
* - Linex: where x can be 0..9
|
||||
* - *ptr: pointer to string to display on LCD.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DisplayStringLine(u8 Line, u8 *ptr)
|
||||
{
|
||||
vu32 i = 0;
|
||||
vu16 refcolumn = 319;
|
||||
|
||||
/* Send the string character by character on lCD */
|
||||
while ((*ptr != 0) & (i < 20))
|
||||
{
|
||||
/* Display one character on LCD */
|
||||
LCD_DisplayChar(Line, refcolumn, *ptr);
|
||||
/* Decrement the column position by 16 */
|
||||
refcolumn -= 16;
|
||||
/* Point on the next character */
|
||||
ptr++;
|
||||
/* Increment the character counter */
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_SetDisplayWindow
|
||||
* Description : Sets a display window
|
||||
* Input : - Xpos: specifies the X buttom left position.
|
||||
* - Ypos: specifies the Y buttom left position.
|
||||
* - Height: display window height.
|
||||
* - Width: display window width.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
|
||||
{
|
||||
/* Horizontal GRAM Start Address */
|
||||
if(Xpos >= Height)
|
||||
{
|
||||
LCD_WriteReg(R80, (Xpos - Height + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
LCD_WriteReg(R80, 0);
|
||||
}
|
||||
/* Horizontal GRAM End Address */
|
||||
LCD_WriteReg(R81, Xpos);
|
||||
/* Vertical GRAM Start Address */
|
||||
if(Ypos >= Width)
|
||||
{
|
||||
LCD_WriteReg(R82, (Ypos - Width + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
LCD_WriteReg(R82, 0);
|
||||
}
|
||||
/* Vertical GRAM End Address */
|
||||
LCD_WriteReg(R83, Ypos);
|
||||
LCD_SetCursor(Xpos, Ypos);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WindowModeDisable
|
||||
* Description : Disables LCD Window mode.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WindowModeDisable(void)
|
||||
{
|
||||
LCD_SetDisplayWindow(239, 0x13F, 240, 320);
|
||||
LCD_WriteReg(R3, 0x1018);
|
||||
}
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawLine
|
||||
* Description : Displays a line.
|
||||
* Input : - Xpos: specifies the X position.
|
||||
* - Ypos: specifies the Y position.
|
||||
* - Length: line length.
|
||||
* - Direction: line direction.
|
||||
* This parameter can be one of the following values: Vertical
|
||||
* or Horizontal.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction)
|
||||
{
|
||||
u32 i = 0;
|
||||
|
||||
LCD_SetCursor(Xpos, Ypos);
|
||||
|
||||
if(Direction == Horizontal)
|
||||
{
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
|
||||
for(i = 0; i < Length; i++)
|
||||
{
|
||||
LCD_WriteRAM(TextColor);
|
||||
}
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0; i < Length; i++)
|
||||
{
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
Xpos++;
|
||||
LCD_SetCursor(Xpos, Ypos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawRect
|
||||
* Description : Displays a rectangle.
|
||||
* Input : - Xpos: specifies the X position.
|
||||
* - Ypos: specifies the Y position.
|
||||
* - Height: display rectangle height.
|
||||
* - Width: display rectangle width.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
|
||||
{
|
||||
LCD_DrawLine(Xpos, Ypos, Width, Horizontal);
|
||||
LCD_DrawLine((Xpos + Height), Ypos, Width, Horizontal);
|
||||
|
||||
LCD_DrawLine(Xpos, Ypos, Height, Vertical);
|
||||
LCD_DrawLine(Xpos, (Ypos - Width + 1), Height, Vertical);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawCircle
|
||||
* Description : Displays a circle.
|
||||
* Input : - Xpos: specifies the X position.
|
||||
* - Ypos: specifies the Y position.
|
||||
* - Height: display rectangle height.
|
||||
* - Width: display rectangle width.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius)
|
||||
{
|
||||
s32 D;/* Decision Variable */
|
||||
u32 CurX;/* Current X Value */
|
||||
u32 CurY;/* Current Y Value */
|
||||
|
||||
D = 3 - (Radius << 1);
|
||||
CurX = 0;
|
||||
CurY = Radius;
|
||||
|
||||
while (CurX <= CurY)
|
||||
{
|
||||
LCD_SetCursor(Xpos + CurX, Ypos + CurY);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos + CurX, Ypos - CurY);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos - CurX, Ypos + CurY);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos - CurX, Ypos - CurY);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos + CurY, Ypos + CurX);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos + CurY, Ypos - CurX);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos - CurY, Ypos + CurX);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
LCD_SetCursor(Xpos - CurY, Ypos - CurX);
|
||||
LCD_WriteRAMWord(TextColor);
|
||||
|
||||
if (D < 0)
|
||||
{
|
||||
D += (CurX << 2) + 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
D += ((CurX - CurY) << 2) + 10;
|
||||
CurY--;
|
||||
}
|
||||
CurX++;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawMonoPict
|
||||
* Description : Displays a monocolor picture.
|
||||
* Input : - Pict: pointer to the picture array.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawMonoPict(uc32 *Pict)
|
||||
{
|
||||
u32 index = 0, i = 0;
|
||||
|
||||
LCD_SetCursor(0, 319);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
|
||||
for(index = 0; index < 2400; index++)
|
||||
{
|
||||
for(i = 0; i < 32; i++)
|
||||
{
|
||||
if((Pict[index] & (1 << i)) == 0x00)
|
||||
{
|
||||
LCD_WriteRAM(BackColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
LCD_WriteRAM(TextColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
|
||||
}
|
||||
|
||||
///*******************************************************************************
|
||||
//* Function Name : LCD_DrawBMP
|
||||
//* Description : Displays a bitmap picture loaded in the SPI Flash.
|
||||
//* Input : - BmpAddress: Bmp picture address in the SPI Flash.
|
||||
//* Output : None
|
||||
//* Return : None
|
||||
//*******************************************************************************/
|
||||
//void LCD_DrawBMP(u32 BmpAddress)
|
||||
//{
|
||||
// u32 i = 0, size = 0;
|
||||
//
|
||||
// /* Read bitmap size */
|
||||
// SPI_FLASH_BufferRead((u8*)&size, BmpAddress + 2, 4);
|
||||
//
|
||||
// /* get bitmap data address offset */
|
||||
// SPI_FLASH_BufferRead((u8*)&i, BmpAddress + 10, 4);
|
||||
//
|
||||
// size = (size - i)/2;
|
||||
//
|
||||
// SPI_FLASH_StartReadSequence(BmpAddress + i);
|
||||
//
|
||||
// /* Disable SPI1 */
|
||||
// SPI_Cmd(SPI1, DISABLE);
|
||||
// /* SPI in 16-bit mode */
|
||||
// SPI_DataSizeConfig(SPI1, SPI_DataSize_16b);
|
||||
//
|
||||
// /* Enable SPI1 */
|
||||
// SPI_Cmd(SPI1, ENABLE);
|
||||
//
|
||||
// /* Set GRAM write direction and BGR = 1 */
|
||||
// /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
|
||||
// /* AM=1 (address is updated in vertical writing direction) */
|
||||
// LCD_WriteReg(R3, 0x1008);
|
||||
//
|
||||
// LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
//
|
||||
// /* Read bitmap data from SPI Flash and send them to LCD */
|
||||
// for(i = 0; i < size; i++)
|
||||
// {
|
||||
// LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
|
||||
// }
|
||||
//
|
||||
// LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
//
|
||||
// /* Deselect the FLASH: Chip Select high */
|
||||
// SPI_FLASH_CS_HIGH();
|
||||
//
|
||||
// /* Disable SPI1 */
|
||||
// SPI_Cmd(SPI1, DISABLE);
|
||||
// /* SPI in 8-bit mode */
|
||||
// SPI_DataSizeConfig(SPI1, SPI_DataSize_8b);
|
||||
//
|
||||
// /* Enable SPI1 */
|
||||
// SPI_Cmd(SPI1, ENABLE);
|
||||
//
|
||||
// /* Set GRAM write direction and BGR = 1 */
|
||||
// /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
|
||||
// /* AM = 1 (address is updated in vertical writing direction) */
|
||||
// LCD_WriteReg(R3, 0x1018);
|
||||
//}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DrawBMP
|
||||
* Description : Displays a bitmap picture loaded in the SPI Flash.
|
||||
* Input : - BmpAddress: Bmp picture address in the SPI Flash.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DrawBMP(uc16 *BmpAddress)
|
||||
{
|
||||
u32 i = 0, size = 0;
|
||||
|
||||
/* Read bitmap size */
|
||||
size = BmpAddress[1] | (BmpAddress[2] << 16);
|
||||
|
||||
/* get bitmap data address offset */
|
||||
i = BmpAddress[5] | (BmpAddress[6] << 16);
|
||||
|
||||
size = (size - i)/2;
|
||||
|
||||
BmpAddress += i/2;
|
||||
/* Set GRAM write direction and BGR = 1 */
|
||||
/* I/D=00 (Horizontal : decrement, Vertical : decrement) */
|
||||
/* AM=1 (address is updated in vertical writing direction) */
|
||||
LCD_WriteReg(R3, 0x1008);
|
||||
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
|
||||
/* Read bitmap data from SPI Flash and send them to LCD */
|
||||
for(i = 0; i < size; i++)
|
||||
{
|
||||
LCD_WriteRAM(BmpAddress[i]);
|
||||
}
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
|
||||
/* Set GRAM write direction and BGR = 1 */
|
||||
/* I/D = 01 (Horizontal : increment, Vertical : decrement) */
|
||||
/* AM = 1 (address is updated in vertical writing direction) */
|
||||
LCD_WriteReg(R3, 0x1018);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_nCS_StartByte
|
||||
* Description : Reset LCD control line(/CS) and Send Start-Byte
|
||||
* Input : - Start_Byte: the Start-Byte to be sent
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_nCS_StartByte(u8 Start_Byte)
|
||||
{
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
|
||||
|
||||
SPI_I2S_SendData(SPI3, Start_Byte);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WriteRegIndex
|
||||
* Description : Writes index to select the LCD register.
|
||||
* Input : - LCD_Reg: address of the selected register.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WriteRegIndex(u8 LCD_Reg)
|
||||
{
|
||||
/* Reset LCD control line(/CS) and Send Start-Byte */
|
||||
LCD_nCS_StartByte(START_BYTE | SET_INDEX);
|
||||
|
||||
/* Write 16-bit Reg Index (High Byte is 0) */
|
||||
SPI_I2S_SendData(SPI3, 0x00);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
SPI_I2S_SendData(SPI3, LCD_Reg);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_ReadReg
|
||||
* Description : Reads the selected LCD Register.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : LCD Register Value.
|
||||
*******************************************************************************/
|
||||
u16 LCD_ReadReg(u8 LCD_Reg)
|
||||
{
|
||||
vu16 tmp = 0;
|
||||
vu8 i = 0;
|
||||
|
||||
/* SPI3 prescaler: 4 */
|
||||
SPI3->CR1 &= 0xFFC7;
|
||||
SPI3->CR1 |= 0x0008;
|
||||
|
||||
/* Write 16-bit Index (then Read Reg) */
|
||||
LCD_WriteRegIndex(LCD_Reg);
|
||||
|
||||
/* Read 16-bit Reg */
|
||||
/* Reset LCD control line(/CS) and Send Start-Byte */
|
||||
LCD_nCS_StartByte(START_BYTE | LCD_READ_REG);
|
||||
|
||||
for(i = 0; i < 5; i++)
|
||||
{
|
||||
SPI_I2S_SendData(SPI3, 0xFF);
|
||||
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
/* One byte of invalid dummy data read after the start byte */
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_RXNE) == RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
SPI_I2S_ReceiveData(SPI3);
|
||||
}
|
||||
|
||||
SPI_I2S_SendData(SPI3, 0xFF);
|
||||
/* Read upper byte */
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
/* Read lower byte */
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_RXNE) == RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
tmp = SPI_I2S_ReceiveData(SPI3);
|
||||
|
||||
|
||||
SPI_I2S_SendData(SPI3, 0xFF);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
/* Read lower byte */
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_RXNE) == RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
tmp = ((tmp & 0xFF) << 8) | SPI_I2S_ReceiveData(SPI3);
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
|
||||
/* SPI3 prescaler: 2 */
|
||||
SPI3->CR1 &= 0xFFC7;
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WriteRAM_Prepare
|
||||
* Description : Prepare to write to the LCD RAM.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WriteRAM_Prepare(void)
|
||||
{
|
||||
LCD_WriteRegIndex(R34); /* Select GRAM Reg */
|
||||
|
||||
/* Reset LCD control line(/CS) and Send Start-Byte */
|
||||
LCD_nCS_StartByte(START_BYTE | LCD_WRITE_REG);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WriteRAMWord
|
||||
* Description : Writes 1 word to the LCD RAM.
|
||||
* Input : - RGB_Code: the pixel color in RGB mode (5-6-5).
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WriteRAMWord(u16 RGB_Code)
|
||||
{
|
||||
LCD_WriteRAM_Prepare();
|
||||
|
||||
LCD_WriteRAM(RGB_Code);
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WriteReg
|
||||
* Description : Writes to the selected LCD register.
|
||||
* Input : - LCD_Reg: address of the selected register.
|
||||
* - LCD_RegValue: value to write to the selected register.
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
|
||||
{
|
||||
/* Write 16-bit Index (then Write Reg) */
|
||||
LCD_WriteRegIndex(LCD_Reg);
|
||||
|
||||
/* Write 16-bit Reg */
|
||||
/* Reset LCD control line(/CS) and Send Start-Byte */
|
||||
LCD_nCS_StartByte(START_BYTE | LCD_WRITE_REG);
|
||||
|
||||
SPI_I2S_SendData(SPI3, LCD_RegValue>>8);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
SPI_I2S_SendData(SPI3, (LCD_RegValue & 0xFF));
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
|
||||
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_WriteRAM
|
||||
* Description : Writes to the LCD RAM.
|
||||
* Input : - RGB_Code: the pixel color in RGB mode (5-6-5).
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_WriteRAM(u16 RGB_Code)
|
||||
{
|
||||
SPI_I2S_SendData(SPI3, RGB_Code >> 8);
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
SPI_I2S_SendData(SPI3, RGB_Code & 0xFF);
|
||||
|
||||
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY) != RESET)
|
||||
{
|
||||
vBlockToWait( 1 );
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_PowerOn
|
||||
* Description : Power on the LCD.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_PowerOn(void)
|
||||
{
|
||||
/* Power On sequence ---------------------------------------------------------*/
|
||||
LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
||||
LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
||||
LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
|
||||
LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
|
||||
timerDly(20); /* Dis-charge capacitor power voltage (200ms) */
|
||||
LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
||||
LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
||||
timerDly(5); /* delay 50 ms */
|
||||
LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
|
||||
timerDly(5); /* delay 50 ms */
|
||||
LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
|
||||
LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
|
||||
timerDly(5); /* delay 50 ms */
|
||||
LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DisplayOn
|
||||
* Description : Enables the Display.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DisplayOn(void)
|
||||
{
|
||||
/* Display On */
|
||||
LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_DisplayOff
|
||||
* Description : Disables the Display.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_DisplayOff(void)
|
||||
{
|
||||
/* Display Off */
|
||||
LCD_WriteReg(R7, 0x0);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_CtrlLinesConfig
|
||||
* Description : Configures LCD control lines in Output Push-Pull mode.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_CtrlLinesConfig(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
/* Configure NCS (PB.02) in Output Push-Pull mode */
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
|
||||
/* Configure NWR(RNW), RS (PD.15, PD.07) in Output Push-Pull mode */
|
||||
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_15;
|
||||
// GPIO_Init(GPIOD, &GPIO_InitStructure);
|
||||
|
||||
// LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_SET);
|
||||
// LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_CtrlLinesWrite
|
||||
* Description : Sets or reset LCD control lines.
|
||||
* Input : - GPIOx: where x can be B or D to select the GPIO peripheral.
|
||||
* - CtrlPins: the Control line. This parameter can be:
|
||||
* - CtrlPin_NCS: Chip Select pin (PB.02)
|
||||
* - CtrlPin_NWR: Read/Write Selection pin (PD.15)
|
||||
* - CtrlPin_RS: Register/RAM Selection pin (PD.07)
|
||||
* - BitVal: specifies the value to be written to the selected bit.
|
||||
* This parameter can be:
|
||||
* - Bit_RESET: to clear the port pin
|
||||
* - Bit_SET: to set the port pin
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_CtrlLinesWrite(GPIO_TypeDef* GPIOx, u16 CtrlPins, BitAction BitVal)
|
||||
{
|
||||
/* Set or Reset the control line */
|
||||
GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LCD_SPIConfig
|
||||
* Description : Configures the SPI3 interface.
|
||||
* Input : None
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LCD_SPIConfig(void)
|
||||
{
|
||||
SPI_InitTypeDef SPI_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
/* Enable GPIOC clock */
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
|
||||
|
||||
//GPIO_PinRemapConfig(GPIO_Remap_SPI3, ENABLE);
|
||||
AFIO->MAPR |= GPIO_Remap_SPI3;
|
||||
|
||||
/* Enable SPI3 clock */
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
|
||||
|
||||
/* Configure SPI3 pins: SCK, MISO and MOSI */
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
||||
|
||||
SPI_I2S_DeInit(SPI3);
|
||||
|
||||
/* SPI3 Config */
|
||||
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
||||
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
|
||||
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
|
||||
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
|
||||
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
|
||||
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
|
||||
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
|
||||
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
||||
SPI_Init(SPI3, &SPI_InitStructure);
|
||||
|
||||
/* SPI3 enable */
|
||||
SPI_Cmd(SPI3, ENABLE);
|
||||
}
|
||||
|
||||
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
|
Loading…
Add table
Add a link
Reference in a new issue