⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2.c

📁 TMS320C54X DSP 实验指导程序 实验一 常用指令实验 实验二 数据存储实验 实验三 I/O实验 实验四 定时器实验 实验五 INT2中断实验 实验六 A/D转换实验 实验七
💻 C
字号:
#pragma CODE_SECTION(vect,"vect")

ioport unsigned int port0000;
ioport unsigned int port0004;
unsigned int  *pmem=0;
unsigned int  flag;
unsigned int  TIMER; 
unsigned int k;

#define IMR   *(pmem+0x0000)
#define IFR   *(pmem+0x0001)
#define TIM0  *(pmem+0x0024)  /* timer0 register */
#define PRD0  *(pmem+0x0025)  /* timer0 period register */
#define TCR0  *(pmem+0x0026)  /* timer0 control register */
#define PMST  *(pmem+0x001D)
#define SWCR  *(pmem+0x002B)
#define SWWSR *(pmem+0x0028)


void cpu_init()
{
   PMST=0x3FA0;
   SWWSR=0x7fff;
   SWCR=0x0000;
   IMR=0;
   IFR=IFR;
} 


void set_int2()    /* timing 4ms for 65Mhz */
{
   asm(" ssbx intm");
   /*TCR0=0x0b1b;
   PRD0=0x4e1f;*/       
   IMR=IMR|0x0004;
   IFR=IFR;
  /* TCR0=0x0b2b;        start timer0 */
   asm(" rsbx intm");
}

void main(void)
{
   
   flag=0;
   cpu_init();
   set_int2();
   for(;;)
   {
    if(flag==0)
    {
     k=21845;
         port0004=k;
         port0000=k;
         asm(" ssbx xf");
     }
     else
     {
      	k=43690;
         port0004=k; 
         port0000=k;
         asm(" rsbx xf");
     
      }
     
   }
}

interrupt void int2()
{
   asm("nop");  
	*(int *)0x300=*(int *)0x300+2;	/*break here to show if interrupt happened*/
	if(flag==0)
		
		flag=1;
	/*	k=21845;
         port0001=k;
         port0000=k;
         asm(" ssbx xf");   */
		
	else
		
		flag=0;      
	/*	k=43690;
         port0001=k; 
         port0000=k;
         asm(" rsbx xf"); */
	
   
 } 

void vect()
{
   asm(" .ref _c_int00");
   asm(" .ref _int2");

   asm(" b _c_int00");  /* reset */
   asm(" nop");
   asm(" nop");
   asm(" rete");        /* nmi  */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* int0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* int1 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" b _int2");       /* int2 */
   asm(" nop");
   asm(" nop");
   asm(" rete");   /* tint0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");  /* brint0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");  /* bxint0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");      /* dmac0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* tint1 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* int3 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* hpint */
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* brint1 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* bxint1 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* dmac4 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");     /* dmac5 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" nop");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -