RTT裝置與驅動之硬體定時器

2022-06-17 17:42:09 字數 1449 閱讀 2873

硬體定時器可以對外部時鐘進行計數,利用內部時鐘進行定時。

函式描述

rt_device_t rt_device_find(const char* name);

查詢定時器裝置

rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflags);ofalgs=rt_device_oflag_rdwr

以讀寫方式開啟定時器裝置

rt_err_t rt_device_set_rx_indicate(rt_device_t dev, rt_err_t (*rx_ind)(rt_device_t dev,rt_size_t size))

設定超時**函式

rt_err_t rt_device_control(rt_device_t dev, rt_uint8_t cmd, void* arg);

控制定時器裝置,可以設定定時模式(單次/週期)/計數頻率,或者停止定時器

rt_size_t rt_device_write(rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size);

typedef struct rt_hwtimerval

rt_hwtimerval_t;

設定定時器超時值,定時器隨即啟動

rt_size_t rt_device_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size);

獲取定時器當前值

rt_err_t rt_device_close(rt_device_t dev);

關閉定時器裝置

硬體定時器裝置支援的命令控制字如下所示:

控制字描述

hwtimer_ctrl_freq_set

設定計數頻率 定時時間 = 計數值 / 計數頻率,

hwtimer_ctrl_stop

停止定時器

hwtimer_ctrl_info_get

獲取定時器特徵資訊

hwtimer_ctrl_mode_set

hwtimer_mode_oneshot 單次定時

hwtimer_mode_period 週期性定時

設定定時器模式,

RTT裝置與驅動之PWM

這裡將pwm當成乙個裝置 pwm簡介 上圖是乙個簡單的 pwm 原理示意圖,假定定時器工作模式為向上計數,當計數值小於閾值時,則輸出一種電平狀態,比如高電平,當計數值大於閾值時則輸出相反的電平狀態,比如低電平。當計數值達到最大值是,計數器從0開始重新計數,又回到最初的電平狀態。高電平持續時間 脈衝寬...

Linux裝置驅動 核心定時器

核心定時器使用 核心定時器是核心用來控制在未來某個時間點 基於jiffies 排程執行某個函式的一種機制,其實現位於 和 kernel timer.c 檔案中。被排程的函式肯定是非同步執行的,它類似於一種 軟體中斷 而且是處於非程序的上下文中,所以排程函式必須遵守以下規則 1 沒有 current ...

定時器驅動

想要每次進tick的時間相同如,每秒進100次tick tick想要100次 秒,那乙個tick就是1ms,而系統時鐘頻率是12 000 000 12 000 000hz 100hz,就是時鐘頻率除以tick頻率,翻譯過來就是每秒的時鐘滴答次數 每秒的tick次數等於乙個tick多少次時鐘滴答,然後...