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

📄 c6711_timer.c

📁 该代码实现了 两次下载法在dspC6713平台上 烧写flash的操作过程
💻 C
字号:
/*****************************************************************************
* File name :     C6711_TIMER.c
* Description:
******************************************************************************/
#ifndef MASTER_FILE
#define C6711_GLOBALS
#endif

#include "TIMER.H"

/******************************************************************************
* function    : timer0_reset()
* description : 
*  Input      : None
*  Output     : None
* return value : 
******************************************************************************/
void timer0_reset()
{
 set_timer_register(0, CTRL_SEL,  0);
 set_timer_register(0, PRD_SEL,   0); 
 set_timer_register(0, COUNT_SEL, 0); 

}

/******************************************************************************
* function    : timer0_init()
* description : Start timer 0 after initializing it for a short period 
*                (~13.7 micro seconds)with interrupt.
*                TIMER_HOLD=0, TIMER_RESUME=1, TIMER_START=3  
*  Input      : None
*  Output     : None
* return value : 
******************************************************************************/
void timer0_init(int ctrl,int prd)
{
 set_timer_register(0, CTRL_SEL,  ctrl);
 set_timer_register(0, PRD_SEL,   prd); 
 set_timer_register(0, COUNT_SEL,0); 
 change_timer_status(0,TIMER_START);

}

/******************************************************************************
* function    : timer1_reset()
* description : 
*  Input      : None
*  Output     : None
* return value : 
******************************************************************************/
void timer1_reset(void)
{
 set_timer_register(1, CTRL_SEL,  0);
 set_timer_register(1, PRD_SEL,   0); 
 set_timer_register(1, COUNT_SEL, 0); 
} 

/******************************************************************************
* function    : timer1_init()
* description : 
*  Input      : None
*  Output     : None
* return value : 
******************************************************************************/
void timer1_init(int ctrl,int prd)
{
 //printf("Begin Timer1 Register Initialisation\n");
 set_timer_register(1, CTRL_SEL, ctrl);
 set_timer_register(1, PRD_SEL,  prd); 
 set_timer_register(1, COUNT_SEL, 0);
 change_timer_status(1,TIMER_START);
}

/*******************************************************************************
* FUNCTION : delay_msec
* ARGUMENTS : int msec   <-- Period to delay in milliseconds
* DESCRIPTION :Maxim delay time is  28633.12 milliseconds
*******************************************************************************/
void delay_msec(int msec)
{
  /* Assume 75 MHz CPU, timer clock period = 4/75MHz,1000*75/4=18750 */
   int timer_limit = msec*18750; 
   int time_start;
   
   *(unsigned volatile int *)TIMER0_CTRL &= 0xff3f;/* Hold the timer */
   *(unsigned volatile int *)TIMER0_CTRL |= 0x200; /* Use CPU CLK/4 */
   *(unsigned volatile int *)TIMER0_PRD  |= 0xffffffff;/* Set for 32 bit counter */
   *(unsigned volatile int *)TIMER0_CTRL |= 0xC0;/* Start the timer */
   
  time_start = (*(unsigned volatile int *)TIMER0_COUNT);
  while ((*(unsigned volatile int *)TIMER0_COUNT)-time_start<timer_limit);
  
}

/*******************************************************************************
* FUNCTION : led_blink1()
* DESCRIPTION :Tout1 changes it statue every 1s,TSTAT has a 50% duty cycle with
*            each high and low period one countdown period wide;
*******************************************************************************/
void led_blink1()
{
 set_timer_register(1, CTRL_SEL, 0x0305);
 set_timer_register(1, PRD_SEL,  18750*1000); 
 set_timer_register(1, COUNT_SEL, 0);
 change_timer_status(1,TIMER_START);
      
}
void StartTimer()
{
   *(unsigned volatile int *)TIMER0_CTRL &= 0xff3f;/* Hold the timer */
   *(unsigned volatile int *)TIMER0_CTRL |= 0x200; /* Use CPU CLK/4 */
   *(unsigned volatile int *)TIMER0_PRD  |= 0xffffffff;/* Set for 32 bit counter */
   *(unsigned volatile int *)TIMER0_CTRL |= 0xC0;/* Start the timer */
}
/*******************************************************************************
* FUNCTION : led_blink2()
* DESCRIPTION :Tout1 changes it statue every 1s,The DATOUT is driven on TOUT;
*******************************************************************************/
void led_blink2(int msec)
{
/* timer0_init(0x0201,0xffffffff);
 timer1_init(0x0200,0xffffffff);
 
 for(i=0;i<blink_num;i++)
 {
   WRITE_DATOUT1(1);
   delay_msec(msec);
   WRITE_DATOUT1(0);
   delay_msec(msec);
 }*/
 WRITE_DATOUT1(msec);
      
}


/* END OF FILE */

⌨️ 快捷键说明

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