【发布时间】:2025-11-22 06:05:01
【问题描述】:
我正在使用 Atmel Studio 6.1 和 ANDLoad 来刷新 ATMega16 MCU。如果我用这个调用的函数编译代码,ANDLoad 会给我“Flash Hex 文件 359 中的错误”。 359 行是十六进制文件末尾的第三行。如果我调用没有代码的函数,它工作得很好,但我没有意义。只添加一行代码又给了我错误。
我这样称呼它:
start(maxSpeed, 0, speed_1); //function call
//CODE//
void start (uint8_t maxSpeeda, uint8_t dir,uint8_t speed){
uint8_t ii=0;
if (dir==1)
setbit(PORTD,6);
else if (dir==0)
clrbit(PORTD,6);
OCR1A = 0xFFFF; //set low frequency of PWM
TCCR1A |= ( (0<<COM1A1) | (1<<COM1A0) ); //PWM generator ON
tqOFF(); //Enable 100% torque
for (ii=0; ii<maxSpeeda; ii++){ //linear start of stepper motor
OCR1A = tab[ii]; // Tab of 16-b OCR1A values for linear start
_delay_ms(speed);
}
}
有人知道我做错了什么吗?谢谢你。大卫
【问题讨论】:
-
也许您的代码变得太大或达到了其他限制?在任何情况下,如果没有代码、环境详细信息以及可能无法访问工具,我们非常不太可能了解发生了什么。
-
它给出的唯一错误是编程软件ANDLoad生成的“Flash Hex File 359中的错误”。 Atmel Studio 没有给我任何错误。我也尝试使用其他编程接口和软件,但 HEX 文件已损坏且无法正常工作。
标签: c++ compilation function-call atmega16 atmelstudio