内容介绍
内容介绍
主要功能代码如下所示,主要实现功能为:
-
通过按键拓展功能:
-
短按S1:控制D4亮灭
-
短按1S以上:控制D5亮灭
-
长按5S以上:控制D6亮灭
-
-
同时串口上会输出如下数据:
-
ADC采集数值
-
按键触发信息
-
static uint8_t btn_check(void)
{
uint8_t btn_timer = 0;
btn_timer = 0;
while (SWITCH_S1_PORT == LOW)
{
__delay_ms(100);
if (SWITCH_S1_PORT == LOW)
{
btn_timer++;
}
}
if (btn_timer >= 50)
{
return 1;
}
else if (btn_timer >= 10)
{
return 2;
}
else if (btn_timer >= 2)
{
return 3;
}
else
{
return 0;
}
}
static void print_adc(void)
{
uint8_t ad_result;
ad_result = ADCC_GetSingleConversion(POT_CHANNEL);
printf("ADC Result: %d\n\r", ad_result);
}
static void led_ctl_click(void)
{
LED_D4_Toggle();
printf("click\r\n");
}
static void led_ctl_1s(void)
{
LED_D5_Toggle();
printf("click 1s\r\n");
}
static void led_ctl_5s(void)
{
LED_D6_Toggle();
printf("click 5s\r\n");
}
/*
Main application
*/
void main(void) {
uint8_t status = 0;
uint8_t status_old = 0;
SYSTEM_Initialize();
// Disable the pre-enabled interrupts of the MCC
INTERRUPT_TMR0InterruptDisable();
while (1)
{
status = btn_check();
if (status > 0)
{
if (status != status_old)
{
LEDs_SetLow();
status_old = status;
}
switch (status)
{
case 1:
led_ctl_5s();
break;
case 2:
led_ctl_1s();
break;
case 3:
led_ctl_click();
break;
default:
break;
}
print_adc();
}
}
}
活动心得:
- 通过本次活动测试PIC的开发环境以及芯片,总体而言开发环境使用便捷,示例丰富,PIC单片机的外设也很丰富,在以后有些应用场景下,可以作为选择方案。
附件下载
pic16f18446-curiosity-lpc-demo-code-master.7z
测试使用的源代码
团队介绍
评论
0 / 100
查看更多
猜你喜欢
Funpack第七期DM164137按键扩展功能通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时用usb虚拟转串口链接电脑和板子串口模块打印信息(包括按键信息,电位计信息)
李青山
1028
Funpack第七期——基于DM164137的按键实验通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)。
星辰i
1070
Funpack第七期_DM164137_按键_adc采样本次通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印电位计信息信息
赵团团
865