作者yuleen123 (.......................)
看板Electronics
标题Re: [问题] arduino 延迟问题
时间Sun Apr 9 11:04:46 2017
我看 Arduino 的原始码, 这部份有改过了
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring.c
unsigned long millis()
{
unsigned long m;
uint8_t oldSREG = SREG;
// disable interrupts while we read timer0_millis or we might get an
// inconsistent value (e.g. in the middle of a write to timer0_millis)
cli();
m = timer0_millis;
SREG = oldSREG;
return m;
}
在红色的部份中 cli() 先关闭中断, 之後才存取 timer0_millis
这样可以确保读取到的 timer0_millis 是正确的
-------------------------------------------------------------
所以现在可以确定 milli() 是没问题的
或许你可以把程式 PO 上来看是哪边有问题
※ 引述《goodboylin77 (小小翰痴)》之铭言:
: 我程式写一个亮灯还有启动码达一个周期的排程照顾植物
: 其中部分用analogwrite写了5支脚位给led灯 後写delay两小时 再关掉 灯却1分到两分多就自己关掉继续跑下面程式
: 且每次loop关掉的时间都不ㄧ样
: 有试过只延迟 20秒 也是有提早关掉(有时1秒有时7秒有时正常都不固定)
: 完全无法理解
: 是有啥原因可能造成?
: 是一次太多脚位且用pwm写
: 暂存问题还是?
: 求解!谢谢
: -----
: Sent from JPTT on my HTC_A9u.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.41.39.57
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1491707088.A.314.html
2F:→ goodboylin77: 中间那段两小时的会跑一两分钟就跑下面程式 04/09 21:08