打印

关于TINT0的问题求教,=求分析,

[复制链接]
3883|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nwttjpu|  楼主 | 2011-11-24 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮忙分析下,这样设置T0有问题么?
/*****************头文件********************/  
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
#include "DSP28_CpuTimers.h"
/****************端口宏定义**************/
//unsigned int * EXT_RAM = (unsigned int *) 0x100000;
unsigned int * LED3 = (unsigned int *) 0x4028;

/****************常量宏定义*****************/
#define  LED1_ON  GpioDataRegs.GPFDAT.bit.GPIOF14=1
#define  LED1_OFF     GpioDataRegs.GPFDAT.bit.GPIOF14=0
/***************全局变量定义****************/
Uint16 nCount=0;
Uint16 a=1;
/****************函数声明*******************/
interrupt void Cpu_time0_isr();
/*------------------------------------------*/
/*形式参数:void                            */
/*返回值:void                    */
/*函数描述:主函数                   */
/*------------------------------------------*/
void main(void)
{
InitSysCtrl();  // 系统初始化子程序,在DSP28_sysctrl.c   
InitGpio();
InitPieCtrl();   //初始化PIE控制寄存器
    InitPieVectTable();  //使能PIE向量
IER=0x0000;
IFR=0x0000;
EALLOW;
PieVectTable.TINT0=&Cpu_time0_isr;
EDIS;
    PieCtrl.PIECRTL.bit.ENPIE = 1;
InitCpuTimers0();
PieCtrl.PIEIER1.bit.INTx7=1;
IER |=M_INT1;
//////////////////////////////////////////// ConfigCpuTimer(&CpuTimer0, 150, 1000);
StartCpuTimer0();
EINT;
//////////////////////////////////////////////////////////////////// ERTM;
PieCtrl.PIEACK.all=PIEACK_GROUP1;//应答标志清0
while(1)
{
  if(nCount==0)
  {
  LED1_ON;
     }
  else  
   LED1_OFF;
}
}
interrupt void Cpu_time0_isr()
{

CpuTimer0Regs.TCR.bit.TIF = 1;
ReloadCpuTimer0();
if(a==0)
    {
     nCount=~nCount;
}
a++;
a%=200;
PieCtrl.PIEACK.all=PIEACK_GROUP1;
}

//声明过的,运行没报错,但现象不对
void InitCpuTimers0(void)
{
CpuTimer0.RegsAddr = &CpuTimer0Regs; //使得CpuTimer0.RegsAddr 指向定时器寄存器

CpuTimer0Regs.PRD.all  = 0xffffffff ; //初始化CpuTimer0的周期寄存器
CpuTimer0Regs.TIM.all  = 0;
CpuTimer0Regs.TPR.all  = 0;          //初始化定时器预定标计数器
CpuTimer0Regs.TPRH.all = 0;          //系数为0;
CpuTimer0Regs.TCR.bit.SOFT = 1;      //
CpuTimer0Regs.TCR.bit.FREE = 1;      //自由运行,不受断点影响。
CpuTimer0Regs.TCR.bit.TSS = 1;       //停止定时器      
CpuTimer0Regs.TCR.bit.TRB = 1;       //将周期寄存器PRD中的值装入计数器寄存器TIM中           
CpuTimer0Regs.TCR.bit.TIE=1;         //使能定时器0的中断
CpuTimer0.InterruptCount = 0;        //初始化定时器中断计数器
}

相关帖子

沙发
nwttjpu|  楼主 | 2011-11-24 16:44 | 只看该作者
GPIO设置也没问题!!肯定!!!

使用特权

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

本版积分规则

个人签名:求真,务实

2

主题

98

帖子

0

粉丝