C語言那些事之脈衝丟包率檢測

2021-09-16 19:24:54 字數 659 閱讀 8085

業務實現比較簡單,具體看注釋。

#include "plusecheck.h"

#include "gpio.h"

unsigned long totalcnt; //總的脈衝計數器

unsigned long plusecnt; //占空比大約為50%的脈衝計數器

/** *

* 根據脈衝的週期設定呼叫週期

* 最好是放在定時器中斷中

*/void checkplusepin(void)

if(widthtmcnt < 0xffffffff)

widthtmcnt++;

pinsta = 1;

}elseelse

totalcnt ++;

if(totalcnt == 1000)else

plusecnt = 0;

totalcnt = 0;

}negwidthtmcnt = 0;

} if(negwidthtmcnt < 0xffffffff)

negwidthtmcnt ++;

pinsta = 0;

} //根據丟包率控制led的開關

if(isdutycycleok)

}else

}

C語言那些事之指標操作

乙個函式如果要返回乙個陣列,這個陣列最好不要定義成區域性變數,因為區域性變數傳過去後,該位址的內容有可能會發生變化,所以只能定義全域性變數陣列作為返回引數。定義的指標變數,該變數只能被呼叫或傳入位址,不能進行內容操作,否則會奔潰,在stm32中會跑入錯誤中斷中。貼乙個最近寫的字串操作的函式 c檔案 ...

C語言預處理那些事

c 檔案 i 檔案 s 檔案 o 檔案 可執行檔案 預處理 編譯 彙編 鏈結step1 預處理階段生成.i檔案 gcc o helloworld.i helloworld.c e 標頭檔案在預處理階段都被放置到了.i檔案的上方 include 去掉了 存在的是所有的.h檔案中的內容 巨集的替換是不考...

C語言中關於記憶體那些事

c語言的程式記憶體布局,從高到低依次為 棧區 堆區 未初始化資料區 初始化資料區 區。一 棧區 由編譯器自動管理,無需程式設計師手工控制。存放函式的引數值 區域性變數的值等。棧區內容從高位址到低位址分配,從低位址到高位址訪問。int a 0 int b 0 int array 5 printf a....