本帖最后由 direrwind 于 2015-5-7 23:49 编辑
这是小弟自己看datasheet 及使用手册写出的程式码
PA12 设定为捕捉输入
PA13 设定1KHz方波 Duty50% 输出,高电平跟低电平各一半
然后把PA12跟PA13接在一起测量1KHz方波
数据得到 CRLR0=0x31
CFLR0=0x63
发觉PWMA->CCR0.CAPIF0=1; 设置为1的时候,PWM CNR应该要重新计时
但没有重新计数,因为CRLR0=0x31和CFLR0=0x63这两个数据没有一致,
不知道少设定到还是设定错误,麻烦指导感谢
我是根据这张图理解的
以下程式码
#include "NUC1xx.h"
void Initsystem(void);
void PwmInit(void);
main(void)
{
Initsystem();
PwmInit();
PWMA->CCR0.CAPIF0=1;
while(1)
{
while(PWMA->CCR0.CAPIF0!=1);
PWMA->CCR0.CAPIF0=1;
PWMA->CCR0.CFLRI0=0;
while(PWMA->CCR0.CAPIF0!=1);
PWMA->CCR0.CAPIF0=1;
PWMA->CCR0.CRLRI0=0;
}
}
void Initsystem()
{
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = 1;
SYSCLK->CLKSEL0.HCLK_S = 0;
LOCKREG();
}
|