用SDK包开发K66FX18学习笔记(2)
PIT定时器(更新中断)
1、宏定义
#define PIT_CHANNAL kPIT_Chnl_0 //通道0
#define PIT_DELAY 500000 //500MS
#define PIT_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_BusClk)//获取定时器时钟源频率#define PIT_INTERRUPT_CHANNEL PIT0_IRQn //中断向量号
#define PIT_INTERRUPTHANDLE PIT0_IRQHandler //中断服务函数
用宏定义的好处就是,下次要修改中断通道的时候,只需要修改宏定义就可以了
2、PIT初始化
void PIT_INIT(void)
{pit_config_t config;//定义初始化句柄CLOCK_EnableClock(kCLOCK_Pit0);//PIT时钟初始化config.enableRunInDebug = true;//调试时PIT正常运行PIT_Init(PIT,&config);//初始化PIT_SetTimerPeriod(PIT,PIT_CHANNAL,USEC_TO_COUNT(PIT_DELAY,PIT_SOURCE_CLOCK));//设置定时时间 PIT_EnableInterrupts(PIT,PIT_CHANNAL,kPIT_TimerInterruptEnable);//使能中断EnableIRQ(PIT_INTERRUPT_CHANNEL);//使能定时器中断PIT_StartTimer(PIT, PIT_CHANNAL);//开启定时器
}
USEC_TO_COUNT是输入要延时的时间和时钟源频率算出自动重装载值
#define USEC_TO_COUNT(us, clockFreqInHz) (uint64_t)((uint64_t)us * clockFreqInHz / 1000000U)
时钟源频率可以用CLOCK_GetFreq函数实现
CLOCK_GetFreq(kCLOCK_BusClk) //PIT挂载在BUS时钟总线上
kPIT_TimerInterruptEnable用source insight跳进去可以看到定义,即中断使能。
typedef enum _pit_interrupt_enable
{kPIT_TimerInterruptEnable = PIT_TCTRL_TIE_MASK, /*!< Timer interrupt enable*/
} pit_interrupt_enable_t;
3、中断服务函数
此中断函数实现LED灯的翻转
void PIT_INTERRUPTHANDLE(void)//中断服务函数
{PIT_ClearStatusFlags(PIT, PIT_CHANNAL, kPIT_TimerFlag);//清楚中断标志位if(PIT_COUNT>50000)PIT_COUNT = 0;PIT_COUNT++;if(PIT_COUNT%2)GPIO_PinWrite(LED_GPIOINSTANCE,LED1,OFF);else GPIO_PinWrite(LED_GPIOINSTANCE,LED1,ON);
}
编写中断函数记得是无返回类型,无形参就可以了。
学习心得:多借助source insight来看代码,真的能省去很多找函数的时间。
用SDK包开发K66FX18学习笔记(2)相关推荐
- 用SDK包开发K66FX18学习笔记(1)
任何单片机,从点灯开始(GPIO输出) 1.LED初始化(fsl_gpio.h) void LED_INIT(void) {gpio_pin_config_t LEDconfig;//GPIO初始化句 ...
- 用SDK包开发K66FX18学习笔记(5)
ADC采集(光敏电阻) 1.宏定义 #define ADC0_INSTANCE ADC0 #define ADC1_GPIO GPIOA #define ADC1_PORT PORTA #define ...
- 用SDK包开发K66FX18学习笔记(4)
FTM脉冲输入捕获 1.宏定义 #define INCAP_INSTANCE FTM1 //端口号 #define INCAP_CHANNEL0 kFTM_Chnl_0 //通道号 #define I ...
- 用SDK包开发K66FX18学习笔记(3)
FTM输出PWM 1.宏定义 #define FTM_INSTANCE FTM2 //FTM端口 #define FTM_CHANNAL0 0U //FTM通道 #define FTM_CHANNAL ...
- iTOP-RK3568开发板学习笔记(1)编译+烧录系统
迅为 RK3568 开发板学习笔记 文章目录 准备开发环境 复制 Linux SDK 编译 Buildroot 烧录固件 准备开发环境 将 ITOP-RK3568 资料包中的虚拟机开发环境解压到自己的 ...
- 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
这篇是对书本 网络多人游戏架构与编程 的学习第二篇(第一篇:多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | ...
- “物联网开发实战”学习笔记-(四)智能音箱制作和语音控制
"物联网开发实战"学习笔记-(四)智能音箱制作和语音控制 这次来造一个属于自己的智能音箱,这里详细介绍了智能音箱的语音控制的实现. 智能音箱的技术架构 智能音箱主要涉及拾音.前端信 ...
- 涂鸦LZ201-CN开发板学习笔记(一)
涂鸦LZ201-CN开发板学习笔记(一) 前言 一.引出 二.准备流程 1.购买开发板 2.创建产品 (1)创建产品 (2)功能定义 (3)设备交互 (4)硬件开发 3.检查开发板 第一步: 第二步: ...
- “物联网开发实战”学习笔记-(二)手机控制智能电灯
"物联网开发实战"学习笔记-(二)手机控制智能电灯 如果搭建好硬件平台后,这一次我们的任务主要是调试好智能电灯,并且连接到腾讯云的物联网平台. 腾讯云物联网平台 腾讯物联网平台的优 ...
最新文章
- Java的自动装箱与自动拆箱
- 分支合并 Fork-Join 框架
- SGS 0.9.7 协议解析
- java面试题二十 try catch
- 前台文件_欧木瑾怎么定制办公前台?
- docker Redis集群
- 第一:Python安装需要的第三方库时,命令行输入pip提示不是内部或外部命令
- 查看matlab当前路径,MATLAB R2012a 的当前路径和路径搜索
- UML类与类的关系, 总算理解了关联和依赖在实际中的区别
- 代码整洁之道:想要成为一个更好的程序员,你要注意这些方面
- MySQL读写分离的三种实现方案
- Texture贴图材质资源网站分享
- 大一c语言挂科分数烟台大学,知乎烟大 | 在烟大挂科是一种什么体验
- 动力节点『lol版』Java学习路线图(五)Java框架阶段
- 智慧实验室综合安全管理系统(高校版)、危化品管理、设备预约等
- java全景图片切割 全景,基于Three.js实现360度全景图片
- java银联在线支付开发_银联在线支付案例代码
- Microsoft Edge 中的ie浏览器图标、右击新标签页打开功能的关闭方法
- 早上第一杯别喝四种水
- 可视化建站cms_wordpress建站,盘点有哪些经典主题值得推荐?