STM8S IO最快翻轉速度

2021-09-25 06:39:20 字數 1432 閱讀 8287

irc使能16m,不分頻。

io設定為推挽高速輸出。

while(1)死迴圈翻轉。

反思是有一層函式呼叫的原因,沒有及時翻轉。

把函式去掉直接操作。

反思通過結構體訪問暫存器,使用的是間接定址,消耗了時間。

直接對硬體位址操作。

反思為什麼是高電平比低電平多,是置高然後迴圈跳轉回去指令耗時了。跳轉指令有沒有辦法精簡。

改迴圈語句。

這三種迴圈彙編跳轉都是jra,所以沒有達到提速的效果。嘗試失敗。

反思是跳轉耽誤了時間,那盡可能的翻轉,少跳轉。

用空間換速度,多重複幾次翻轉,然後才迴圈。

反思那足夠多的重複指令,然後才接一次迴圈,就可以無限接近於沒有跳轉的效果。

嘗試的結果是不會。當重複到一定次數,rom儲存空間存在跨頁,跳轉的時候會編譯變長跳轉,長跳轉的指令週期比當前跳轉機器周期長。

如果只是使用io翻轉,最大的速度只能到這麼多了。

反思如果是有程式參與導致翻轉速度受指令限制,那麼硬體自己反應,應該比這個快。

使用pwm翻轉。

反思是比較器比較的時候消耗了時間。

結論,io最大的翻轉速度是訪問硬體位址直接操作io。

stm32 史上最詳細的8種IO口模式

4種輸入模式 4種輸出模式 帶上拉或者下拉 浮空輸入 推挽輸出 上拉輸入 復用式推挽輸出 下拉輸入 開漏輸出 模擬輸入 復用式開漏輸出 浮空輸入模式下,i o埠的電平訊號直接進入輸入資料暫存器。mcu直接讀取i o口電平,i o的電平狀態是不確定的,完全由外部輸入決定 如果在該引腳懸空 在無訊號輸入...

stm8s和stm8l低功耗對比

在低功耗應用中,一般來說mcu是常態halt模式,然後偶爾被喚醒 外部中斷或者內部定時喚醒 進入執行模式。所以對比低功耗效能,一般來說只需要對比run模式和halt下的功耗即可,因為專案選用的是通過內部定時器喚醒,所以選用active halt mode。以下是stm8s003和stm8l151在這...

STM8 開發備忘

前段時間寫了一點stm8的 現在總結一下。iar 指的是iar embedded workbench。又稱為ewstm8。我是用的是ewstm8 2105 autorun.exe。破解後會報乙個庫載入失敗。沒有關係可以繼續用。1.檢視晶元型號 專案右鍵 選項 目標,我的是stm8l151g6。可以根...