应广单片机使用IHRC校准ILRC--附带产物随机数产生器

           应广单片机内部有两个时钟源分别是IHRC和ILRC,IHRC频率在16M附近,ILRC一般为几十K,IHRC在烧录的时候可以进行校准,IHRC校准之后,频率还比较稳定.ILRC没有校准这个功能.

IHRC校准之后,频率还比较稳定.

        在一些特别应用中,在一些特殊场合,需要使用ILRC作为系统时钟..那么可以使用IHRC对ILRC进行校准.

校准方法如下:
word usIlrcFrq;
word reload_T16;
byte ucRand;
/*相应于main函数*/
void    FPPA0 (void)
{
    /*单片机内部RC时钟为 IHRC默认为16M,因此,IHRC/8=2M,系统时钟为2M*/
    .ADJUST_IC    SYSCLK=IHRC/8  


    $ T16M ILRC,/1,bit15;//打开定时器,使用ILRC作为时钟源

    reload_T16 = 0;/*计数值清0*/


    stt16 reload_T16;//初始化计数器的值

    .delay 1000*2000;//指令延时1秒

    LDT16 usIlrcFrq;//记录1s后的计数器的值,即ILRC的时钟
    $ T16M stop;//关闭定时

    ucRand=usIlrcFrq$0;/*用计数值的低8bit作为随机数*/

    .PRINTF    ("usIlrcFrq= %d \n\n",usIlrcFrq );

    .PRINTF    ("ucRand= %d \n\n",ucRand );

     
    /*主循环*/
    while (1)
    {


       
    }
}

     为了能够使ILRC更准确,还可以间隔一段时间进行校准一次,也可以自己再去试一试.

         由于ILRC不能在烧录的时候进行校准,而且电压和温度对ILRC有不小影响,因此每次上电去到的ILRC的时钟就有一些差别,而这个差别正好有时候可以用.就是当做一个伪随机数来用.

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值