系统时钟和定时器节拍时钟 设置寄存器

tickspd用于产生timer1 ,3,4的基本节拍,最大可以是32MHZ
此时定时器加1的所需事件最短,为1/32 us 
定时器除了tickspd的分频,还可以在tickspd的基础上分频,比如timer3

clkspd用于产生cpu执行指令的基本节拍,最大可以使32MHZ,
此时执行asm("NOP")所用时间是 < 0.1 us(如下测试输出方波周期是0.375*2)
while(1)
{
asm("NOP");
P1_0=!P1_0;
}

协议栈中默认tickspd为0,即ticker=32MHZ
但是如果使用了HalTimerInit函数,就不是了

void HalTimerInit (void)
{T1CCTL0 = 0;    /* Make sure interrupts are disabled */T1CCTL1 = 0;    /* Make sure interrupts are disabled */T1CCTL2 = 0;    /* Make sure interrupts are disabled */T3CCTL0 = 0;    /* Make sure interrupts are disabled */T3CCTL1 = 0;    /* Make sure interrupts are disabled */T4CCTL0 = 0;    /* Make sure interrupts are disabled */T4CCTL1 = 0;    /* Make sure interrupts are disabled *//* Setup prescale & clock for timer0 */halTimerRecord[HW_TIMER_1].prescale    = HAL_TIMER1_16_PRESCALE;halTimerRecord[HW_TIMER_1].clock       = HAL_TIMER_32MHZ;halTimerRecord[HW_TIMER_1].prescaleVal = HAL_TIMER1_16_PRESCALE_VAL;/* Setup prescale & clock for timer2 */halTimerRecord[HW_TIMER_3].prescale    = HAL_TIMER3_8_PRESCALE;halTimerRecord[HW_TIMER_3].clock       = HAL_TIMER_32MHZ;halTimerRecord[HW_TIMER_3].prescaleVal = HAL_TIMER3_8_PRESCALE_VAL;/* Setup prescale & clock for timer3 */halTimerRecord[HW_TIMER_4].prescale    = HAL_TIMER4_8_PRESCALE;halTimerRecord[HW_TIMER_4].clock       = HAL_TIMER_32MHZ;halTimerRecord[HW_TIMER_4].prescaleVal = HAL_TIMER4_8_PRESCALE_VAL;/* Setup Timer1 Channel structure */halTimerChannel[HW_TIMER_1].TxCCTL =  TCHN_T1CCTL;halTimerChannel[HW_TIMER_1].TxCCL =   TCHN_T1CCL;halTimerChannel[HW_TIMER_1].TxCCH =   TCHN_T1CCH;halTimerChannel[HW_TIMER_1].TxOVF =   TCNH_T1OVF;halTimerChannel[HW_TIMER_1].ovfbit =  TCHN_T1OVFBIT;halTimerChannel[HW_TIMER_1].intbit =  TCHN_T1INTBIT;/* Setup Timer3 Channel structure */halTimerChannel[HW_TIMER_3].TxCCTL =  TCHN_T3CCTL;halTimerChannel[HW_TIMER_3].TxCCL =   TCHN_T3CCL;halTimerChannel[HW_TIMER_3].TxCCH =   TCHN_T3CCH;halTimerChannel[HW_TIMER_3].TxOVF =   TCNH_T3OVF;halTimerChannel[HW_TIMER_3].ovfbit =  TCHN_T3OVFBIT;halTimerChannel[HW_TIMER_3].intbit =  TCHN_T3INTBIT;/* Setup Timer4 Channel structure */halTimerChannel[HW_TIMER_4].TxCCTL =  TCHN_T4CCTL;halTimerChannel[HW_TIMER_4].TxCCL =   TCHN_T4CCL;halTimerChannel[HW_TIMER_4].TxCCH =   TCHN_T4CCH;halTimerChannel[HW_TIMER_4].TxOVF =   TCNH_T4OVF;halTimerChannel[HW_TIMER_4].ovfbit =  TCHN_T4OVFBIT;halTimerChannel[HW_TIMER_4].intbit =  TCHN_T4INTBIT;
}

比如

        // 使用硬件定时器4HalTimerInit ( );HalTimerConfig (HAL_TIMER_2,                        // 8bit timer2HAL_TIMER_MODE_NORMAL,                 // Clear Timer on CompareHAL_TIMER_CHANNEL_A,           // Channel 1 - defaultHAL_TIMER_CH_MODE_OVERFLOW,   // 溢出模式TRUE,                         // Use interruptIR38KHZTimerCallBack);             // Channel ModeHalTimerStart(HAL_TIMER_2,1);//halTimerSetCounthalTimerSetPrescale(HAL_TIMER_2,0xa0);//0x00-20-40-60-80-a0-c0-e0----> /1---/128
