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

📄 mac.c

📁 DSP56F800e HYBRID Controller
💻 C
字号:
#include "Headers.h"

asm void buffer()
{
   clr.w M01            
   bfset #$8007,M01     /*       initializez bufferul cu 8 locatii         */
   move.l #$0800,R0     /*initializez R0 cu limita inferioara a bufferului */
   move.w X:(R0)+,X0                        
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   move.w X:(R0)+,X0  
   	
}
void  circularBuffer()
{


  UInt16 coef[10]={1,2,3,4,5,6,7,8,9,10 };
  UInt16 i;
  register data;
  
  asm(move.l #$0800,R0);     /*initializez R0 cu limita inferioara a bufferului */
  for(i=0;i<10;i++)
  {
    data = i;
    asm(move.w data,X:(R0)+);	
  }
  
  
  
  buffer();
   
	
}


void StackPointer()
{
   register data = 10;
   char buf[20];
   asm(ADDA #2,SP);
   asm(move.w data,X:(SP));
   data = 34;
   asm(move.w X:(SP),data);
   asm(move.l 0,R0);
   asm(ADDA #2,SP);
   asm(move.L R0,X:(SP));   
   sprintf(buf,"%d",data);
   asm(move.L X:(SP)-,R0);    	
}

asm void fast()
{
    MOVE.W #0,A
    REP #32
    MOVE.L A10,X:(R0)+ 
    RTS
}


void fastMAC()
{
  UInt16 x_n[10]={1,2,3,4,5,6,7,8,9,10};
  asm(move.l 0,R0);
  fast();  //umplu primii 32 de octeti cu 0   	
}


asm void  fctMac()
{
   clr A;
   move.w 0,R0;
   move.w 9,R1;
   
   moveu.w #$9,LC   //LOOP COUNTER
   NOP;
   NOP;
   DOSLC END_DOSLC
  
   move.w X:(R0)+,X0
   move.w X:(R1)+,Y0
   
   IMAC.L X0,Y0,A 
   
   END_DOSLC: 
   RTS;
}

void calculMAC()   //functie de test
{

   UInt16 x_n[9]= {1,2,3,4,5,6,7,8,25};
   UInt16 c_n[9]= {8,7,6,5,4,3,2,1,9};
   UInt16 i;
   register  data;
   char sir[20];
   
   
   asm(move.w #0,R0);
   asm(move.w #9,R1);
   
   for(i=0;i<9;i++)
   {
    data=x_n[i];
   	asm(move.w data,X:(R0)+);
   	
   	data=c_n[i];
   	asm(move.w data,X:(R1)+) ;  	      	
   }
   
    fctMac();
  
  asm(move.w A0,data);
  sprintf(sir,"%d",data);
    
	
}














⌨️ 快捷键说明

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