6885|11

104

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

为什么占空比总是50%?? [复制链接]

最近在写spwm的程序,但无论怎么,出来的占空比都是50%的,郁闷。希望大家帮我看看。谢谢各位!!

#include "DSP28_Device.h"
#include "math.h"
#include "stdio.h"
interrupt void T1_Compare_isr(void);      //定时器1中断服务程序
int i = 0;           //定位正弦表
int sine[100] = {996,1055,1113,1171,1227,1283,1337,1389,1440,1489,
        1535,1579,1621,1660,1696,1729,1759,17860,1809,1829,
     1846,1858,1868,1873,1875,1873,1868,1858,1846,1829,
     1809,1786,1759,1729,1696,1660,1621,1579,1535,1489,
     1440,1389,1337,1283,1227,1171,1113,1055,996,938,
     879,820,762,704,648,592,538,486,435,387,
     340,296,254,215,179,146,116,89,66,46,
     30,17,7,2,0,2,7,17,30,46,
     66,89,116,146,179,215,254,296,340,387,
     435,486,538,592,648,704,762,820,879,938};
void main(void)
{
/*GPIO 初始化*/
    InitGpio();
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;

/*初始化PIE控制寄存器*/
InitPieCtrl();

/*初始化PIE矢量表*/
InitPieVectTable();
/*  EALLOW;
  PieVectTable.T1PINT = &T1_Compare_isr;
   EDIS;

    //使能T1周期中断:PIE-组2,中断4
  PieCtrl.PIEIER2.bit.INTx4 = 1;
    //使能CPU INT2,GP-Time1的周期中断连接到该中断
  IER = 2;*/
     EINT;
  ERTM;

/*初始化EV*/
   InitEv();

  EvaRegs.EVAIMRA.bit.T1PINT = 1;     //使能T1PINT中断
  EvaRegs.T1CON.bit.TENABLE = 1;      //使能GP Timer 1

for(;;);
{
  KickDog();
}
}  

interrupt void T1_Compare_isr(void)
{
  EvaRegs.T1CMPR = sine;  // 更新比较寄存器CMPRx的值
   i = i+1;
   if(i==100)
    i = 0;
  
  EvaRegs.EVAIMRA.bit.T1PINT = 1;   //GP定时器1周期中断标志位 置位
  EvaRegs.EVAIFRA.bit.T1PINT = 1;   // T1CINT(GP定时器1比较中断位) 使能位 使能
     PieCtrl.PIEACK.all = PIEACK_GROUP2;   //PIE 响应寄存器
}

void InitEv(void)
{

EvaRegs.GPTCONA.all=0x0051; //GP定时器控制寄存器设置 定时器比较输出使能,T1PIN输出低有效,T1PWM比较输出使能
EvaRegs.T1CNT=0;//定时器1计数器从0开始计数
EvaRegs.T1CON.all=0x0802;  //设置控制寄存器为模式为连续增/减,使能定时器和比较器
// EvaRegs.T1PR=0x7530;    //30000
EvaRegs.T1PR=0x3A98;   //15000
//EvaRegs.T1PR=1875;
EvaRegs.T1CMPR=EvaRegs.T1PR/2;
}

最新回复

有思路了吗,我的版块dsp2000里面的调试札记里面总结了一个框架,这样的程序都是这么来的,用主函数调用就行了!!  详情 回复 发表于 2009-8-12 20:44
点赞 关注
 

回复
举报

104

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
怎么没人理我?我弄了好几天了。。。郁闷啊。。
 
 

回复

163

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
说清楚点,用的是什么单片机,要实现的目的,问问题要态度啊!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 楼主 terrykgm 的帖子

EvaRegs.T1CMPR = sine;  // 更新比较寄存器CMPRx的值
   这里明显不对啊

建议直接看ti的例程,28系列的资料很全的
 
 
 

回复

104

帖子

0

TA的资源

五彩晶圆(初级)

5
 
不好意思。我用的是dsp2812。为什么EvaRegs.T1CMPR = sine;  // 更新比较寄存器CMPRx的值 不对。程序我忘了写变量i了,但写上还是不对的。望各位抽点时间看看。解决小弟的问题。谢谢了。
 
 
 

回复

104

帖子

0

TA的资源

五彩晶圆(初级)

6
 
EvaRegs.T1CMPR = sine【i】应该是这样的。但改了还是不行。
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

7
 

回复 楼主 terrykgm 的帖子

TI的例子我发到你邮箱里面了,
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

8
 

回复 6楼 terrykgm 的帖子

那个事装载的周期寄存器的值,你自己看看吧。设置奇数的话,就不对称了!!!!!!!!!!
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

9
 

回复 楼主 terrykgm 的帖子

你的中断服务的程序的入口地址都没有赋值啊?????
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

10
 

回复 6楼 terrykgm 的帖子

看看我给你的例子,就知道了怎么赋值了,有问题在说说。。。。。。最近没有时间上QQ
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 
 

回复

104

帖子

0

TA的资源

五彩晶圆(初级)

11
 
好的,我看看,谢谢了哈!!
 
 
 

回复

2498

帖子

0

TA的资源

至上芯片

12
 

回复 11楼 terrykgm 的帖子

有思路了吗,我的版块dsp2000里面的调试札记里面总结了一个框架,这样的程序都是这么来的,用主函数调用就行了!!
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表