PCA安装完毕后不能使用,谁知道怎么解决

PCA安装完毕后不能使用,谁知道怎么解决,第1张

PCA(可编程计数器阵列Programmable Counter Aaray)由高字节(PCA0L)和低字节(PCA0L)

组成。在读PCA0L 的同时自动锁存PCA0H 的值,先读PCA0L 寄存器将使PCA0H 的值得到保持

(在读PCA0L 的同时),直到用户读PCA0H 寄存器为止。读PCA0H 或PCA0L 不影响计数器工

作。PCA0MD 寄存器中的CPS2-CPS0 位用于选择PCA 计数器/定时器的时基信号。

CPS2 CPS1 CPS0时间基准

0 0 0 系统时钟的12 分频

0 0 1 系统时钟的4 分频

0 1 0 定时器0 溢出

0 1 1 ECI 负跳变(最大速率 = 系统时钟频率/4)

1 0 0 系统时钟

1 0 1 外部振荡源8 分频(与系统时钟同步)

1.工作原理:当计数/定时器溢出时,PCA0MD中的计数器溢出标志(CF)被置为1,并产生中断

请求(如果CF 中断被允许)。将PCA0MD 中ECF 位设置为逻辑1 即可允许CF 标志产生中断请

求。当CPU 转向中断服务程序时,CF 位不能被硬件自动清除,必须用软件清0。(注意:要

使CF 中断得到响应,必须先总体允许PCA0 中断。通过将EA 位(IE.7 )和EPCA0 (EIE1.3

)设置为逻辑1 来总体允许PCA0 中断。清除PCA0MD寄存器中的CIDL 位将允许PCA 在微控制

器内核处于等待方式时继续正常工作。

2.PCA0CN:PCA控制寄存器

R/W R/WR/W R/W R/W R/WR/WR/W 复位值

CFCR - CCF4 CCF3 CCF2 CCF1CCF0 00000000

位7 位6 位5 位4 位3 位2 位1 位0

(可位寻址)

SFR地址

0xD8

位7: CF: PCA 计数器/定时器溢出标志

当PCA0 计数器/定时器从0xFFFF 到0x0000 溢出时由硬件置位。在计数器/

定时器溢出(CF) 中断被允许时,该乎轿位置1 将导致CPU 转向CF 中断服务

程序。该位不能由硬件自动清0, 必须用喊笑软件清0

位6: CR: PCA0 计数器/定时器运行控制

该位允许禁止PCA0 计数器定时器

0: 禁止PCA0 计数器定时器

1: 允许PCA0 计数器定时器

位5: 未用读=0b 写=忽略

位4: CCF4 PCA0 模块4 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中郑顷含断被允许时,该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 必须用软件

清0

位3: CCF3: PCA0 模块3 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位2: CCF2: PCA0 模块2 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位1: CCF1: PCA0 模块1 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位0: CCF0: PCA0 模块0 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

PCA0MD:PCA发生选择寄存器

CIDL - - - CPS2 CPS1 CPS0 ECF 00000000

位7 位6 位5 位4 位3 位2 位1 位0 SFR地址

0xD9

位7: CIDL: PCA0 计数器/定时器等待控制

规定CPU 等待方式下的PCA0 工作方式

0: 当系统控制器处于等待方式时,PCA0 继续正常工作

1: 当系统控制器处于等待方式时,PCA0 停止工作

位6-4 :未用读=000b 写=忽略

位3-1: CPS2-CPS0 PCA0 计数器/定时器脉冲选择

位0: ECF: PCA 计数器/定时器溢出中断允许

该位是PCA0 计数器/定时器溢出CF 中断的屏蔽位

0: 禁止CF 中断

1: 当CF(PCA0CN.7) 置位时允许PCA0 计数器/定时器溢出中断请求

PCA0CPMn:PCA捕捉/比较寄存器

PWM16n ECOMnCAPPn CAPNn MATn TOGnPWMnECCFn 00000000

位7 位6 位5 位4 位3 位2位1 位0 SFR地址

0xDA-0xDE

PCA0CPMn 地址 PCA0CPM0 0xDA(n=0)

PCA0CPM1 0xDB(n=1)

PCA0CPM2 0xDC(n=2)

PCA0CPM3 0xDD(n=3)

PCA0CPM4 0xDE(n=4)

位7: PWM16n: 16 位脉冲宽度调制允许

当脉冲宽度调制方式被允许时(PWMn = 1), 该位选择16 位方式

0: 选择8 位PWM

1: 选择16 位PWM

位6: ECOMn: 比较器功能允许

该位允许禁止PCA0 模块n 的比较器功能

0: 禁止1: 允许

位5: CAPPn: 正沿捕捉功能允许

该位允许禁止PCA0 模块n 的正边沿捕捉

0: 禁止 1: 允许

位4: CAPNn 负沿捕捉功能允许

该位允许禁止PCA0 模块n 的负边沿捕捉

0: 禁止1: 允许

位3: MATn 匹配功能允许

该位允许/禁止PCA0 模块n 的匹配功能.如果被允许,当PCA0 计数器与一

个模块的捕捉比较寄存器匹配时,PCA0MD 寄存器中的CCFn 位置位

0 :禁止

1: 允许

位2: TOGn 电平切换功能允许

该位允许/禁止PCA0 模块n 的电平切换功能.如果被允许,当PCA0 计数器

与一个模块的捕捉/比较寄存器匹配时,CEXn 引脚的逻辑电平切换.如果

PWMn 位也被置为逻辑1, 则模块工作在频率输出方式

0: 禁止

1: 允许

位1: PWMn 脉宽调制方式允许

该位允许/禁止PCA0 模块的PWM 功能.如果被允许,CEXn 引脚输出脉冲

宽度调制信号.如果PWM16n 为逻辑0, 使用8 位PWM 方式如果PWM16n

为逻辑1, 使用16 位方式如果TOGn 位也被置为逻辑1 ,则模块工作

在频率输出方式

0: 禁止

1: 允许

位0: ECCFn 捕捉比较标志中断允许

该位设置捕捉比较标志CCFn 的中断屏蔽

0: 禁止CCFn 中断

1: 当CCFn 位被置1 时允许捕捉比较标志的中断请求

3.捕捉/比较模块的工作方式:

边沿触发捕捉、软件定时器、高速输出、频率输出、8位脉宽调制器和16位脉宽调制器

pca有四种工作模式:

1、捕获运简模式:此时应该使能CCAPMn中CAPNn和CAPPn,此时模块对外部CCPn输入的跳变进行采样,当采样到有效跳变时,PCA硬件就将PCA计数器阵列寄存器(CH和CL的值装载到模块的捕获寄存器中)团段。

2、16位软件定时器模式:置位ECOMn和MATn位,可使PCA模块用作软件定时器。PCA定时器的值与模块捕获寄存器的值进行比较,若两者相等,产生中断,CH和CL过一段时间加1,时间间隔取决于选择的时钟源。例如,当选择的时钟源为SYSclk/12时,每12个时钟周期CH和CL加1,当增加到捕获寄存器的值时将产生中断请求。

3、高速旁或裤输出模式:该模式下,当PCA计数器的计数值与模块的捕获寄存器的值向匹配时,PCA的CCPn输出将发生翻转,要激活该模式,需要置位TOGn,MATn和ECOMn位。

4、脉宽调节模式(PWM):脉宽调制是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动、D/A转换等场合有广泛的应用。8位PWM由于所有模块共用仅有的PCA定时器,所有他们的输出频率都相同,各个模块的输出占空比是独立变化的,与使用的捕获寄存器有关。当寄存器CL的值小于捕获寄存器L的值时,输出为低,当大于时,输出为高,当溢出时,H中的数值自动装入CL中,由于PWM是8位的,所以PWM的频率 = PCA时钟源频率/ 256。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12350595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存