李召昭 发表于 2013-11-24 23:51

GPIO设置问题

“置位寄存器GPxSET是一个只写寄存器,读为0。如果对应的引脚配置为输出,则向置位寄存器的该位写1,将对应引脚的电平拉高,写0则无效”
这句话是说,如果GPxSET写入1的话,那么引脚将输出1即高电平,这就是个置位操作,我可以这么理解吗?进入中断后我要在判断ncount与60的大小,重新定义输出,然而红色部分代码不大明白,难道进入中断后要重新对引脚置位?
interrupt void cpu_timer0_isr(void)
{
   CpuTimer0.InterruptCount++;

   // Acknowledge this interrupt to receive more interrupts from group 1
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
   CpuTimer0Regs.TCR.bit.TIF = 1;//清除中断标识位
   CpuTimer0Regs.TCR.bit.TRB = 1;//重新装载计数初值
   GpioDataRegs.GPBSET.bit.GPIO52=1;//
   GpioDataRegs.GPBDAT.bit.GPIO52=( nCount1<60 )?1:0;//52口输出值
   nCount1++;
   if (nCount1==100)
   {f++;}
   nCount1%=100;

   
}

李召昭 发表于 2013-11-24 23:52

求指导

zhangmangui 发表于 2013-11-25 09:17

GPxSET是置位的意思也就是将对应的寄存器置位为1
与之对应有个清除寄存器也就是清零
那就是在判断条件是否成立之前将IO先置位也就是默认在条件判断之前
都是nCount1是小于60的

李召昭 发表于 2013-11-25 09:56

感谢版主!
还有一个问题想请教。现在在编一个PWM控制直流电机的程序,这里中断计时器计数0x3000后进入中断,中断程序中Nount1计数100次后f+1,f计满122正好是1s,此时会改变pwm占空比。这里我不大懂的事,进入中断后,为什么需要这句置位操作呢?在判断ncount1之前,让它保持原来的状态不行吗?

李召昭 发表于 2013-11-25 09:57

zhangmangui 发表于 2013-11-25 09:17 static/image/common/back.gif
GPxSET是置位的意思也就是将对应的寄存器置位为1
与之对应有个清除寄存器也就是清零
那就是在判断条件 ...

感谢版主!
还有一个问题想请教。现在在编一个PWM控制直流电机的程序,这里中断计时器计数0x3000后进入中断,中断程序中Nount1计数100次后f+1,f计满122正好是1s,此时会改变pwm占空比。这里我不大懂的事,进入中断后,为什么需要这句置位操作呢?在判断ncount1之前,让它保持原来的状态不行吗?

zhangmangui 发表于 2013-11-25 13:12

李召昭 发表于 2013-11-25 09:57 static/image/common/back.gif
感谢版主!
还有一个问题想请教。现在在编一个PWM控制直流电机的程序,这里中断计时器计数0x3000后进入中 ...

GPIO的状态如果你不去改变肯定是保持原来状态的可能只是对第一次有用
PWM输出你可以用响应的事件管理器你用的是哪款DSP?

李召昭 发表于 2013-11-25 15:00

TMS28335。是吧,这句应该在初始化操作里吧。在这里的话,每次进中断都会有一次置位,在PWM波低电平时会出现毛刺,实验测得的结果是这样,现在在分析为什么有毛刺。我觉得是这里的原因。这个程序是现成的例程,不是自己写的。有待回去实验验证。

zhangmangui 发表于 2013-11-25 18:16

李召昭 发表于 2013-11-25 15:00 static/image/common/back.gif
TMS28335。是吧,这句应该在初始化操作里吧。在这里的话,每次进中断都会有一次置位,在PWM波低电平时会出 ...

28335的事件管理器是很强大的必须好好利用起来
在运动控制电源产品   逆变等里面

李召昭 发表于 2013-11-26 09:46

嗯,感谢版主。正在学习中。

李召昭 发表于 2013-11-26 09:47

zhangmangui 发表于 2013-11-25 18:16 static/image/common/back.gif
28335的事件管理器是很强大的必须好好利用起来
在运动控制电源产品   逆变等里面 ...

嗯,感谢版主。正在学习中。
页: [1]
查看完整版本: GPIO设置问题