测试的题目是2011年G题:
我负责的部分是软件部分,按照逻辑首先应该构建思维逻辑图:
由这里就能慢慢发现难点是什么:
1.如何用按键识别;2.如何实现筛选阻值;3.利用TFTLCD描绘显示数值曲线
//画曲线
u16 lastX,lastY;
u8 firstPoint = 1;
void drawCurve(short int rawValue)
{
u16 x,y;
y = 120 - rawValue/280; //data processing code
//这里之所以是120-rawValue/280,与屏幕的扫描方向有关,如果出现上下颠倒的情况,可以改成120 +
if(firstPoint)//如果是第一次画点,则无需连线,直接描点即可
{
LCD_DrawPoint(0,y);
lastX=0;
lastY=y;
firstPoint=0;
}
else
{
x=lastX+1;
if(x<320) //不超过屏幕宽度
{
LCD_DrawLine(lastX,lastY,x,y);
lastX=x;
lastY=y;
}
else //超出屏幕宽度,清屏,从第一个点开始绘制,实现动态更新效果
{
LCD_Clear(WHITE);//清屏,白色背景
LCD_DrawPoint(0,y);
lastX=0;
lastY=y;
}
}
}