我的程序没有使用 GCC AVR 编译器进行编译。这是一款微处理器和液晶屏上的小游戏。
move_delay = 200;
_delay_ms( move_delay );
它不喜欢这个 _delay_ms 是一个变量,但它需要是一个变量,因为我可以通过 ADC 调整屏幕动作。有没有办法让它成为一个常数,但仍然可以与 ADC 一起使用?
如果在 #include 语句之前使用以下定义,则还可以使用变量而不是数值常量来调用延迟函数:
#define __DELAY_BACKWARD_COMPATIBLE__
#include <util/delay.h>
/************************************************************************
* Function: sound
* Description: Toggle Port to generate sound with a given pulse width.
* Parameter: duration, pulsewidth
* Uses: _delay_us()
************************************************************************/
void sound(uint16_t duration, uint16_t pulsewidth) {
uint16_t i;
uint16_t j = 2270 * duration/pulsewidth;
for(i=0; i<j; i++) {
SPKR_PORT |= (1 << SPKR_PAD); //Set port -> create bit mask and OR it
//delay
_delay_us(pulsewidth);
SPKR_PORT &= ~(1 << SPKR_PAD); //clear port -> negate mask and AND it
//delay
_delay_us(pulsewidth);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)