EDABOSS电子论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 756|回复: 0

[转帖] PIC单片机时钟配置

[复制链接]

106

主题

13

回帖

96

E币

助理工程师

Rank: 3Rank: 3

积分
225
发表于 2018-11-21 15:01:06 | 显示全部楼层 |阅读模式
还是PIC12F1572,某个io 输出脉冲信号。io置高,置低都是立即数给寄存器,电平竟然要16us才变化。用的内部时钟,根据手册,时钟频率可到32M。大概计算,io置高置低,执行时间应该在0.4us左右。再怎么延迟也不会16us。后来看到手册写的最小指令周期125ns。可能是时钟的配置没有到最大。 程序中只有CONFIG1,CONFIG2寄存器的配置。// CONFIG19 ~8 H; k4 I6 ^- o! X5 Q" V  q# D
#pragma config FOSC = INTOSC    //  (INTOSC oscillator; I/O function on CLKIN pin)% f$ E1 b) X. q) Q
#pragma config WDTE = OFF        // Watchdog Timer Enable (WDT enabled)# o+ C# l3 w. G: d0 m
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)* F/ R* G5 U% F
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)% A( G9 f8 |) l  ~1 A: `" d  d
#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)$ t  R. S: n& ^" F9 r5 X! J+ X) ?

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|EDABOSS电子论坛

GMT+8, 2024-4-19 20:30 , Processed in 0.038108 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表