微控制器解析再生成雙通道PWM訊號

2021-08-21 21:38:34 字數 1221 閱讀 9326

**設計

效果展示

使用航模遙控器控制兩個電機的轉速,由於航模遙控器輸出的pwm波占空比太低,並且可調範圍很小,無法帶動和控制大電機。因此我們需要對航模遙控器輸出的pwm波形進行重整。51微控制器只有兩個外部中斷和兩個定時計數器,資源較少,所以我想到了一下幾個辦法。

設計方案一(不可行)

中斷功能

int0

10ms計時單位

int1

拆分為兩個八位計數器高電平計時

不可行原因:

1.兩個8位計數器每次最多計數0.27ms。

2.將int1拆分後要使用到int0的控制位對拆分出來的8位計數器進行控制,導致int0無法使用。

設計方案二(不可行)

利用外部中斷判斷週期,計數器0,1分別控制輸出進行反轉。

不可行原因:

計數器0,1控制輸出反轉為冗餘操作。方案三是方案二的改進版。

設計方案三(可行)

中斷功能

int0,int1

分別判斷兩個週期,並且分別設定timer0,1的計數值

timer0,timer1

兩個計數器分別控制兩個pwm波的高電平時間

注意事項:

需要注意的是int0和int1都是下降沿有效,所以我在int0和int1之前加了乙個反相器。

主函式
主函式負責持續記錄高電平的持續時間。

中斷函式

外部中斷負責檢測週期開始並將計數值清零,填入計數器中高電平持續時間。

接收機輸出源pwm訊號

進行再生成的pwm訊號

微控制器JSON生成框架

出處 背景最近買了51822的藍芽開發板,閒暇之餘進行了一些除錯,目前還沒有深究藍芽協議的原理。借助git上51822的現有安卓例程以及開發板自帶程式,基本可以實現android手機和開發板間的資料傳遞,那麼,問題來了。資料用什麼樣的格式傳遞呢?如果資料量小的話可以自定義一些規則進行解析,記得做畢業...

微控制器 指標讀取內容解析

stc微控制器自帶內部參考電壓,微控制器生產時內部已經做校準,可分別在ram和rom中讀取,1 rom中讀取 b int code 0xeff7 rom容量大小不同,位址不同如 stc8a8k60s4a10 是0xeff7 code 是指程式儲存 rom 位址 2 ram中讀取 而在ram中不需要勾...

微控制器程式語言及應用技巧解析

c語言和組合語言在開發微控制器時各有哪些優缺點?組合語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少 程式執行效率高。但是不同的cpu,其組合語言可能有所差異,所以不易移植。c語言是一種結構化的高階語言。其優點是可讀性好,移植容易,是普遍使用的一種計算...