对不起,英语不好。
我需要编写一段使用延迟的对时间要求严格的代码(通过 bit-bang 实现软件协议的严格部分)。编译时的 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__
片段制作一些代码。这对我不好,我需要控制每个时钟周期。