fun_task.c

来自「单片机学习资料主要讲述MP3开发 适合初学者进行开发学习」· C语言 代码 · 共 95 行

C
95
字号
/*fun_task.c */
//#include "board.h"                          /* board definition */
#include "config.h"                         /* system configuration */
#include "fun_task.h"
#include "lib_mcu\kbd\kbd_drv.h"            /* keyboard driver definition */
//#include "led.h"                            /* led definition */
//#include "led_task.h"                       /* led definition */
#include "lib_refd\dac\dac_drv.h" 
#include "modules\song\song_drv.h"                       /* song driver definition */
   
extern  bdata bit     gl_key_press;  
extern  idata   Byte    gl_key;             /* value of the key pressed */
//Byte    mp3_volume;
#define KEY_VALID       KEY_0_1             /* 0Ah Stop select */
extern  idata Uint16    i=0;
extern  idata Uint16    m=0;
extern  idata Uint16    n=0;
extern  idata Uint16    j=0;
extern  idata Uint16    k=0;
#define KEY_FUNC       KEY_0_0  
         
void fun_task (void)
{
  
  if (P1_3 == 0) 
  {
   i++;
 //  P1_6 = 0;
//gl_key_press = TRUE;
//   gl_key = KEY_FUNC;
//   ref_mode_task();
   if ( i >= 24387 )
   {
    // tempo();//i=0;temp
     gl_key = KEY_VALID;
     ref_mode_task();    //保证响应KEY—VAILD
     i=0;
   }
  }
  else
  {
    i=0;//保证长按时间不积累,每次等待时间相同
  }

  if (P1_0 == 0)
  {
   m++;

   if ( m >= 8100 )
   {  
     n++;
     if ((P1_0 == 0) && (mp3_volume != VOLUME_MAX))  dac_set_vol(++mp3_volume);
 //    if ((P1_1 == 0) && (mp3_volume != VOLUME_MIN))  dac_set_vol(--mp3_volume);
     m=0;
   }
  }
  else
  {
    if ((m > 1000) && ( m < 8100 ) && ( n == 0)) 
	  {
	    gl_key = KEY_PLUS;
        ref_mode_task();
//		n = 0;
//        m = 0;
	  }
    m = 0;//保证长按时间不积累,每次等待时间相同
    n = 0;
  }

  if (P1_1 == 0)
  {
   j++;

   if ( j >= 8100 )
   {  
     k++;
 //    if ((P1_0 == 0) && (mp3_volume != VOLUME_MAX))  dac_set_vol(++mp3_volume);
     if ((P1_1 == 0) && (mp3_volume != VOLUME_MIN))  dac_set_vol(--mp3_volume);
     j=0;
   }
  }
  else
  {
    if ((j > 1000) && ( j < 8100 ) && ( k == 0)) 
	  {
	    gl_key = KEY_MINUS;
        ref_mode_task();
//		j = 0;
 //       k = 0;
	  }
	j = 0;//保证长按时间不积累,每次等待时间相同
    k = 0;
  }
}							  

⌨️ 快捷键说明

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