static int16_t last_cnt; // 上一次的脈沖。static int32_t plus_cnt; // 相對開始位置的脈沖數,int16_t temp,temp2; // 保持和 CNT 的位寬一致temp = TIM2->CNT; // ARR 設置為最大值 0xFFFF 即可temp2 = temp - last_cnt; // 必須分步plus_cnt += temp2; // 計算相對脈沖數 錯誤計算 plus_cnt += (temp - last_cnt);last_cnt = temp; // 保存上一次的值
static uint16_t last_cnt; // 上一次的脈沖。static uint32_t plus_cnt; // 相對開始位置的脈沖數,uint16_t temp,temp2; // 保持和 CNT 的位寬一致temp = TIM2->CNT; // ARR 設置為最大值 0xFFFF 即可temp2 = temp - last_cnt; // 必須分步plus_cnt += temp2; // 計算相對脈沖數 錯誤計算 plus_cnt += (temp - last_cnt);last_cnt = temp; // 保存上一次的值
-THE END-
如果對你有幫助,記得轉發分享哦
微信公眾號「魚鷹談單片機」
每周一更單片機知識

長按后前往圖中包含的公眾號關注