Chinaunix首页 | 论坛 | 博客
  • 博客访问: 554460
  • 博文数量: 104
  • 博客积分: 4131
  • 博客等级: 上校
  • 技术积分: 1137
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 15:05
文章分类

全部博文(104)

文章存档

2011年(13)

2010年(23)

2009年(68)

我的朋友

分类: 嵌入式

2010-09-10 09:35:20


#include "DSP28_Device.h"
unsigned int Send_Flag;
unsigned int i;
void DelayNmSec(int N)
{
 unsigned int j;
 while(N--)
 for(j=0;j<65535;j++);
}
interrupt void T1PINT_ISR(void)
{
  strg[0]=105;
  length=5;
  length--;
  Tx=(unsigned char*)strg;
         if(length>0)    SciaRegs.SCITXBUF=*Tx++;
  else 
   {
    length=0;
   }
  EvaRegs.EVAIMRA.bit.T1PINT=1;//中断允许
  EvaRegs.EVAIFRA.bit.T1PINT=1;//清除中断标志
  PieCtrl.PIEACK.bit.ACK2=1;//向cpu申请中断  
}
interrupt void T2PINT_ISR(void)
{
strg[0]=104;
  length=5;
  length--;
  Tx=(unsigned char*)strg;
         if(length>0)    SciaRegs.SCITXBUF=*Tx++;
  else 
   {
    length=0;
   } 
  EvaRegs.EVAIMRB.bit.T2PINT=1;//中断允许
  EvaRegs.EVAIFRB.bit.T2PINT=1;//清除中断标志
  PieCtrl.PIEACK.bit.ACK3=1;//向cpu申请中断  
}
void main(void)
{
 /*初始化系统*/
 InitSysCtrl();
 /*关中断*/
 DINT;
 IER = 0x0000;
 IFR = 0x0000;
 /*初始化PIE中断*/
 InitPieCtrl();
 /*初始化PIE中断矢量表*/
 InitPieVectTable(); 
 /*初始化SCIA寄存器*/
    InitSci();
    for(i = 0; i < 8; i++)
    {
     Sci_VarRx[i] = 0;
  Sci_VarTx[i] = 0;
    }
 i=0;
    Rx=Sci_VarRx;
    Tx=Sci_VarTx;
    Send_Flag = 0;
    rx_length=0;
    add=0;
    length=9;
 
 EvaRegs.GPTCONA.all=0;
 EvaRegs.T1PR = 65535;   //
 EvaRegs.EVAIMRA.bit.T1PINT=1;//中断允许
 EvaRegs.EVAIFRA.bit.T1PINT=1;//清除中断标志
    EvaRegs.T1CNT = 0x0000;      // 定时器1计数器  
    EvaRegs.T1CON.all = 0x1440;//1 分频,使能定时器操作,连续增模式
 // 初始化定时器2
    EvaRegs.T2PR =65535;     // 定时器2的周期为20k 
   EvaRegs.T2CNT =0x0000;      // Timer2 counter  
   EvaRegs.T2CON.all =0x1440;//16分频,使能定时器操作,连续增模式  
    EvaRegs.EVAIMRB.bit.T2PINT = 1;//定时器2周期中断允许
    EvaRegs.EVAIFRB.bit.T2PINT = 1;//清除标志 
 /*设置中断服务程序入口地址*/
 EALLOW; // This is needed to write to EALLOW protected registers
 PieVectTable.TXAINT = &SCITXINTA_ISR;
 PieVectTable.RXAINT = &SCIRXINTA_ISR;
 PieVectTable.T1PINT = &T1PINT_ISR;
 PieVectTable.T2PINT = &T2PINT_ISR;
 EDIS;   // This is needed to disable write to EALLOW protected registers
 PieCtrl.PIEIER2.bit.INTx4=1;//T1pint中断
 PieCtrl.PIEIER3.bit.INTx1=1;//T2pint中断
 /*开中断*/
 IER |= M_INT9;
 IER |= M_INT2; // t1pint enable
 IER |= M_INT3; // t2pint enable
 EINT;   // Enable lobal interrupt INTM
 ERTM; // Enable Global realtime interrupt DBGM
 while(1)
  {
 /* DelayNmSec(10);
  strg[1]='b';
  strg[2]='c';
  length=5;
  length--;
  Tx=(unsigned char*)strg;
         if(length>0)    SciaRegs.SCITXBUF=*Tx++;
  else 
   {
    length=0;
   } 
  strg[1]='x';
  strg[2]='y';*/
 }
}  

//===========================================================================
// No more.
//===========================================================================
阅读(2874) | 评论(0) | 转发(0) |
0

上一篇:2812 串口程序

下一篇:2812 PWM波程序

给主人留下些什么吧!~~