打印
[PIC®/AVR®/dsPIC®产品]

使用MCC学习PIC单片机 – CCP 捕捉/比较/PWM (比较模式)

[复制链接]
3577|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CCP是由Capture(捕捉)、Compare(比较)、PWM三个单词的首字母组成。顾名思义,它有三种功能,即捕捉、比较和PWM。本帖介绍比较模式。

MCC配置界面



功能框图



比较功能

定时器的计数值与预先设定值不断进行比较。两者匹配一致时,会在工作模式控制下,向引脚输出信号。信号的形式,由比较模式决定。
此外,比较匹配时,会置位中断标志,进而引起中断。另外,还会产生一个内部的自动触发信号,引起其他外设的运行,例如触发ADC转换等。

定时器

必须为奇数标号的定时器 Timer1/3/5等。设定的比较值为16位。CCP所使用的定时器,需要在MCC中选择并配置。

比较模式

比较匹配时,CCPx引脚上信号:
-        电平翻转,同时清零定时器TMR
-        电平翻转,不清零TMR
-        输出高电平
-        输出低电平
-        输出脉冲
-        输出脉冲,并清零定时器TMR

MCC代码

在ccp1.c中,

初始化
void CCP1_Initialize(void);
设定比较值
void CCP1_SetCompareCount(uint16_t compareCount);
得到输出状态
bool CCP1_OutputStatusGet(void);
中断服务程序
void CCP1_CompareISR(void);

在pin_manager.c中,可查看引脚配置。
TRISB = 0xB0;
ANSELB = 0xF0;
RB6PPS = 0x09;   //RB6->CCP1:CCP1;   

在main.c中,开启中断。
    // Enable the Global Interrupts
    INTERRUPT_GlobalInterruptEnable();

    // Enable the Peripheral Interrupts
    INTERRUPT_PeripheralInterruptEnable();





使用特权

评论回复
沙发
xuanhuanzi| | 2019-5-8 23:53 | 只看该作者
手册讲的很好

使用特权

评论回复
板凳
奔波儿熊| | 2019-5-10 18:43 | 只看该作者
赞一个

使用特权

评论回复
地板
643757107| | 2019-5-10 20:52 | 只看该作者
中文手册上讲的非常容易上手。

使用特权

评论回复
5
qiu4466| | 2019-5-16 14:47 | 只看该作者
支持一下,顶一个

使用特权

评论回复
6
麦小播| | 2019-5-16 16:25 | 只看该作者
哇!楼主又有新**,顶

使用特权

评论回复
7
z_jzhao| | 2019-5-21 22:05 | 只看该作者
643757107 发表于 2019-5-10 20:52
中文手册上讲的非常容易上手。

有中文手册吗,传一份给我

使用特权

评论回复
8
internally| | 2019-5-23 15:30 | 只看该作者
感谢楼主分享!好好学习下

使用特权

评论回复
9
asdsfgwsafd| | 2019-8-28 10:39 | 只看该作者
microchip的技术手册上说PWM是10位的,MCC配出来的PWM是4位的是什么问题

使用特权

评论回复
10
oxygenzz|  楼主 | 2019-8-28 16:22 | 只看该作者
asdsfgwsafd 发表于 2019-8-28 10:39
microchip的技术手册上说PWM是10位的,MCC配出来的PWM是4位的是什么问题

PWM时钟(TMR2/4/6)的周期寄存器值设小了

使用特权

评论回复
11
oxygenzz|  楼主 | 2019-8-28 16:25 | 只看该作者
PWM 10bit



使用特权

评论回复
12
asdsfgwsafd| | 2019-8-30 16:11 | 只看该作者

懂了,谢谢

使用特权

评论回复
13
PCWL| | 2020-4-28 17:51 | 只看该作者
643757107 发表于 2019-5-10 20:52
中文手册上讲的非常容易上手。

放个链接呗

使用特权

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

本版积分规则

46

主题

190

帖子

11

粉丝