cc2541 计算霍尔-频率
发布日期:2021-06-29 05:35:27
浏览次数:3
分类:技术文章
本文共 2043 字,大约阅读时间需要 6 分钟。
1、平台条件
1:硬件cc2541
2 通过霍尔传感器计算频率
利用外部io中断的,计算霍尔脚踏板的频率
主要思想: 1:一个边沿进来,就清除定时器的值并开始计数,: 2:下一个边沿进来,就读定时器的计数,并清除,再重新开始计数。 3:读出来的值就是周期。然后计算频率2.1 外部中断引脚的设置
void hal_io_Init(void) { P2SEL &= ~(1 << 0); //P2.0设置为IO口 P2DIR &= ~(1 << 0); //P2.0设置为输入 P2INP &= ~(1 << 0); //P2.0上拉下拉模式 P2INP &= ~(1 << 7); //P2上拉 P2_0 = 1; //P2.0拉高 P2IFG &= ~(1 << 0); //初始化P2.0中断标志位 PICTL |= (1 << 3); //下降沿触发 P2IEN |= (1 << 0); //使能P2.0中断 IEN2 |= (1 << 1); //允许P口中断; }
static uint32 P20_timer_cac = 0; // 定时器计数----、、、static uint8 is_stop_P20_timer_fla = 1;// 1:表示停止 ,0表示正在开始定时器//static uint8 P20_isr_times = 0;// 中断次数uint8 frue_aa =0;#pragma vector = P2INT_VECTOR __interrupt void P2_ISR(void) { //p2.0 拉低------- if(!(P2 & (1 << 0)) ) { // 1: 计算频率-------- if(P20_timer_cac) { montor_dat.frequency = 1000/P20_timer_cac; } // step 2:重新清0, P20_timer_cac =0; // step 3: 定时器是否停止过, if(is_stop_P20_timer_fla==1) { is_stop_P20_timer_fla =0; //开始定时器循环 osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_HAL_CYCLE, TIME_PORI ); } if(motor_turn_sta!=2) { montor_dat.Turn_dir =1; // 正传 motor_turn_sta =1; } set_devie_on_sta (); } P2IFG = 0; //清中断标志 P2IF = 0; //清中断标志 P2IFG = 0; //清中断标志 P2IF = 0; //清中断标志 }/************************************************ ------- 计算频率--------*******************************************/void calcu_frequency_handle(void){ // 累加定时器变量 P20_timer_cac+=TIME_PORI; // 2s //// if(P20_timer_cac>(2000/50))// { // montor_dat.frequency = 0; // is_stop_P20_timer_fla =1; // osal_stop_timerEx( simpleBLEPeripheral_TaskID, SBP_HAL_CYCLE);// }}
可以加入QQ群:687360507 与大伙沟通交流,技术在于分享而进步
转载地址:https://blog.csdn.net/zhi_Alanwu/article/details/104031379 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月14日 21时09分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
用Spotlight实时监控Windows Server 2008
2019-04-29
Tomcat 6.0.32中调整JVM大小及最大线程数
2019-04-29
Mysql数据库下载及安装
2019-04-29
MySql安装时解决要输入current root password的方法
2019-04-29
Linux下free命令详解
2019-04-29
Linux下启动rpc时提示Cannot register service: RPC: Unableto receive; errno = Connectionrefused的问题
2019-04-29
Google纪念遗传学之父孟德尔诞辰一百周年图标
2019-04-29
在Apache下配置多个虚拟主机站点
2019-04-29
Apache的认证和授权配置
2019-04-29
【学习笔记】Linux下CPU性能评估
2019-04-29
【学习笔记】Linux下内存性能评估
2019-04-29
【学习笔记】Linux下磁盘IO性能评估
2019-04-29
【学习笔记】Mysql中通过profiling定位query性能瓶颈
2019-04-29
2011年网上购书清单
2019-04-29
python
2019-04-29
网络协议
2019-04-29
进程和线程
2019-04-29
sql面试题
2019-04-29
linux基础与调优
2019-04-29
软件缺陷基础
2019-04-29