当前位置: 首页 > ops >正文

5-ATSAM3X8-定时器

ATSAM3X8-定时器

U8 ms_ticks;
void SysTick_Handler(void) 
{// 每次中断递增毫秒计数器if (ms_ticks==1){LED0_ON;ms_ticks=0;}else{LED0_OFF;ms_ticks=1;}
}
void init_systick(void) {// 配置 SysTick 每 1ms 产生一次中断// SystemCoreClock 是系统核心时钟频率 (对于 Due 是 84MHz)if (SysTick_Config(84000000 / 1000)) {// 配置失败处理while (1); // 死循环}// 设置中断优先级 (可选,0-15,数字越小优先级越高)NVIC_SetPriority(SysTick_IRQn, 15); // 设置较低的优先级
}
///////////////////////////////////////////////////
void init_tc_interrupt(void) {// 1. 启用 TC0 的外设时钟pmc_enable_periph_clk(ID_TC0);// 2. 配置 TC 为波形模式,使用 MCK/2 作为时钟源tc_init(TC0, 0,TC_CMR_WAVE| TC_CMR_WAVSEL_UP_RC| TC_CMR_TCCLKS_TIMER_CLOCK1 );// 3. 设置比较值 RC 决定中断频率// 中断频率 = (MCK/128) / (RC + 1)// 例如:设置每 0.5s 中断一次: 656250Hz / 328125 = 2Hzuint32_t rc_value = (sysclk_get_cpu_hz() / 2) / 1000; // 1000Hz中断tc_write_rc(TC0, 0, rc_value);//初始化0tc_enable_interrupt(TC0, 0, TC_IER_CPCS);//定时器1的通道C比较匹配中断NVIC_EnableIRQ(TC0_IRQn);// 5. 在 NVIC 中启用 TC0 中断NVIC_SetPriority(TC0_IRQn, 5);// 设置中断优先级 (可选)tc_start(TC0, 0);// 6. 启动定时器
}
void TC0_Handler(void) {// 读取状态寄存器以判断中断源uint32_t status = tc_get_status(TC0, 0);// 检查是否是 RC 比较匹配中断if (status & TC_SR_CPCS) {// 每次中断递增毫秒计数器if (ms_ticks==1){LED0_ON;ms_ticks=0;}else{LED0_OFF;ms_ticks=1;}}
}
http://www.xdnf.cn/news/19398.html

相关文章:

  • 架构选型:为何用对象存储替代HDFS构建现代数据湖
  • 腾讯混元翻译大模型Hunyuan-MT-7B:重塑跨语言沟通的技术革命
  • 定时器设计之->分级时间轮
  • 基于SpringBoot的二手交易平台【2026最新】
  • 2025我“生发”了『折行』|『内注』|『终端正偿』|『中文负偿』四大“邪术”(前二造福python代码阅读者;后二助力所有艺术人)
  • Kali自带的录屏工具:recordmydesktop
  • 基于单片机电动车充电桩/充电车棚环境监测设计
  • 如何将照片从电脑传输到安卓设备
  • vscode翻译插件
  • Kafka 架构原理
  • 【大模型】大模型微调-RLHF(强化学习)
  • Certificate is Signed Using a Weak Signature Algorithm漏洞解决
  • Uniapp 图片前端上传功能实现与详解
  • JVM:内存区域划分、类加载的过程、垃圾回收机制
  • 【Spring Cloud微服务】8.深度实战:微服务稳定性的守护神——Sentinel
  • 项目升级--mysql主从复制和读写分离
  • 统计学的“尝汤原理”:用生活案例彻底理解中心极限定理
  • 9.1C++——类中特殊的成员函数
  • GitHub 热榜项目 - 日榜(2025-09-01)
  • Android面试指南(六)
  • 科学研究系统性思维的方法体系:数据收集模板
  • 【Docker】Docker的容器Container、镜像Image和卷Volume对比
  • JVM核心机制:类加载与内存结构详解
  • Axios与Ajax:现代Web请求大比拼
  • 彻底搞懂 C++ 中的 `typename`
  • datax将数据从starrocks迁移至starrocks
  • 拆解期货交易所:清算交收体系!
  • MySQL 8 窗口函数详解
  • 【LeetCode热题100道笔记+动画】单词拆分
  • 报错处理(1)激活conda环境后pip库不能安装到已经激活的这个环境