华大HC芯片实现定时器计数
HC32L130E8PA实现定时器计数功能
在芯片资源紧缺的情况下,尝试了使用华大国产芯片,
对于该芯片来说,有些功能确实不完善,但还是能够满足基本需求的。
我在这使用的时HC32L130E8PA的芯片,采用定时器3实现计时器计数功能。
代码如下:
/*定时器3初始化 用于计数u16Period * (1/4M) * 1612500 * (1 / 4 M) * 16 = 50000us = 50ms
*/
void Time3Init(u16 u16Period)
{uint16_t u16Value;stc_tim3_mode0_cfg_t stcTim3BaseCfg;//结构体初始化清零DDL_ZERO_STRUCT(stcTim3BaseCfg);stcTim3BaseCfg.enWorkMode = Tim3WorkMode0;//定时器模式stcTim3BaseCfg.enCT = Tim3Timer;//定时器功能,计数时钟为内部PCLKstcTim3BaseCfg.enPRS = Tim3PCLKDiv64;//16分频stcTim3BaseCfg.enCntMode = Tim316bitArrMode;//自动重装载16位计数器stcTim3BaseCfg.bEnGate = FALSE;stcTim3BaseCfg.bEnTog = FALSE;stcTim3BaseCfg.enGateP = Tim3GatePositive;//TIM3 的模式0功能初始化Tim3_Mode0_Init(&stcTim3BaseCfg);u16Value = 0x10000 - u16Period;//设置重装载值Tim3_M0_ARRSet(u16Value);//设置计数值Tim3_M0_Cnt16Set(u16Value);Tim3_ClearIntFlag(Tim3UevIrq);//清楚中断标志Tim3_Mode0_EnableIrq();//使能TIM3中断EnableNvic(TIM3_IRQn,IrqLevel1,TRUE);
}
以上程序只是进行初始化 但没有启动,启动如下:
/*开始定时器计数
*/
void TimeCntStart(void)
{Tim3_M0_Run();
}
中断如下:
/*定时器中断
*/
void TIM3_IRQHandler(void)
{//计时溢出if(TRUE == Tim3_GetIntFlag(Tim3UevIrq)){RepCnt++;if(RepCnt >= 1200 * DevInfo.RepCycle){RepCnt = 0;}//清除中断标志位Tim3_ClearIntFlag(Tim3UevIrq);}
}
在实际操作中,按公式去计算重装载值 实现定时计数,貌似时间不准确,我是不断的更改重装载值,才找到计时的那个标准,这个不知道时硬件原因还是芯片原因,具体情况还是得在使用时,进行调试,定时要久一点,值就要设大,要小,值就设小。
华大HC芯片实现定时器计数相关推荐
- 基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间
基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间 Proteus仿真 实例代码 #include "at89x52.h" /**74hc595引脚定义 ...
- 蓝桥杯STC基础代码-以定时器计数作为时间轴的模板
蓝桥杯STC基础代码 以定时器计数作为时间轴的模板 简介 配置过程 定时器的配置 定时器中断的配置 主函数的配置 代码下载地址 下一章 以定时器计数作为时间轴的模板 简介 这是我写STC15代码时候首 ...
- C#上位机(定时器计数)
1.对窗体进行编辑,并对每一个控件进行属性修改 1.控件可以直接拖进窗体中: 2.对每一个控件进行修改:主要修改Test(窗体显示的部分)和Name(内部函数名,一般建议大驼峰格式命名.) 3.特别是 ...
- STM32定时器计数频率以及PSC和CNT、CCR1的关系
使用环境(蓝色粗体字为特别注意内容) 1.软件环境:Win7 32 bit,Keil MDK V5.15 2.硬件环境:ALIENTEK MiniSTM32开发板.STM32F103RCT6 在STM ...
- l130 华大低功耗mcu_HC32L130国产超低功耗华大MCU芯片介绍
华大HC32L130 系列32 位 ARM® Cortex®-M0+ 微控制器 HC32L130 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗.宽电压工作范围的 MCU.集成 12 位 1 ...
- HC32F005 国产低功耗华大MCU芯片介绍
华大HC32F005 系列32 位 ARM® Cortex®-M0+ 微控制器 HC32F005 系列是一款Low Pin Count.宽电压工作范围的MCU.集成12位1M sps 高精度SARAD ...
- HC32L130国产超低功耗华大MCU芯片介绍
华大HC32L130 系列32 位 ARM® Cortex®-M0+ 微控制器 HC32L130 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗.宽电压工作范围的 MCU.集成 12 位 1 ...
- HC32L136国产超低功耗华大MCU芯片介绍
华大HC32L136 系列32 位 ARM® Cortex®-M0+ 微控制器 HC32L136 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗.宽电压工作范围的 MCU.集成 12 位 1 ...
- HC32L110国产超低功耗华大MCU芯片介绍
华大HC32L110 系列32 位 ARM® Cortex®-M0+ 微控制器 HC32L110 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗.Low Pin Count.宽电压工作范围的 ...
最新文章
- 【VirtualBox】VirtualBox使用现有的虚拟盘文件(如VHD)创建虚拟机时,报错:打开虚拟硬盘失败,“UUID already exist”的解决方法
- ISP PIPLINE (九_2) Denoise 之 time domain denoise
- JMF介绍之媒体框架二
- posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
- Angular 2/Ionic 2 @input和@output理解
- Java 分割字符串的方法String.split()底层原理
- ios开发笔记之 APNS推送服务的实现
- 计算机声音处理说课稿,《声音的产生与传播》说课稿
- python学习-阶段训练(通讯录小练习)(增、删、改、查、还原)
- python设置默认密码_使用Python生成随机密码的示例分享
- Mybatis3 最简例子
- 这才是真相,“轻点,疼”被禁却另有玄机
- Python学习之——np.dot()与np.multiply()与*之间的区别
- 数学基础(1)线性代数总结
- StructedStreaming Kafka 排错(AbstractCoordinator: Marking the coordinator *dead for grou
- upload-labs 全21关 write-up
- 打开word很慢(无网络时正常)
- 计算机考试word功能,2018年计算机二级MS Office考试内容:Word的功能和使用
- 考验AI对代词的理解力,解读艾伦AI研究所公布的数据集“QUOREF”
- English trip EM2-PE 3B Teacher:Olivia