下手な英語でごめんなさい。
遅延を使用するタイム クリティカルなコード (ビットバンによるソフトウェア プロトコル実装の厳密な部分) を作成する必要があります。コンパイル時の C プリプロセッサは、遅延のクロック サイクル数を (マクロを使用して) 計算できるため、不明なサイクル数のF_CPU
アセンブラ遅延コードを実装する必要があります。
しかし、GCCは定義された周波数の正確なクロック サイクルを__builtin_avr_delay_cycles(unsigned long cycles)
遅延させる非常に便利な機能を提供します。 cycles
F_CPU
質問。インライン アセンブラ コード__builtin_avr_delay_cycles
内で使用する方法はありますか?
注. 迂回路はこんな感じ。
__asm__ (...);
__builtin_avr_delay_cycles(...);
__asm__ (...);
しかし、コンパイラは__asm__
断片の周りにいくつかのコードを作成できます。私にとっては悪いことです。各クロックサイクルを制御する必要があります。