[其他ST产品]

请教ST7LITEU05的PWM功能

[复制链接]
4797|22
手机看帖
扫描二维码
随时随地手机跟帖
leojiang|  楼主 | 2008-2-14 21:39 | 显示全部楼层 |阅读模式
ST, PWM, Lite, se, rc
用如下代码软件仿真,A0口不输出10K的PWM波,大哥看看哪里不对?
试了很多了,PWM不工作。
void main (void)
{
// Set internal RC clock
    RCCR = RCCRH0;
    SICSR = RCCRL0;
    AVDTHCR = 0x23;    //set the internal RC oscillator Prescaler to 4MHz.        
    // Set input/output pins:
    PADDR = 0x3F;    //PORT A0/3/5 as output, A1/2/4 as input.
    PAOR = 0x3F;    //PORT A0 as Pull-pull drive FET, A3(Reset)/A5(Drive LED) as Open Drain, A1/2/4 as floating for ADC.
    PADR = 0x0A;    //Clear all output, A5 light LED. A3 configed 1.
//Set the PWM Frequency and Duty Cycle
    ATRH = 0x0E;
    ATRL = 0x70;    // Setup Auto Reload value for Fpwm = 10 KHz
        
    DCR0H = 0x0F; // PWM0 - Setup 50% duty cycle
    DCR0L = 0x38;
   ATCSR = 0x10;
   PWMCR = 0x01; // Enable PWM Outputs
}
香水城| | 2008-2-14 22:05 | 显示全部楼层

这也叫程序?最后一行执行完后做什么?

看样子楼主没写过程序~~~~

使用特权

评论回复
hotpower| | 2008-2-14 22:06 | 显示全部楼层

哈哈~~~while();在心里~~~

使用特权

评论回复
leojiang|  楼主 | 2008-2-14 22:14 | 显示全部楼层

呵呵,见笑了

由于不清楚这个MCU的PWM使用,只是对PWM的寄存器赋值了,想让它A0脚出10K频率的PWM方波,不用实现其他功能的,所以就如上程序。
请问这些设置错在哪里?为何出不来PWM波形?

使用特权

评论回复
hotpower| | 2008-2-14 22:31 | 显示全部楼层

哈哈~~~3楼把答案都给你了~~~

使用特权

评论回复
leojiang|  楼主 | 2008-2-14 22:43 | 显示全部楼层

加了一个while(1);在下面软件仿真还是一直低电平,不是方波

大哥看看哪里错了啊,整了一天了。

使用特权

评论回复
hotpower| | 2008-2-14 22:55 | 显示全部楼层

有PWM的例程,设置应该没这么简单~~~

俺很喜欢PWM,但现在还没玩到此处~~~

使用特权

评论回复
leojiang|  楼主 | 2008-2-15 11:07 | 显示全部楼层

哪位大哥看看这PWM,为何就是不工作

我的理解就是对寄存器赋值后,PWM脚就应该出PWM波形了,还得继续努力。。。

使用特权

评论回复
leojiang|  楼主 | 2008-2-15 15:29 | 显示全部楼层

这个例子COMPILER: RCST7 Optimizing,我用的是COSMIC的

现在PWM可以工作了,但是为何模拟的波形是PA2输出PWM,规格书不是PA0输出PWM吗?这个模拟软件有问题啊?版主看看,给个答复。

使用特权

评论回复
leojiang|  楼主 | 2008-2-15 15:31 | 显示全部楼层

下面是软件模拟输出的图

