📄 test_tpdraw.c
字号:
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#include "utils.h"
#include "LCD_LTS350Q1_PE1.h"
extern void Lcd_Tft_LTS350Q1_PE1_Init(void);
extern void Touch_Screen_Init(void);
extern int CheckTouchPanelEvent(U16 *x, U16 *y, U32 *tm);
void LcdBkLtSet(U32 HiRatio)
{
#define FREQ_PWM1 1000
if(!HiRatio)
{
rGPBCON = rGPBCON & (~(3<<2)) | (1<<2) ; //GPB1设置为output
rGPBDAT &= ~(1<<1);
return;
}
rGPBCON = rGPBCON & (~(3<<2)) | (2<<2) ; //GPB1设置为TOUT1
if( HiRatio > 100 )
HiRatio = 100 ;
rTCON = rTCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
rTCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
rTCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
rTCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
rTCNTB1 = ( GetMasterClock()>>4 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
rTCMPB1 = ( rTCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
rTCON = rTCON & (~(0xf<<8)) | (0x0e<<8) ;
//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器关闭
rTCON = rTCON & (~(0xf<<8)) | (0x0d<<8) ; //开启背光控制
}
int TPDrawPixel(U32 a1, U32 a2, U32 a3, U32 a4)
{
U16 lcd_x, lcd_y;
LcdBkLtSet(70); //背光控制
Lcd_Tft_LTS350Q1_PE1_Init(); //LCD初始化
Glib_ClearScr(0xf81f); //LCD清屏
Touch_Screen_Init(); //触摸屏初始化
printf( "\nWait for hit the touch panel! Press Enter to clear screen, ESC to Exit!\n" );
while( 1 )
{
if(SerialRxReady())
{
U8 c = getkey();
if(c==ESC_KEY)
break;
if(c==ENTER_KEY)
Glib_ClearScr(0xf81f);
}
if(CheckTouchPanelEvent(&lcd_x, &lcd_y, NULL)>0) //触摸屏触发函数
{
/*下面的代码主要是实现将从触摸屏上获得的点在LCD上显示出来*/
PutPixel((lcd_x+0), (lcd_y+0), 0);
PutPixel((lcd_x+0), (lcd_y+1), 0);
PutPixel((lcd_x+1), (lcd_y+0), 0);
PutPixel((lcd_x+1), (lcd_y+1), 0);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -