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