提问人:simon 提问时间:11/9/2023 最后编辑:simon 更新时间:11/9/2023 访问量:15
使用TCC1定时器在个人板上生成PWM信号
Use TCC1 timer generate PWM signal on personnal board
问:
我有一个带有 Arduino samd 内核的个人 baord 构建。如果我查看我的引脚,我想生成 PWM 信号,我有这条线作为我的引脚samd21e18a
PA30
variant.cpp
{ PORTA, 30, PIO_PWM, PIN_ATTR_DIGITAL|PIO_SERCOM, No_ADC_Channel, NOT_ON_PWM, TCC1_CH0, EXTERNAL_INT_10 }, // SWCLK
所以对我来说,我可以使用,所以这是我尝试过的TCC1_CH0
void setup() {
GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID(TCC1_GCLK_ID) |
GCLK_CLKCTRL_GEN_GCLK0 |
GCLK_CLKCTRL_CLKEN;
while (GCLK->STATUS.bit.SYNCBUSY);
Tcc* TC = (Tcc*) TCC1;
TC->CTRLA.reg &= ~TCC_CTRLA_ENABLE;
TC->WAVE.reg = TCC_WAVE_WAVEGEN_NPWM;
TC->CTRLA.reg |= TCC_CTRLA_PRESCALER_DIV1 |
TCC_CTRLA_RUNSTDBY;
PORT->Group[PORTA].PINCFG[30].bit.PMUXEN = 1; // activate alternate function
PORT->Group[PORTA].PMUX[15].reg = PORT_PMUX_PMUXE_E; // use TCC1_CH0
TC->CC[0].reg = 2000;
TC->CC[1].reg = 2500;
// Activer le timer
TC->CTRLA.reg |= TCC_CTRLA_ENABLE;
while (TC->SYNCBUSY.bit.ENABLE);
}
因此,如果我将示波器插入引脚上,我就会有一些东西,但这很奇怪
如果我更改脉冲宽度变化,但我不明白为什么我只有一个波,如果我将时间测量值 40us 更改为 2ms,例如只出现一个波,情况也是一样的TC->CC[0].reg
答: 暂无答案
评论