瑞萨工程师你好:
我在做互补PWM时和AD配合用的。利用PWM中的TRD0和trdgra0 比较匹配进行AD值传送的。AD在8位时是对的。但是我有10位AD时,发现AD 的高2位的值不传到TRDGRD0(也就是无法传入TRDGRB0)中,这样就失去10位AD的作用。请问这是什么原因形成的?
void ad_init(void)
{
adcon0 = 0x07;
adcap = 1;
adcon1 = 0x28; /* 28=10 bit mode cks1=0 setting / Vref connected */
adcon2 = 0x00;
wait_vref();
adic = 0x00; // 中断位IR清零,中断优先级为0级
asm("NOP"); /* Waiting for stability */
asm("NOP");
adst = 0; //A/D转换开始和停止位
ad = 0x00; //AD寄存器清零
adge = 1; //TRD1 比较匹配时输出 AD触发=1。
adtrg = 1; //允许A/D触发
trdgrd0 = ad; //trdgrd0 值在比较匹配时传送 trdgrb0
trdgrc1 = ad; //问题就在这边,无法正常传高2位的值????
trdgrd1 = ad;