打印
[其他ST产品]

ST72LITE39的PWM的时钟无法配置成FCPU,请高手指点。

[复制链接]
2458|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
53213324|  楼主 | 2007-12-23 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的ST72LITE39MCU,封装SO-20。
在配置PWM的时钟时,我想使用FCPU时钟以达到尽可能高的频率。但在调试过程中,出现了一些无法理解的问题,如下:
1. 在设置ATCSR=0X10;无效输出的情况下。我改用LITE定时器基准时间作为PWM时钟(ATCSR=0X08),此时可以观察到PWM0有波形出来,精度不高,不过可认为是正确的。
2. 但是其他一切不变,令ATCSR=0X10就没有输出了。
3. 后来我打开溢出中断,令ATCSR=0x0a, 使用的是LITE定时器时钟,有PWM输出,并且有溢出中断。但是,令ATCSR=0x12时,使用FCPU时钟,还是一样PWM没有输出,但此时亦有溢出中断。(注意:起先使用的一片MCU是没有中断的,后来换了片MCU就可以中断了)

请高手,或有实际经验的,指教指教啊。
附:怎样控制PWM的打开和关闭才会快。我怎么发现从配置PWM完成到PWM输出会很慢啊?
------------------------------------
// 主程序 main.c
   Pwm_Init();                
   Pwm_Output(0,1000000,50);    // set PWM0=1MHZ, DUTYCYCLE=50%
   Pwm_Open(0);
// ....
// pwm.c
void Pwm_Init(void)
{
    unsigned char Temp;
    Temp=ATCSR;
    ATCSR=0x00;
    Temp=ATCSR;    
   ATCSR|=0x12;   // choose the cpu clock
   Temp=PWM0CSR;
   PWM0CSR&=(unsigned char)~0x02;             // clr op0
 }
/****************************************************************
 fpwm=fcount/(4096-ATR). 
 if fcpu=8M then fpwm-max=4MHZ(ATR=4094,DCR=4095),fpwm-min=2kHZ(ATR=0);

 duty_cycle=(DCR-ATR)/(0FFF-ATR),(when OP=0);
 duty_cycle=0%,DCR=ATR;
 duty_cycle=100%,DCR=0FFF.
*****************************************************************/
void Pwm_Output(unsigned char channel,unsigned long int freq,unsigned char duty_cycle)
{
    unsigned int temp;
    temp=(unsigned int)((4096-Fcounter/freq)&0x0fff);   
   ATR1=temp;
   if(channel == 0)
      DCR0=((0xfff - temp)*duty_cycle)/100+1+ temp;
}
void Pwm_Open(unsigned char channel)
{
   if(channel == 0)
      PWMCR|=(unsigned char)0x01;               // enable PWM0
}
沙发
53213324|  楼主 | 2007-12-24 00:46 | 只看该作者

Help!

谁能根据经验,告诉我可能是哪方面出了问题?
谢谢了

使用特权

评论回复
板凳
53213324|  楼主 | 2007-12-24 11:55 | 只看该作者

问题解决!

由于使用的RLINK,上面的开发环境选用的RIDE6/7,再次证明此开发环境有严重的BUG。
前些天在编译一句WHILE语句时出现通不过的问题;现在又对ATCSR的设置无用。搞了一天,差点崩溃!

目前使用的开发环境STVD,虽然资料没有RIDE的多,但终于没有问题了。

总结,还是使用官方的东东好啊。
希望此莫名其妙的调试经历,对大家有点帮助。或许,蓦然回首,那人却在灯火阑珊处,哈!

使用特权

评论回复
地板
grant_jx| | 2007-12-24 14:43 | 只看该作者

你可以使用STVD7,调试还是使用RLink

在调试设置的时候,选择工具选择ST RLink即可。我都是这样用的。

使用特权

评论回复
5
53213324|  楼主 | 2007-12-26 12:11 | 只看该作者

对的

目前,确实是这样用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

1

粉丝