×

透过HT48R10-1 BZ口输出32768Hz时钟Crys

消耗积分:3 | 格式:rar | 大小:344 | 2010-03-21

凤毛麟角

分享资料个

透过HT48R10-1 BZ 口输出32768HzCrystal 的使用
使用说明将32K 晶振直接挂在PA.0 和PA.1 上,PA.0 作为输入口,记作OSCI,PA.1 作为输出口,记作OSCO,其作用为读取OSCI 的值并将其取反输出。程序运行后将会从PB.0 口输出一个频率为32K 的方波,同时在PA.1 口也可以看到与PB.0 同步的波形。
C_TMRC,C_TMR 和C_INTC 的值分别为在程序中需写入TMRC,TMR 及INTC 的值,C_INIT_L和C_INIT_H 为使32K 晶振起振所需的循环次数的低位及高位。R_INIT 为记忆C_INIT_L 值的缓存器。
子程序INI_TIAL 作用为设置IO 口的输入输出状态,对TMR 及INT 进行初始设置。子程序INI_32K 作用为实时追踪OSCI 的输入状态并及时改变OSCO 的输出状态,使32K 晶振能起振并达到稳定状态。子程序SBR_OSCI_L 作用为等待OSCI 输入变为低准位,随后将OSCO 取反输出,同时将OSCO 输出的值从PB.0 同步输出。子程序SBR_OSCI_H 作用为等待OSCI 输入变为高准位,随后将OSCO 取反输出,同时将OSCO 输出的值从PB.0 同步输出。TIMER 的中断服务程序ISR_TIMER 的作用为等待OSCI 状态的翻转然后改变OSCO 及PB.0 的输出。
在32K 晶振稳定起振后,微控制器每隔28 个指令周期才会进入一次TIMER 中断,这28 个
指令周期可以运行其它的程序。由于每个32K 的晶振所振出的频率略有不同,如果使用中发现32K 晶振短暂振荡后停振,可以将C_TMR 改为一个较大的值直到能使32K 晶振稳定振荡。注意:改变C_TMR 的值后会影响微控制器进入中断的时间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !