应广单片机定时器TIME16配置,关于time16的配置

$T16M sysCLK,/64,BIT15; $T16M sysCLK,/64,BIT15;
选择(SYSCLK/64)当Timer16时钟源,每2^16个时钟周期产生一次INTRQ.2=1系统时钟 System Clock = HRC /2=8 MHz 
 sysclk/64=8 MHz/64=125 kHz,约每524 mS产生一次INTRQ.2=1

两个注意点的点:时钟源和BIT?记得2的BIT?+1次方,这个数是产生中断的时间

入下面的代码


#include    "extern.h"BIT     LED_G           :        PA.3;#define GRE_LED_FLASH  {if(LED_G){LED_G=0;}else{ LED_G=1;}}
//  $    LED_G  toggle;  //翻转SW信号/*****************LED*******************/
word ucFlashTmrCnt;
BIT ubMsFlag; /****************系统时钟*********************/
bit     FLAG_NMS;
byte    count;
word    usTmrCnt;/**************T16*************************/
void    TIME16_Init(void)
{/*设置计数值*/usTmrCnt=0;//488;ubMsFlag=0;/*定时器配置*/$ T16M     IHRC, /1, BIT11;    //16MHz / 1 = 16MHz : the time base of T16.INTEN.T16 =1;/*开启定时中断*/Intrq.T16 =0;/*清除中断请求*/
}void    FPPA0 (void)
{.ADJUST_IC    SYSCLK=IHRC/8, IHRC=16MHz, VDD=3.3V;$ CLKMD IHRC/8,En_IHRC,En_ILRC;/*上电延时*/.delay 40000;/*端口配置*/$  LED_G     OUT,HIGH;          /*定时器配置*/TIME16_Init();ENGINT //全局中断开启while (1){}
}void    Interrupt ( void )
{pushaf;if ( Intrq.T16 )  {Intrq.T16    =    0;/*重新设置计数值*/STT16 usTmrCnt;$    LED_G  toggle; }popaf;
}

计算方式:

$ T16M        IHRC, /1, BIT11;

IHRC = 16M

BIT11 -> 2的11+1次方 = 4096

所以中断的频率 = 16M (分频系数1如果是其他 除以相对应的数值 )除以4096 = 0.00390M

= 3.9K 大概是这个频率

因为我们再中断函数里面做gpio翻转,所以可以使用示波器进行测试核对。

另外计定时计数器的数值一直向上计数,计数的储值也可以设置,使用stt16 ,这样可以更灵活的设置定时中断的时间。


/****************系统时钟*********************/
bit     FLAG_NMS;
byte    count;
word    usTmrCnt;/**************T16*************************/
void    TIME16_Init(void)
{/*设置计数值*/usTmrCnt=488;ubMsFlag=0;/*定时器配置*/$ T16M     IHRC, /1, BIT11;    //16MHz / 1 = 16MHz : the time base of T16.INTEN.T16 =1;/*开启定时中断*/Intrq.T16 =0;/*清除中断请求*/
}void    Interrupt ( void )
{pushaf;if ( Intrq.T16 )  {Intrq.T16    =    0;/*重新设置计数值*/STT16 usTmrCnt;}popaf;
}

第一次使用这款单片机,有可能理解有误,如果是朋友们看待错误,希望留言指出,大家一起学习用好这款单片机。

