EMC菜鸟 发表于 2021-12-23 12:18:09

请教版主,STC8H3K64S4的PWM触发AD的例程为啥不行?

STC8H3K64S4 号称真正 12位的AD(之前的是假的?)、史上最强PWM,片子到手后、正好试试这个史上最强PWM触发真正的12BIT-AD,结果按照例程死活不行,只能转换一次、不能连续转换,能指点一下吗?

AD初始化:
        ADCTIM = 0x3F ;
        ADCCFG = 0x20 ;       
        ADC_CONTR = 0x90 | a ;       
        Delay();
        EADC=1;
        //
        PWMA_CR2 = 0x10;
        PWMA_ARRH =0x02;
        PWMA_ARRL =0x70;
        PWMA_PSCRH =0x00;
        PWMA_PSCRL =0x02;
        PWMA_CR1 = 0x01;       

小李非刀 发表于 2021-12-23 18:07:14

PWMA_CR2 = 0x20;
只用更新触发即可。

EMC菜鸟 发表于 2021-12-24 08:48:53

小李非刀 发表于 2021-12-23 18:07
PWMA_CR2 = 0x20;
只用更新触发即可。

可以了!

不过你们这数据手册写的,真是一言难尽啊,,,

小李非刀 发表于 2021-12-24 09:26:54

EMC菜鸟 发表于 2021-12-24 08:48
可以了!

不过你们这数据手册写的,真是一言难尽啊,,,

手册写的是单次触发的,你要的是每次PWM周期都要触发。我也是测试了才知道,而我的程序是每次PWM周期开始就触发ADC,所以给的值就是0x20。如果要延时一下再触发,则要在更新中断中设置一个定时器延时才行。
页: [1]
查看完整版本: 请教版主,STC8H3K64S4的PWM触发AD的例程为啥不行?