arduino为什么没有定时中断?
本帖最后由 Malc 于 2012-3-10 13:52 编辑如题,一个困扰我很久的问题
网上关于arduino定时中断的运用也是相当的少
找到一篇文章Arduino 中使用定时中断
复制了其中的代码#include <avr/io.h>
#include <avr/interrupt.h>
/*
* 将定时器中断设为1ms
*/
void init_time()
{
TCCR2A |= (1 <<WGM21) | (1 << WGM20);
TCCR2B |= (1 << CS22 );//by clk/64
TCCR2B &= ~((1 <<CS21) | (1 <<CS20));//by clk/64
TCCR2B &= ~((1 << WGM21 ) | (1 << WGM20));
ASSR |= ( 1 << AS2 );
TIMSK2 |= ( 1 << TOIE2 ) | ( 0 << OCIE2B );
TCNT2 = 6;
sei();
}
int count = 0;
SIGNAL(SIG_OVERFLOW2)
{
TCNT2 = 6;
++count;
if( count == 1000 )
{
Serial.print("$ ");
count=0;
}
}
/*
*/
void setup(void)
{
Serial.begin(115200);
init_time();
}
void loop( void )
{
Serial.println("start ... ...");
while( 1 )
{
delay( 100 );
}
}放到我的arduino中跑了一下,结果arduino死机了!><!!TX灯一直亮
arduino的Serial monitor也挂了
我在想是不是arduino的某些函数占用了定时器,而自己使用的时候又重新更改了他的值导致出错
恩。。。求解啊 嘿嘿,你挂了.
Arduino 标准语言结构中没有定时器的概念.
如果要定时,也是使用delay()函数.
所以,如果你要搞定时器,那么就得老老实实的用AVR的语言结构.
国外有人搞555电路做定时器,然后触发Arduino的中断的办法. 风的孩子 发表于 2012-3-5 11:27 static/image/common/back.gif
嘿嘿,你挂了.
Arduino 标准语言结构中没有定时器的概念.
如果要定时,也是使用delay()函数.
==!这咋整啊。。。
没定时器写稍大一点的程序太痛苦了!
难道说我out了?
有没有简单粗暴有效的办法? Arduino硬件难道没有时钟中断? 继续求解中,知道的大侠回答一下! Randy 发表于 2012-3-9 17:12 static/image/common/back.gif
继续求解中,知道的大侠回答一下!
是在搞不懂上面那段代码有什么问题
不过我这有几个定时器的库,你可以下来用用
我写了一篇关于多任务库的文章,可以结合这个库使用
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=610&page=1#pid3486
那篇文章文章里已经包含了这几个定时器库了 有库函数啊,定时中断
#include <MsTimer2.h>
void setup()
{
pinMode(13, OUTPUT);
MsTimer2::set(500, flash); // 500ms period
MsTimer2::start();
}
void loop()
{ }
void flash() {
static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
} Malc 发表于 2012-3-9 19:17 static/image/common/back.gif
是在搞不懂上面那段代码有什么问题
不过我这有几个定时器的库,你可以下来用用
我写了一篇关于多任务库 ...
好的,谢谢哦、 定时中断咋没有?看门狗定时器,WDT 中断,回答完毕 attachlnterrupt(interrupt,function,mode)
这也是中断啊!!!! 这里讨论的是内部定时器中断呢。。。。。 风的孩子 发表于 2012-3-19 17:33 static/image/common/back.gif
这里讨论的是内部定时器中断呢。。。。。
教授你不讲解一下吗?目前还是不清楚arduino有没有定时中断的问题? 有库函数啊,定时中断
不明有庫函數, 是什麼, 我是新手初學的, 請敎一下 悠然小调 发表于 2012-3-9 20:35 static/image/common/back.gif
有库函数啊,定时中断
#include
这个可以实现1ms的中断吗
执着 发表于 2012-4-9 11:04 static/image/common/back.gif
这个可以实现1ms的中断吗
#include <MsTimer2.h>
void setup()
{
pinMode(13, OUTPUT);
MsTimer2::set(1, flash);//1ms
MsTimer2::start();
}
void loop()
{ }
void flash() {
static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
}
页:
[1]
2