您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 【已解决】[求助]BF518定时器如何输出PWM波... 
本帖共有609个阅读者
发表帖子 发表投票 回复主题
【已解决】[求助]BF518定时器如何输出PWM波形?
AD7685(论坛新手)
AD7685
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:165
积分:11
注册时间:2013/7/29
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
【已解决】[求助]BF518定时器如何输出PWM波形?
void Init_Timers(void)
{
*pPORTG_FER |= PG6;
*pPORTG_MUX &= ~PG6;
*pTIMER0_CONFIG = 0x0019; //配置定时器为PWM 模式
*pTIMER0_PERIOD = 0x00800000; //设置周期为0x00800000 个系统时钟
*pTIMER0_WIDTH = 0x00400000; //设置脉宽为0x00400000 个系统时钟
*pTIMER_ENABLE = 0x0001; //使能Timer0
}

void Init_Interrupts(void)
{
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xffffffff;
*pSIC_IAR2 = 0xfffffff5; //配置中断等级数据为4
register_handler(ik_ivg12, TIMER0_ISR); //注册中断等级为12,标识符为TIMER0_ISR
*pSIC_IMASK1 = 0x00000001; //开启中断
}


EX_INTERRUPT_HANDLER(TIMER0_ISR) //TIMER0_ISR 的中断函数
{
*pTIMER_STATUS = 0x0001; //清除定时器中断标志
//printf("timer0 interrupt !\n"); //打印信息
}

程序可以进入TIMER的中断。
但是示波器上观察不到timer0引脚的输出。
如果没有看错的话PG6引脚具有TMR0的功能吧。

请版主帮忙看看程序是什么地方出了问题?


「该帖子被 AD7685 在 2013-08-07 14:53:04 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/8/7 14:13:28
webom2008(论坛新手)
webom2008
头衔:社区公民
帮派:无帮无派
帖数:22
金钱:287
积分:29
注册时间:2013/9/9
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
楼主,你的问题怎么解决啦?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/9/22 10:19:16
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
pPORTG_MUX &= ~PG6;

这一位之前配错了吧,MUX不是每个IO对应一位。导致管脚功能没实现,不输出波形

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/9/22 23:25:14
weili_an(论坛新手)
weili_an
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:126
积分:4
注册时间:2014/7/13
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
pPORTG_MUX &= ~PG6;改为pPORTG_MUX = 0x0080;

「该帖子被 weili_an 在 2014-07-13 12:08:08 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/13 2:04:11
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159199 Call, 1 Queries, Processed in 0.015625 second(s),