私は私たちのために書かれたいくつかのファームウェアでいくつかのことを理解しようとしています。私はCをよく知っているわけではないので、ここではちょっとしたことが起こっていると思います。私はコードがコメントとどのように関係しているのか理解できません。あなたは英語に翻訳できますか?略語を解読するのに役立つC
// so the button has to be held for 70 ms to be considered being pressed
// and then has to be released for 70ms to be considered un-pressed
State=(State<<1) | !input(USER_BUTTON) | 0xe000;
if(State==0xe000)
{
Debounced_Button_Pressed = TRUE;
time_button_held++;
}
else if (State==0xffff)
{
Debounced_Button_Pressed = FALSE;
}
これは、タイマ割り込み機能の中で、明らかにすべての4.4ms
感謝を発射します。
Stateが元の状態であったことと、0xE000が表すもの(これはたぶんレジスタビットフィールドです)を知らないと実際に十分な情報がありません – Earlz
このコードはhttp://www.ganssle.com/debouncing.pdfからコピーされましたpage 20 – Mark
@マーク - 私はそれが身近に見えたことを知っていた –