lawrencejiabin
3/12/2020 - 8:42 AM

693X定时器使用

#include "jiffies.h"
#include "asm/uart_dev.h"
#include "gpio.h"
#define XIN_IO_DEBUG_0(i,x)       {gpio_set_direction(i, 0); gpio_direction_output(i, x);}
#define XIN_IO_DEBUG_1(i,x)       {gpio_set_direction(i, 0); gpio_direction_output(i, x);}
#define XIN_IO_DEBUG_TOGGLE(i,x)  {gpio_set_direction(i, 0); gpio_direction_output(i, x);}

extern u32 sys_timer_get_time(void);
static int X_timer = 0;
void X_timer_scan(void *priv)
{
    /* g_printf("X_timer_scan\n"); */
    /* log_print_time(); */
    /* r_printf("time:%d:%d:%d\n",sys_timer_get_time(),sys_timer_get_ms(),ut_get_jiffies()); */
    /* r_printf("time:%d:%d:%d:%d\n",sys_timer_get_time(),sys_timer_get_ms(),ut_get_jiffies(),hi_jiffies); */
    static u8 flag = 0;
    if(flag){
        flag = 0;
        XIN_IO_DEBUG_0(IO_PORTA_01,0);
    }else{
        flag = 1;
        XIN_IO_DEBUG_1(IO_PORTA_01,1);
    }
}

void X_timer_init(u8 delay_ms)
{
    if(delay_ms == 0){
        sys_timer_del(X_timer);
        X_timer = 0;
        return;
    }
    if(X_timer){
        sys_timer_del(X_timer);
        X_timer = 0;
    }
    if (X_timer == 0) {
		//10ms单位倍数 最小10ms 低优先级蓝牙可打断
        /* X_timer = sys_timer_add(NULL, X_timer_scan, delay_ms); */
        //2ms单位倍数 最小2ms  高优先级蓝牙打断不了,执行太久会打断蓝牙声音		
        X_timer = sys_s_hi_timer_add(NULL, X_timer_scan, delay_ms);

        /* X_timer = sys_timeout_add(NULL, X_timer_scan, delay_ms);//1ms */
        /* X_timer = sys_hi_timeout_add(NULL, X_timer_scan, delay_ms);//1ms */
    }
}