请看看啊,这个是否是STVD软件的bug????
代码如下:
void main(void)
{
    // Set internal RC clock
    RCCR = RCCRH0;
    SICSR = RCCRL0;
    AVDTHCR = 0x23;    //set the internal RC oscillator Prescaler to 4MHz.    
    CKCNTCSR = 0x00;
    
    // Set input/output pins:
    PADDR = 0x29;    //PORT A0/3/5 as output, A1/2/4 as input.
    PAOR = 0x01;    //PORT A0 as Pull-pull drive FET, A3(Reset)/A5(Drive LED) as Open Drain, A1/2/4 as floating for ADC.
    PADR = 0x0A;    //Clear all output, A5 light LED. A1/A3 configed to 1.
    
    //Set the PWM Frequency and Duty Cycle
      ATRH = 0x00;
    ATRL = 0x60;    // Setup Auto Reload value for Fpwm = 1 KHz
        
        DCR0H = 0x08; // PWM0 - Setup 50% duty cycle
    DCR0L = 0x30;
        PWM0CSR =0x00;
        
        ATCSR = ART_CLOCK_FCPU;    // Fcpu = 4Mhz - Clock Selection
                                            
        PWMCR = 0x01; // Enable PWM Outputs
        gDelayms(220);
        PWMCR = 0x00;    //Disable PWM Outputs
}

使用特权

评论回复
leojiang|  楼主 | 2008-2-16 20:58 | 显示全部楼层

如上的问题,应该是STVD的bug.

版主看看啊,是不是ST软件的bug啊?

使用特权

评论回复
hotpower| | 2008-2-17 00:23 | 显示全部楼层

9楼的PWM音乐不知好听否???以前用AVR做过只能听个大概...

使用特权

评论回复
grant_jx| | 2008-2-17 00:55 | 显示全部楼层

答复

Re 10楼:在C语言的层面上RAISONANCE与Cosmic基本上是相同的,就像Cosmic与Metrowerks差异一样,不同的只是一些硬件寄存器的定义方式、中断的入口、变量的申明、代码段的定义不同,但C语言的本质是一样的。况且看您的代码,你并非不是不明白ST7 Timer的用法,只是不能自信的确定自己对寄存器的读写顺序是否正确。



Re 11楼,你用的STVD7是什么版本?我还没有测你的代码。


Re 12楼,声音还凑合,基本上能听出音阶,没有跑调。

使用特权

评论回复
香水城| | 2008-2-17 15:39 | 显示全部楼层

11楼的问题可能与软件版本有关,也可能是配置文件的问题

通常对于Lite05这样的小芯片,我们很少有人使用软件模拟的,每人注意到这个现象。

使用特权

评论回复
leojiang|  楼主 | 2008-2-17 20:04 | 显示全部楼层

STVD7用的是3.5.0版本。几天前刚从ST网站下载的.

现在已经证实是STVD7的软件有问题,寄存器的设置证实是对的,我改变赋值可以出不同频率的PWM和duty cycle。

Re 15楼:这个不是芯片小不小的问题?
我1楼发的代码也是对的,还被说“没有写过代码”。
刚开始只观察PA0口,没有看别的,后来全部A0-A5波形一看才发现,
浪费我一天的时间!
ST也算是知名企业,软件没有经过测试就放出来啊???

我已经联系美国的ST了。看他们怎么回复。

使用特权

评论回复
香水城| | 2008-2-17 20:30 | 显示全部楼层

楼上教训的极是

使用特权

评论回复
leojiang|  楼主 | 2008-2-19 09:52 | 显示全部楼层

现在US ST FAE证实是Simulator has problem

搞得我都不敢用了。。。。

使用特权

评论回复
zl_777| | 2008-2-20 17:03 | 显示全部楼层

软仿真PWM是有问题的

我也曾经被这个问题耽误过开发,软件仿真PWM看不到输出,还以为是程序问题,后来直接烧录到芯片中查看,发现芯片可以正常输出。我认为是软件的bug,这个问题干扰了我1天的时间。

使用特权

评论回复
香水城| | 2008-2-20 21:46 | 显示全部楼层

将通知软件的开发人员在下个版本改正

谢谢!

使用特权

评论回复
bhsdlmj| | 2009-5-12 22:31 | 显示全部楼层

是有问题的??现在的不知道有没有问题啊??

使用特权

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

本版积分规则

15

主题

102

帖子

2

粉丝