exp05.c

来自「File Name:exp05.asm。dsp编程」· C语言 代码 · 共 191 行

C
191
字号
#pragma CODE_SECTION(vect,"vect")

unsigned int  *pmem=0;
unsigned int  flag;

#define IMR   *(pmem+0x0000)
#define IFR   *(pmem+0x0001)
#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;
   asm(" stm 1000h,ar6");
} 


void set_int1()    
{
   asm(" ssbx intm");
   IMR=IMR|0x0002;
   IFR=IFR;
   asm(" rsbx intm");
}

void main(void)
{
   flag=0;
   cpu_init();                                                                                                                                        
   set_int1();
   for(;;)
   {
      if(flag==1)
         {
         asm(" ssbx xf");
        asm(" st 0h,*ar6");
		asm(" portw *ar6,800ah"); 
		asm(" portw *ar1,8001h");
		asm(" portw *ar1,8002h");
         }
      else
         {
         asm(" rsbx xf");
         asm(" st 0ffffh,*ar6");
		 asm(" portw *ar6,800ah");
         }
   }
}

interrupt void int1()
{
        flag=flag^1;
} 

void vect()
{
   asm(" .ref _c_int00");/*pseudoinstruction*/
   asm(" .ref _int1");

   asm(" b _c_int00");/* reset */  
   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");
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* int0 */
   asm(" nop");
   asm(" nop");
   asm(" nop");
   asm(" b _int1");       /* int1 */
   asm(" nop");
   asm(" nop");
   asm(" rete");       /* int2 */
   asm(" nop");
   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 + =
减小字号Ctrl + -
显示快捷键?