网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  TMS320LF2407 定时器控制LED实验         ★★★ 【字体:
TMS320LF2407 定时器控制LED实验
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-17    

/*Main.c,LED与定时器程序*/
#include "global.c"
void SystemInit();
void Timer1Init();
void KickDog();
int numled=500;

main()

   SystemInit();             //系统初始化
  
   MCRA=MCRA & 0xC0FF;        //IOPB0-6设为IO口模式
   PBDATDIR=0xFFC2;           //所有LED=0
   PBDATDIR=PBDATDIR |0x003D;  //所有LED=1 
   Timer1Init();              //定时器初始化
   asm(" CLRC INTM ");
   while(1);
  
}

void SystemInit()

 
 asm(" SETC INTM "); //关闭总中断
 asm(" CLRC  SXM  "); //禁止符号位扩展
 asm(" CLRC  CNF  ");    //B0块映射为 on-chip DARAM
 asm(" CLRC  OVM  ");    //累加器结果正常溢出
 SCSR1=0x83FE;          //系统时钟CLKOUT=20*2=40M
       //打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟CLKOUT=40M
 WDCR=0x006F;   //禁止看门狗,看门狗时钟64分频
 KickDog();      //初始化看门狗
    IFR=0xFFFF;   //清除中断标志
    IMR=0x0002;   //打开中断2   
   

void Timer1Init()          
{
    EVAIMRA=0x0080;  //定时器1周期中断使能
    EVAIFRA=0xFFFF;  //清除中断标志
    GPTCONA=0x0000;
 T1PR=2500;   //定时器1初值,定时0.4us*2500=1ms    
 T1CNT=0;
 T1CON=0x144E;           //增模式, TPS系数40M/16=2.5M,T1使能
    
}

void c_int2()               //定时器1中断服务程序
{

    if(PIVR!=0x27)
  {   asm(" CLRC INTM ");
   return;
  }
 T1CNT=0;
 numled--;
 if(numled==0)
 {
  numled=500;
  if((PBDATDIR& 0x0001)==0x0001)
   PBDATDIR=PBDATDIR & 0xFFFE;    //IOPB0=0;LED灭 
  else
   PBDATDIR=PBDATDIR |0x0101;     //IOPB0=1;LED亮
 }
 
 EVAIFRA=0x80;
 asm(" CLRC INTM ");  
 

void KickDog()    //踢除看门狗
{
 WDKEY=0x5555;
 WDKEY=0xAAAA;
}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号