📄 sed15xx.c
字号:
#include "types.h"
#include "messages.h"
#include "project.h"
#include "resource.h"
#include "sysresourceapi.h"
#include "displaydrv.h"
#include "..\displaydriver.h"
#include "SED15xx.h"
#include "regsgpio.h"
#pragma optimize 1
#if FRAMEBUFFER_MEMORY_SPACE==TARGET_MEM_X
#define GetByteFromArray GetByteFromArrayInX
#else
#define GetByteFromArray GetByteFromArrayInY
#endif
_asmfunc GetByteFromArray(WORD iIndex, WORD *pBuffer);
WORD _reentrant DisplayGetContrast(void);
extern int LED_ON_NUM;
extern BOOL LED_USER_SET;
_reentrant void HALDisplaySendCommand(WORD wCommand)
{
//set up the data to go out
LCD_DC_GPDO = FALSE; //This is a command
_MultiNop();
LCD_RDE_GPDO = TRUE;
_MultiNop();
LCD_CS1_GPDO = FALSE;
_MultiNop();
LCD_DATA_DO = wCommand;
_MultiNop();
LCD_CS1_GPDO = TRUE;
_MultiNop();
LCD_RDE_GPDO = FALSE;
_MultiNop();
}
_reentrant void HALDisplaySendData(WORD wPage, WORD wColumn, WORD wCount, WORD wByteIndex,WORD* pBuffer, WORD wDisplayOperation)
{
int i;
WORD wByte;
//set up the data to go out
HALDisplaySendCommand(CMD_SET_LOWER_COLUMN_ADDRESS(wColumn));
HALDisplaySendCommand(CMD_SET_HIGHER_COLUMN_ADDRESS(wColumn));
HALDisplaySendCommand(CMD_SET_PAGE_ADDRESS(wPage));
for(i=0;i<wCount;i++)
{
LCD_DC_GPDO = TRUE; //THis is data
_MultiNop();
LCD_RDE_GPDO = TRUE;
_MultiNop();
LCD_CS1_GPDO = FALSE;
_MultiNop();
if(wDisplayOperation&DISPLAY_CLEAR)
{
wByte = 0;
}
else
{
wByte = GetByteFromArrayInY(wByteIndex++,pBuffer);
}
if(wDisplayOperation&DISPLAY_INVERT)
{
wByte = ~wByte;
}
LCD_DATA_DO = wByte&0xff;
_MultiNop();
_nop();
_nop();
LCD_CS1_GPDO = TRUE;
_MultiNop();
LCD_RDE_GPDO = FALSE;
_MultiNop();
}
}
_reentrant void HALDisplaySetContrast(INT iContrast)
{
//the incoming contrast will saturate against the lower and upper bounds
if(iContrast < 0)
g_iContrastPercentage = 0;
else if(iContrast > 100)
g_iContrastPercentage = 100;
else
g_iContrastPercentage = iContrast;
//contrast is an 'extended' command...takes two command words to execute
HALDisplaySendCommand(CMD_SET_CONTRAST);
HALDisplaySendCommand(LCD_MIN_CONTRAST+ ((g_iContrastPercentage*(LCD_MAX_CONTRAST-LCD_MIN_CONTRAST))/100));
}
_reentrant void HALDisplayDecContrast(void)
{
#ifdef CONTRAST_CALIBRATION
HALDisplaySetContrast(g_iContrastPercentage-LCD_STEPSIZE_CONTRAST);
#else
HALDisplaySetContrast(DisplayGetContrast()-LCD_STEPSIZE_CONTRAST);
#endif
}
_reentrant void HALDisplayIncContrast(void)
{
#ifdef CONTRAST_CALIBRATION
HALDisplaySetContrast(g_iContrastPercentage+LCD_STEPSIZE_CONTRAST);
#else
HALDisplaySetContrast(DisplayGetContrast()+LCD_STEPSIZE_CONTRAST);
#endif
}
_reentrant void HALHandleMessage(Message *pMsg)
{
switch(pMsg->m_wMessage)
{
case LCD_SET_CONTRAST:
HALDisplaySetContrast(pMsg->m_wParams[0]);
break;
case LCD_INC_CONTRAST:
HALDisplayIncContrast();
break;
case LCD_DEC_CONTRAST:
HALDisplayDecContrast();
break;
default:
break;
}
}
//*w++这里是7彩控制
_reentrant void HAL7Color(INT Param1,int Param2)
{
//Param1;
if(!Param1)
{
LED_ON_NUM++;
if(LED_ON_NUM>6) LED_ON_NUM=0;
}
if(Param2)
{
// BACKLIGHT_CONTROL_REGISTER = FALSE;//TRUE;
LED1_CONTROL_REGISTER = (LED_ON_NUM&0x01);//TRUE;//B兰
_MultiNop();
LED2_CONTROL_REGISTER = ((LED_ON_NUM>>1)&0x01);//TRUE;//G绿
_MultiNop();
LED3_CONTROL_REGISTER = ((LED_ON_NUM>>2)&0x01);//TRUE; //R红
// LED2_CONTROL_REGISTER = TRUE; //EL ON
// LCD_LED_DO = LED_ON_NUM;
}
else
{
// BACKLIGHT_CONTROL_REGISTER = TRUE;
LED1_CONTROL_REGISTER = FALSE;
_MultiNop();
LED2_CONTROL_REGISTER = FALSE;
_MultiNop();
LED3_CONTROL_REGISTER = FALSE;
//LED2_CONTROL_REGISTER = FALSE; //EL OFF
//LCD_LED_DO = 7;
}
}
/* //w++
_reentrant void HAL7Color(INT Param1,int Param2)
{
//Param1;
if(!Param1)
{
LED_ON_NUM++;
if(LED_ON_NUM>6) LED_ON_NUM=0;
}
if(Param2)
{
LED1_CONTROL_REGISTER = FALSE;//TRUE;
_MultiNop();
}
else
{
LED1_CONTROL_REGISTER = TRUE;//TRUE;
_MultiNop();
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -