打印

PIC12F629内部4M振荡在C语言中校准

[复制链接]
3405|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dcp|  楼主 | 2008-8-3 22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
main
;校准内部振荡器
;--------------------------------------------------------------------
          call    0x3FF             ; retrieve factory calibration value
    bsf     STATUS,RP0        ; set file register bank to 1 
    movwf   OSCCAL            ; update register with factory 
汇编中这是样的

c语言:

#define   OSCCAL_CHECK (*(const unsigned char *)0x3ff) //读取flash 0x3ff的振荡校准值

main()
{
     ...
     while (1)
     {
          OSCCAL = OSCCAL_CHECK;   
          ...   
     }
}


沙发
dcp|  楼主 | 2008-8-4 00:53 | 只看该作者

编译器。。。

#define OSCCAL_CHECK(*(unsigned char(*)())0x3FF)()

使用特权

评论回复
板凳
yewuyi| | 2008-8-4 08:31 | 只看该作者

为什么要校准???

出厂已经做了校准,典型环境下1%还不够吗?

使用特权

评论回复
地板
dcp|  楼主 | 2008-8-4 12:10 | 只看该作者

这个问题你跟HOTPOWER去理论;D

使用特权

评论回复
5
yewuyi| | 2008-8-4 13:40 | 只看该作者

hotpower难道由搞什么非典?!

使用特权

评论回复
6
yewuyi| | 2008-8-4 14:01 | 只看该作者

这样不行吗?

const uchar  OSCCAL_CHECK  @0x3ff;


void main(void)
{
OSCCAL = OSCCAL_CHECK;
while(1){}
}

个人认为不需要把RC校正发到while(1){}循环里面。。。

使用特权

评论回复
7
xieyuanbin| | 2008-8-5 10:55 | 只看该作者

很关心校准所用基准

使用特权

评论回复
8
yewuyi| | 2008-8-5 11:10 | 只看该作者

HOTPOWE可能用的是通信时的同步头做的自动校准

哎,真累,搞那么麻烦干什么。。。

使用特权

评论回复
9
xieyuanbin| | 2008-8-9 07:57 | 只看该作者

自动校准有其必要.

比如交流可控硅调速,必须适应50,60HZ 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

dcp

71

主题

720

帖子

1

粉丝