打印

对PIC12F508振荡校准和C语言编程的疑惑??

[复制链接]
3622|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Wxy8030|  楼主 | 2011-11-16 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看数据手册上,PIC12F508的复位向量明明是 0000H 处,如果要校准震荡,也需要将存储器中 1FFH 处的值读出来,写入 OSCCAL ,如:
#define  C_OSCCAL_ADJ (*(const unsigned char *)0x1ff)
OSCCAL=C_OSCCAL_ADJ;

但实际上用 MPLAB SIM 模拟程序运行时的结果让我有点疑惑,因为在模拟器中,复位后程序进入的是 1FFH 处,而继续执行则跳到 0000H 处,两条指令翻译成汇编代码依次为:
MOVLW C_OSCCAL_ADJ
MOVWF OSCCAL

从道理上说,也说得通,CPU和C编译器已经帮我们处理好了校准问题,不需要我们再关注了,但为啥在数据手册里没明说呢?

相关帖子

沙发
HWM| | 2011-11-16 10:09 | 只看该作者
器件数据手册是给所有器件使用者看的,包括那些为其写启动代码和编译器的人。作为一般使用者,不仅需了解器件手册,还需要了解相关的启动代码和编译器的功能。

使用特权

评论回复
板凳
xaq79| | 2011-11-16 10:27 | 只看该作者
数据手册里面有详细正确说明呀,怎么没有?

使用特权

评论回复
地板
hotpower| | 2011-11-16 10:32 | 只看该作者
以前用过C508,汇编是这样的。
资源太少,连中断都没有,用着不爽。

使用特权

评论回复
5
Wxy8030|  楼主 | 2011-11-16 15:04 | 只看该作者
后来编译后发现,用C语言,按照网上搜索的方法,根本无法实现对振荡的校准!也就是说,12F508 这款器件,很难实现在主循环中始终更新 OSCCAL ...... (除非把每个器件的校准参数读出来再直接写在程序里)

使用特权

评论回复
6
yewuyi| | 2011-11-16 15:09 | 只看该作者
因为最好的那个地址一般是已经出厂就固化好数值的,不要你去管了。

使用特权

评论回复
7
yewuyi| | 2011-11-16 15:10 | 只看该作者
一般编程器是要回避那个地址的,否则被擦掉就惨了。

使用特权

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

本版积分规则

146

主题

2100

帖子

2

粉丝