pic单片机内部时钟校准c语言,pic单片机时钟配置

pic单片机时钟配置

已有 1687 次阅读2016-1-2 18:38

|个人分类:发现

还是PIC12F1572,某个io 输出脉冲信号。io置高,置低都是立即数给寄存器,电平竟然要16us才变化。用的内部时钟,根据手册,时钟频率可到32M。大概计算,io置高置低,执行时间应该在0.4us左右。再怎么延迟也不会16us。后来看到手册写的最小指令周期125ns。可能是时钟的配置没有到最大。 程序中只有CONFIG1,CONFIG2寄存器的配置。// CONFIG1

#pragma config FOSC = INTOSC    //  (INTOSC oscillator; I/O function on CLKIN pin)

#pragma config WDTE = OFF        // Watchdog Timer Enable (WDT enabled)

#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)

#pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)

#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)

#pragma config BOREN = OFF       // Brown-out Reset Enable (Brown-out Reset enabled)

#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)

都是位操作。 把时钟频率配置位的操作加上,编译出错。 不习惯开发环境,go to definition 也go不了。干脆就看手册,把寄存器的名字复制过来。在main函数里赋值。配成最高频率。编译一下,竟然通过了。  下载运行。我靠。波形变窄啦。实际波形,高低电平跳变大概500ns。比较接近理论值了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值