标题: Arduino中使用定时中断 附源程序 [打印本页]
作者: 小飞侠彼得 时间: 2019-4-19 17:56
标题: Arduino中使用定时中断 附源程序
Arduino的库中本身没有提供操作定时中断的功能,但是我们以可以avr开发库本身的特性来使用Arduino没有提供的功能。代码如下, 设置一个1ms的中断, 每隔1s输出一个$符号:
- #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 );
- }
复制代码
-
Y~@MA3@]21_TG0[C3SQDV`X.png
(25.39 KB, 下载次数: 74)
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |