**設計
效果展示
使用航模遙控器控制兩個電機的轉速,由於航模遙控器輸出的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語言是一種結構化的高階語言。其優點是可讀性好,移植容易,是普遍使用的一種計算...