【funpack4-2】基于SAME51J20A Curiosity Nano 实现触摸改变呼吸灯速率
该项目使用了SAME51J20A Curiosity Nano,实现了触摸改变呼吸灯速率的设计,它的主要功能为:实现了部分引脚的触摸功能,通过滑动改变呼吸灯速率。
标签
Funpack活动
呼吸灯
SAME51J20A
LGX
更新2025-07-09
10

项目介绍

使用MPLAB开发,尝试让部分管脚实现触摸功能,并通过滑动实现呼吸灯速率切换。

完成的功能

将引脚上的PB4,PB5,PB6定义为一个触摸滑块,当左滑呼吸灯速度变快,右滑呼吸灯速率变慢

硬件介绍

SAME51J20A Curiosity Nano 评估套件(EV76S68A)是用于评估 SAME51J20A 微控制器(MCU)的硬件平台,由 MPLAB® X 集成开发环境(IDE)提供支持,支持MPLAB Harmony开发框架,集成低功耗与高性能特性,支持TrustZone安全技术和丰富外设。板载调试器支持数据可视化分析,适用于物联网终端、工业控制及人机交互场景。


  • SAME51J20A 微控制器
  • 一个用户 LED(黄色)
  • 一个机械用户开关
  • 板载调试器
    • MPLAB X IDE 中的电路板识别
    • 一个绿色电源/状态 LED
    • 编程和调试
    • 虚拟 COM 端口(CDC)
    • 一个逻辑分析仪(DGI GPIO)
  • USB 供电
  • 可调目标电压
    • MIC5353 由板载调试器控制的 LDO 稳压器
    • 1.8-3.6v 输出电压
    • 500 mA 最大输出电流(受环境温度和输出电压限制)

项目设计

本项目使用MPLAB开发


  • 呼吸灯实现

配置一个100us的定时器,编写自己的定时器中断函数,采用定时器中断的方式来模拟pwm波。

image.png

uint16_t tick, duty, step, mode=20;
void tc0callback(TC_TIMER_STATUS status, uintptr_t context);

void tc0callback(TC_TIMER_STATUS status, uintptr_t context)
{
if(tick++ == 200)
tick = 0;

static uint16_t temp;
if(temp++ >= mode)
{
temp = 0;
if(duty >= 200)
step = -1;
if(duty <= 20)
step = 1;
duty += step;
}


if(tick > duty)
LED_Clear();
else
LED_Set();
}

当然不要忘记在主函数中将自己的定时器中断函数绑定并且开启定时器

TC0_TimerCallbackRegister(tc0callback, 0);
TC0_TimerStart();


  • 触摸滑块实现

MCC Content Manager 中下载需要的touch库,并且在mcc中添加滑条以及滑条所对应的端口数量的端口号

image.pngimage.png

image.png

配置后生成代码,可以在工程中找到touch_example.c的文件,可以找到官方给我们提供的触摸函数模版

void touch_mainloop_example(void){

/* call touch process function */
touch_process();

if(measurement_done_touch == 1u)
{
measurement_done_touch = 0u;
// process touch data
}

}

根据模版,编写自己的触摸函数

void touch_task()
{
touch_process();

if(measurement_done_touch == 1u)
{
measurement_done_touch = 0u;
if (KEY_TOUCHED_MASK == (get_scroller_state(0) & KEY_TOUCHED_MASK))
{
if ((qtm_scroller_data1[0].right_hyst & 0x08) == 0x08)
{
// slide right
mode = 20;
}
else if ((qtm_scroller_data1[0].left_hyst & 0x08) == 0x08)
{
// slide left
mode = 500;
}
}
// process touch data
}
}
  • 硬件配置

系统框图以及引脚分布图

image.pngimage.png

  • 程序流程图


image.png

  • main.c完整内容

image.png

心得体会

第一次接触pic这类的板卡,学习到很多东西,SAME51J20A 功能强大,且资源库资源丰富,以后会去实现给更多好玩的功能(虽然但是,MPLAB真的很不好用)





软硬件
元器件
ATSAME51J20A-AF
SAM E51 微芯科技基于智能ARM Cortex-M4F的微控制器,1024K闪存,256K静态随机存取存储器
团队介绍
个人
团队成员
LGX
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号