hwdelay_task.h
#ifndef _hwdelay_task_h_
#define _hwdelay_task_h_
#include
#include
#define delay_mailbox_max 5
/* * 值為10us, 那麼該延時任務的誤差就有10us, 該值設定要大量測試
* 10us 出現了傳送一次指令, 執行兩次的情況(一次)
* 20us 小幅度測試沒出現異樣
*/#define delay_hwtimer_interval_us 20
/* * 這個結果值要大於0
*/#define hwdelaytask_calc_delay_count(us) (us < delay_hwtimer_interval_us ? 1 : us/delay_hwtimer_interval_us)
/* * 這個 s 值不能超過 2147.483647; 因為 int 所能表示的最大範圍為 2147483647
*/#define hwdelaytask_calc_delay_count2(s, us) (((s*1000000)+us)/delay_hwtimer_interval_us)
struct delaymailbox
;extern rt_mailbox_t mbguiddatadelayhandle;
int8_t delaytask_init()
;int8_t delaytask_add
(struct delaymailbox* dmb)
;#endif
hwdelay_task.c
#include
"hwdelay_task.h"
#include
"bsp_gpt.h"
#define delay_hwtimer_dev_name "gpt2"
/* 定時器名稱 */
static
struct imxrt_gpt* dev_hwtimer_hwdelay;
static int8_t state;
static
volatile
struct delaymailbox delaymbs[delay_mailbox_max]=;
static
volatile uint8_t delaymbsfront =0;
//隊首
static
volatile uint8_t delaymbsrear =0;
//隊尾,最後乙個元素的索引+1
rt_mailbox_t mbguiddatadelayhandle;
static
void
ht_timeout_cb
(void
* dev, uint32_t size)
i =(i+1
)%delay_mailbox_max;
}return;}
int8_t delaytask_init()
hwtimerval_t timerval =
;bsp_gpt_start
(dev_hwtimer_hwdelay,
&timerval, hwtimer_mode_period)
;return0;
}int8_t delaytask_add
(struct delaymailbox* dmb)
delaymbs[delaymbsrear]
.count = dmb->count;
delaymbs[delaymbsrear]
.data = dmb->data;
delaymbs[delaymbsrear]
.send_mb = dmb->send_mb;
delaymbsrear =
(delaymbsrear+1)
%delay_mailbox_max;
//printf("delaymbsrear: %d\r\n", delaymbsrear);
return0;
}
延時任務與定時任務
1.延時任務 at命令的使用 1 開啟終端,在根目錄下建立乙個新的目錄取名為 at 2 進入 at目錄下,執行watch n 1 ls l at命令,對其進行監控 3 同時開啟另乙個終端,執行命令 at 某個將來的具體時刻 表示將來在某個時刻執行你特定的操作 例如下圖便是在17 20在 at目錄下建...
延時任務和定時任務
1.at 延時 at l 檢視任務 at r 任務編號 刪除任務 etc at.allow 白名單,白名單中存在的使用者可以使用at,白名單優先順序高,黑白名單中使用者同時存在,白名單生效 etc at.deny 黑名單,存在的使用者不能使用at 2.crontab 定時 由crond.servic...
Linux 延時任務與定時任務
延時任務 系統的延時任務是通過at命令是實現的,負責這個延時任務的服務是atd服務,通常這個服務是預設開啟的 延時任務的發起過程 1 at time 表示在某一時刻發起任務 2 dosomething 任務具體執行的內容 3 ctrl d 儲存該命令 延時任務的常見命令 延時任務的黑名單 延時任務白...