任务目的:通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)。
配置串口1波特率为9600
总体IO配置如下图:
主要代码如下:
void main(void) {
SYSTEM_Initialize();
int potentiometer=0;
while(1)
{
int pst=0;
while(1)
{
LED_STATEA5 = 1;
if(!RC4_GetValue())
{
__delay_ms(10);
if(!RC4_GetValue())
{
pst++;
}
}
else
{
__delay_ms(10);
if(RC4_GetValue())
{
if(pst<5)
{
continue;
}
if(pst>=500 )
{
RC5_Toggle();
putString("\r\n long Push\r\n");
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
putNum(potentiometer);
putString("\n");
}
else if(pst>=100)
{
RA2_Toggle();
putString("\r\n short Push\r\n");
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
putNum(potentiometer);
putString("\n");
}
else if(pst>=5)
{
RA1_Toggle();
putString("\r\n press\r\n");
potentiometer = ADCC_GetSingleConversion(channel_ANC0);
putNum(potentiometer);
putString("\n");
}
pst = 0;
}
}
}
}
}
心得体会:第一次参加Funpack活动,觉得收获非常大,带领我走进了另外一个世界,让我了解了Microchip中Curiosity系列板子功能的强大,搭配的多样性。