wchuster 发表于 2015-7-2 10:29:35

mega2560的delay(1000)不是延时1s,而是10几秒

自己画的板子。最小系统如下,晶振为16Mhz,mega2560芯片没有烧bootloader。我试了用下面的程序:
void setup() {
    pinMode(A15, OUTPUT);// initialize digital pin A15(PK7) as an output.
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(A15, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(1000);                   // wait for a second
digitalWrite(A15, LOW);   // turn the LED off by making the voltage LOW
delay(1000);                   // wait for a second
}

结果灯居然亮暗的时间是10几秒,不是1s!后来我就把delay(1000),改为delay(60),用示波器测才大致接近1s。
为什么会出现这种情况?我的mega2560芯片没有烧bootloader,是不是和这有关?

wchuster 发表于 2015-7-2 11:07:20

问题解决了。。。:L:L:L:L
熔丝位没设置好。。选择晶振源错了

pumpitup 发表于 2015-7-2 15:14:00

wchuster 发表于 2015-7-2 11:07 static/image/common/back.gif
问题解决了。。。
熔丝位没设置好。。选择晶振源错了

顺便讲解一下怎么设置熔丝位吧

zwltanf 发表于 2015-7-2 15:23:41

pumpitup 发表于 2015-7-2 15:14 static/image/common/back.gif
顺便讲解一下怎么设置熔丝位吧

同问          ?

wchuster 发表于 2015-7-2 15:33:41

pumpitup 发表于 2015-7-2 15:14 static/image/common/back.gif
顺便讲解一下怎么设置熔丝位吧

就按照官方的就可以了。低FF 高D8 扩展FD

wchuster 发表于 2015-7-2 15:33:58

zwltanf 发表于 2015-7-2 15:23 static/image/common/back.gif
同问          ?

就按照官方的就可以了。低FF 高D8 扩展FD

PINKWALKMAN 发表于 2015-7-3 07:51:24

没有烧bootloader导致的,之前也有遇到过。说白啦没有配置熔丝位,单片机此时默认为内部RC振荡电路提供时钟。
页: [1]
查看完整版本: mega2560的delay(1000)不是延时1s,而是10几秒