应广单片机定时器TIME16配置相关推荐

  1. 应广单片机定时器中断配置

    应广单片机主要应用于消费电子,资源有限,只有一个16bit定时器,因此用好T16定时器就非常关键了.可以说是整个单片机系统的核心配置 不说那么多了,直接上代码. BIT     LED_G       ...

  2. 应广单片机开发案例应广单片机11bitPWM配置

    应广单片机有两种硬件pwm,一种是8bit,另外一种是11bit,8bit的配置稍微简单一些.现在以pms133/psm134为例子,贴一个11bit pwm配置的例子.修改一下可以应用于应广其他系列 ...

  3. 应广单片机11bitPWM配置

    应广单片机有两种硬件pwm,一种是8bit,另外一种是11bit,8bit的配置稍微简单一些.现在以pms133/psm134为例子,贴一个11bit pwm配置的例子.修改一下可以应用于应广其他系列 ...

  4. PMS150C应广单片机开发案例

    PMS150C应广单片机开发案例 应广单片机价格美丽,性价比高,mini-c好用,适用于消费电子开发.但是案例demo太少了,为了方便大家能够快速入门.这里贴出了一份经典PMS150C的点灯程序代码. ...

  5. 应广单片机-按键状态机(单击、双击、长按)

    在正常0.5s内无按键操作为启始按键扫描条件下,扫描按键将产生以下3种按键事件: 1.长按事件:任何1次出现的长按操作都属于长按事件 2.单击事件:1次短按操作后,间隔2s内没有短按操作 3.双击事件 ...

  6. 应广单片机框架程序_T16应用

    T16是应广单片机唯一的一个16bit定时器,一个定时器要么用了计时,要么用来计数.一个定时器,那怎么才能够又用来计时,又可以用了计数呢?这个没有问题,在一定频率(时间)范围内配合中断使用,不仅可以用 ...

  7. 应广单片机adc_应广单片机adc和pwm例程

    应广单片机Otp单核系列主要有以下几个系列,15x系列为纯iO,13x系列为带12bit的adc,17x系列为带8bit的adc,现在我用pms132B写个adc/pwm例程,方便大家快速上手.不多说 ...

  8. 应广PMS171B(1)--概述配置端口输出高低电平

    应广PMS171B--1概述&&配置端口输出高低电平 概述 PMS171B模板 IO 引脚设置 下面例程为PA7口输出1s高电平,输出0.5s低电平. 演示结果 视频教学 最后 概述 ...

  9. 应广单片机_呼吸灯理解

    计数器的介绍 对于应广单片机来说,它提供了3种计数器,分别为 TM2\TM3\T16 其中对于TM2\TM3来说,是属于PWM计数器,用法是简单的,但是要求比较高,需要对应的引脚来达到它的要求 从芯片 ...

最新文章

  1. 卷积核输出特征图大小的计算 深度学习
  2. Selenium2+python自动化46-js解决click失效问题
  3. python爬大学生就业信息报告_Python程序员招聘市场简要报告
  4. 手写一个合格的前端脚手架
  5. Serverless 实战 —— 快速搭建 SpringBoot 应用
  6. python3.6新特性
  7. python的合法名称_python 命名规范
  8. linux计划任务一小时,linux,计划任务,每小时执行一次(共7篇).docx
  9. python 弹窗炸弹
  10. igs时间和utc_UTC时间与北京时间的差多久?
  11. 自动登陆qq空间代码
  12. 开发环境 - pip install cv2下载失败的解决办法
  13. 老文新读 | 大数据于国内影视行业的意义及应用
  14. ADN FDN SDN
  15. arcgis api for javascript4.18加载天地图服务,并且加载自己的发布的动态地图服务
  16. JavaWeb项目中出现No converter found for return value of type的解决方法
  17. 第一章 FANUC数控机床采集方案
  18. PCL点云的旋转平移矩阵
  19. 快速查询单号物流,导出详细信息生成表格
  20. 如何快捷得去除代码中的行号?

热门文章

  1. sensor_msgs/Image消息格式
  2. 理解Java并发编程:volatile关键字解析
  3. 从网上搜集的成都火锅资料
  4. 局域网传输还在用飞鸽?还在用QQ,其实Python也可以实现类似的功能!Python基于scoket实现多路复用TCP局域网文件传输
  5. 聊一聊缓存 [from memory cache 和 from disk cache]
  6. 串口接收模块uart_rx详解
  7. java实现家庭收支记账
  8. 前端包管理器的依赖管理原理
  9. LM324系列运放交越失真的解决办法
  10. 用Ventoy制作U盘引导工具