新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2016-11-12
- 在线时间
- 3 小时
|
1金钱
我对照原子的PDF教程移植EMwin,移植到触摸屏的时候没有认可反应
程序:
void Mytouch_MainTask(void)
{
int i;
GUI_PID_STATE TouchState;
int xPhys;
int yPhys;
GUI_Init();
WM_SetCreateFlags(WM_CF_MEMDEV);
GUI_SetFont(&GUI_Font20_ASCII);
GUI_CURSOR_Show();
GUI_CURSOR_Select(&GUI_CursorCrossL);
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_BLACK);
GUI_Clear();
GUI_DispString("Measurement of\nA/D converter values");
while (1)
{
GUI_TOUCH_GetState(&TouchState); // Get the touch position in pixel
// printf("TouchState.Layer=%d TouchState.Pressed=%d ",TouchState.Layer,TouchState.Pressed,TouchState.x);
// printf("TouchState.x=%d ");
xPhys = GUI_TOUCH_GetxPhys(); // Get the A/D mesurement result in x
yPhys = GUI_TOUCH_GetyPhys(); // Get the A/D mesurement result in y
// printf("%d %d ",xPhys,yPhys);
GUI_SetColor(GUI_BLUE);
GUI_DispStringAt("Analog input:\n", 0, 40);
GUI_GotoY(GUI_GetDispPosY() + 2);
GUI_DispString("x:");
GUI_DispDec(xPhys, 4);
GUI_DispString(", y:");
GUI_DispDec(yPhys, 4);
GUI_SetColor(GUI_RED);
GUI_GotoY(GUI_GetDispPosY() + 4);
GUI_DispString("\nPosition:\n");
GUI_GotoY(GUI_GetDispPosY() + 2);
GUI_DispString("x:");
GUI_DispDec(TouchState.x,4);
GUI_DispString(", y:");
GUI_DispDec(TouchState.y,4);
delay_ms(50);
};
}
就这个 例子
一直显示 0
底层的 int GUI_TOUCH_X_MeasureX(void) 和 int GUI_TOUCH_X_MeasureY(void) 也没有调用
int GUI_TOUCH_X_MeasureX(void)
{
TOUCH_TYPE_DEF touch;
int i;
i=touch_read(CMD_RDX);
printf("CMD_RDX=%d ",i);
return touch_read(CMD_RDX);
}
int GUI_TOUCH_X_MeasureY(void)
{
int i;
i=touch_read(CMD_RDX);
printf("CMD_RDY=%d ",i);
return touch_read(CMD_RDY);
}
后面 我直接跳过这个 步骤 直接 在定时器里每10ms 调用 这个 函数 GUI_TOUCH_Exec();
然后 int GUI_TOUCH_X_MeasureX(void) 和 int GUI_TOUCH_X_MeasureY(void) 个调用了 但是打印出来的不是 0 就是 4095
我裸机调用touch_read(CMD_RDX); 都是可以的。
不知道什么问题 ,头都炸了 ,新人求教啊。
|
|