extern uint8 halTimerSetPrescale (uint8 hwtimerid, uint8 prescale);
extern uint8 halTimerSetCount (uint8 hwtimerid, uint32 timePerTick);
void IR38KHZTimerCallBack ( uint8 timerId, uint8 channel, uint8 channelMode);
void IR38KHZTimerCallBack ( uint8 timerId, uint8 channel, uint8 channelMode)
{if ((timerId == HAL_TIMER_2) && (channelMode == HAL_TIMER_CH_MODE_OUTPUT_COMPARE)){//osal_update_timers();}
}

转载于:https://www.cnblogs.com/-song/archive/2013/02/16/3331827.html

zigbee 协议栈的时钟和定时器分频相关推荐

  1. DSP之时钟与定时器之一时钟发生器

        时钟与定时器包括时钟产生器.通用定时器.实时时钟以及看门狗定时器等. 时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出:通用定时器.实时时钟及看门狗定时器的功能是通过计数器为 ...

  2. DSP学习笔记之系统时钟、定时器、GPIO篇

    \qquad写在前面,不管是C51.MSP430.32也好,DSP也好,总要有一个掌握的比较熟练,不能每次都复制粘贴别人的代码然后修修补补吧.不要再做Ctrl +C.Ctrl+V工程师.主要参考来自于 ...

  3. ZigBee协议栈浅显解读(一)

    目前ZigBee开发主要用的是TI的CC2530.CC2530内部集成看增强型的51所以对于只学过51的小白入门不成问题. 本篇文章我只会介绍ZigBee的协议栈. 我们打开ZigBee协议栈后可以加 ...

  4. zigbee协议栈初使用(三)无线数据传输

    zigbee协议栈初使用(三)无线数据传输 本次使用协议栈例程广播通信完成,本文记录网蜂<Zigbee实战演练>学习总结 一.发送部分   打开SampleApp.c找到 uint16 S ...

  5. ZigBee协议栈之osal浅析

    ZigBee是目前比较流行的一种低功耗无线组网技术,主要用于智能家居控制以及智能工业生产.ZigBee大的特点就是低功耗.自组网. 说到ZigBee就不得不提IEEE802.15和ZigBee联盟,他 ...

  6. zigbee协议栈学习(二)

    协议栈规范的 ID号可以通过查询设备发送的 beacon 帧获得.在设备加入网络之前,首先 需要确认协议栈规范的 ID."特定网络"规范 ID号为0: ZigBee协议栈规范的 I ...

  7. 使用 FlipClock.js 制作精美的时钟、定时器和倒计时功能

    FlipClock.js 被创建出来是因为其他的解决方案不够抽象,不能够在不重写的代码的情况下提供了深层次的自定义.有些库的参数过多,而另外一些则是脚本中的硬编码太多,不够灵活. 在参考许多现有的解决 ...

  8. POSIX标准总体分析 执行调度 消息传递 调度参数 进程调度函数 关闭消息队列 得到消息队列参数 设置调度参数 时钟和定时器  时钟和定时器函数 消息传递函数 打开消息队列 设置消息队列参数

    粉丝不过w 调度参数 一个调度参数结构 sched_param 包括了调度策略所支持的执行者所需要的调度参数,它在头文件<sched.h>中定义 执行者可根据规对该结构进行扩展 调度策略 ...

  9. ZigBee协议栈简介和流程

    ZigBee协议栈实际上就是ZigBee协议的API接口 一般步骤为: 1.组网:调用协议栈的组网函数.加入网络函数,实现网络的建立与节点的加入 2.发送:发送节点调用协议栈的无线数据发送函数,实现无 ...

最新文章

  1. js添加多个子节点_JS创建DOM节点-使用document.createElement()创建子节点或同级节点...
  2. Objective-C设计模式(MVC)的实现,以及协议与委托的运用
  3. Java——多线程实现的三种方式
  4. cif是目的港交货吗_刚接手出口业务,搞不懂FOB? CIF? 为你科普→
  5. Hadoop优势,生态圈
  6. HTML系列(四):编辑图像
  7. MySQL 数据库救火:磁盘爆满了,怎么办?
  8. STM32使用PWM输入模式测试频率和占空比
  9. C语言控制台美化教程
  10. BOOST升压电路原理详解
  11. matlab入门基础函数
  12. 小米9 -MIUI12.5稳定版卡刷包与线刷包-V12.5.3.0.RFACNXM
  13. 【2022】字节跳动面试真题,1000问(Java岗)
  14. 禁用win10 1903 wifi诊断
  15. mysql联合主键及用法
  16. 软件测试实习生 带人计划 Plan for Training Inten
  17. 计算机类sci查重,SCI科研写作:国自然标书查重方法
  18. leetcode hot100 之 子集
  19. php中实现图片自动轮播,基于vue.js实现图片轮播效果
  20. 日期插件layDate的使用

热门文章

  1. windows 7下用SaveFileDialog弹不出对话框问题
  2. 使用Android高性能音频--OpenSL ES和AAudio
  3. memcpy和memmove的区别
  4. JDBC数据库查询操作
  5. API网关—系统的门面要如何做呢?
  6. 多重for循环如何提速
  7. 《Python编程从入门到实践》学习笔记8(第9章:类)
  8. F1 score,micro F1score,macro F1score 的定义
  9. 13.Git分支-变基(rebase)、rebase VS merge
  10. Scala 读取文件