main.c
来自「嵌入式系统Lcd触摸屏实验」· C语言 代码 · 共 113 行
C
113 行
/***************************************************************************\
Copyright (c) 2004-2007 threewater@up-tech.com, All rights reserved.
by threewter 2004.5.12
\***************************************************************************/
/***************************************************************************\
#说明: C main 函数,ucos-ii初始化等定义
---------------------------------- Bug --------------------------------------
---------------------------------- TODO list --------------------------------------
----------------------------------修正--------------------------------------
2004-5-12 创建
\***************************************************************************/
#include"../ucos-ii/includes.h" /* uC/OS interface */
#include "../ucos-ii/add/osaddition.h"
#include "../inc/drivers.h"
#include "../inc/sys/lib.h"
#include "../src/gui/gui.h"
#include <string.h>
#include <stdio.h>
#include "uhal/uhal.h"
#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting
///******************任务定义***************///
OS_STK task1_Stack[STACKSIZE]={0, }; //Main_Test_Task堆栈
void Task1(void *Id); //Main_Test_Task
#define Task1_Prio 2
extern OS_EVENT *pevent;
extern void TchScr_init(void);
extern void irq_TCHSCR(void);
extern void LCD_Init(void);
extern void draw_keyboard(void);
extern void clearscreen(void);
U32 TchScr_GetOSXY(int *x, int *y,int lable);
void getkey(int x,int y);
///*****************事件定义*****************///
/////////////////////////////////////////////////////
// Main function. //
////////////////////////////////////////////////////
int main(void)
{
ARMTargetInit(); // do target (uHAL based ARM system) initialisation //
OSInit(); // needed by uC/OS-II //
LCD_Init();
LCD_Refresh();
clearscreen();
TchScr_init1(); //初始化触摸屏,此时为非中断方式。
// ( 校准触摸屏); //校准触摸屏,取得LCD四个角上的电压值,然后求得电压值最大最小值。
draw_keyboard();
//TchScr_Clibrate();
OSTaskCreate(Task1, (void *)0, (OS_STK *)&task1_Stack[STACKSIZE-1], Task1_Prio);
pevent=OSMboxCreate((void*)NULL);
OSAddTask_Init(1);
OSStart(); // start the OS //
return 0;
}//main
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Task1(void *Id)
{
U16 timeout=0;
U8 err;
int x,y;
U32 mode;
TchScr_init(); //初始化触摸屏,以中断方式开始工作。
for(;;){
OSMboxPend(pevent,timeout,&err); //等到触摸屏中断
mode=TchScr_GetOSXY(&x, &y,1); //进行坐标转换,取得在LCD坐标值。
printf("\nx=%d,\ty=%d\n",x,y);
getkey(x,y); //取得键盘值。
OSTimeDly(1000);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?