本帖最后由 啪啪啪 于 2014-2-10 16:43 编辑
请各位大牛,帮我看一个void Lcd_Show 这个function模块,帮我细细的讲解一下,谢谢了。小弟初学乍到,还请各位不耻下教。
======================================================================
#include <stdint.h>
#include "nano1xx_lcd.h"
#define a 0x08
#define b 0x04
#define c 0x02
#define d 0x01
#define e 0x00020000 //
#define f 0x00040000 //
#define g 0x04000200 //
#define Lcd_h 0x00010000 //
#define Lcd_cln 0x00080000
const uint32_t Tab_Lcd[16]={
a + b + c + d + e + f , //0
b + c , //1
a + b + d + e + g , //2
a + b + c + d + g , //3
b + c + f + g , //4
a + c + d + f + g , //5
a + c + d + e + f + g , //6
a + b + c , //7
e, //8
// a + b + c + d + e + f + g , //8
a + b + c + d + f + g , //9
d + e + f , //A : L
c + d + e + g , //B : o
g , //C : -
e + g , //D : r
a + d + e + f + g , //E : E
0 , //F : ¹ØÏÔ
} ;
void Lcd_Show(uint32_t adress, uint32_t Data)
{
volatile uint32_t *p = &(LCD->MEM_0) ;
*(p+adress-1) &= ~(e+f+ 0x04000000);
*(p+adress-1) |= Tab_Lcd[Data] & (e+f+ 0x04000000) ;
*(p+adress) &= ~(a+b+c+d+Lcd_h + 0x200); // +Lcd_cln
*(p+adress) |= Tab_Lcd[Data] & (a+b+c+d+Lcd_h + 0x200) ;
}
==================================================================
|