main.c

来自「DSK6713的中断测试程序 用来熟悉和学习DSK6713的中断」· C语言 代码 · 共 112 行

C
112
字号


#include <stdio.h>
#include <csl.h>
#include <csl_timer.h>
#include <csl_irq.h>
#include "sine.h"
#define TIMER_CNT  20  /* Maximum count value */
/*----------------------------------------------------------------------------*/

void TimerEventHandler(void);
extern far void vectors();

static TIMER_Handle hTimer1;
static Uint32 TimerEventId;
static int cnt = 0;  
int gain = INITIALGAIN;   	   

IOBuffer currentBuffer;

/*----------------------------------------------------------------------------*/
static Uint32 TimerControl = TIMER_CTL_RMK( 
  TIMER_CTL_INVINP_NO,
  
  TIMER_CTL_CLKSRC_CPUOVR4,
						   	
  TIMER_CTL_CP_PULSE, 
					    
  TIMER_CTL_HLD_YES, 
						   
  TIMER_CTL_GO_NO,
  TIMER_CTL_PWID_ONE,

  TIMER_CTL_DATOUT_0,

  TIMER_CTL_INVOUT_NO,
  TIMER_CTL_FUNC_GPIO
					        
);                 



/*----------------------------------------------------------------------------*/
void main() 
{

  
  CSL_init(); 
  
  
  hTimer1 = TIMER_open(TIMER_DEV1, TIMER_OPEN_RESET);
  

  TimerEventId = TIMER_getEventId(hTimer1);
  
  IRQ_setVecs(vectors);    
  IRQ_globalEnable();       
  IRQ_nmiEnable();           
  
   
  IRQ_map(TimerEventId, 14);
    

  IRQ_reset(TimerEventId);
    
  
  TIMER_configArgs(hTimer1,
    TimerControl, /* use predefined control value  */
    0x00100000,   /* set period                    */
    0x00000000    /* start count value at zero     */
  );

  
  IRQ_enable(TimerEventId);
  
  
  TIMER_start(hTimer1);

  while(cnt <= TIMER_CNT);
  
}

void TimerEventHandler(void) {

  int size = BUFFSIZE;
  
  cnt++;  
  
    
    while(size--){
        
        currentBuffer.modu[size] = currentBuffer.input[size] * gain;
        currentBuffer.output[size]=currentBuffer.modu[size] * currentBuffer.input[size];
    }
  
  if (cnt > TIMER_CNT)
  {   
      TIMER_pause(hTimer1);
      TIMER_close(hTimer1);
      printf("\nDone...");
      exit(0);
  }
  printf("\n Count : %3d ",cnt);
  
}

interrupt void c_int14(void)    
{
    TimerEventHandler();
    return;
}

⌨️ 快捷键说明

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