首页 > 代码库 > Arduino的定时中断

Arduino的定时中断

之前写了一篇关于Arduino定时的帖子,Arduino函数库里面有外部中断的函数,但是关于内部中断的函数没有提及,本文拟采用Arduino 的定时中断写一个Blink的程序。

代码如下。

 1 /******************************************************************************* 2 *** 3 *PROJECT CODE: 定时中断                                                        * 4 *CREATE DATE : 2014/11/27                                                      * 5 *CREATED BY  :HGXH                                                             * 6 *FUNCTION    :定时器产生中断,13号led闪烁,每隔1s                              * 7 *MODIFY DATE :2014/11/27                                                       * 8 *DOCUMENT    :                                                                 * 9 *OTHERS      :CPU = 16MHZ                                                      *10 *********************************************************************************11 **/12 13 14 void setup(){15     DDRB = (1<<5);//设置D13口为输出,PB5为D13引脚16     OCR1A = 15624;//设置Timer1初值,每隔1s变化一次,周期为0.5Hz17     TCCR1A = (0<<COM1A1) | (0<<COM1A0) | (0<<WGM11) | (0<<WGM10);//OC1A普通输出模式,CTC模式18     TCCR1B = (0<<WGM13) | (1<<WGM12) | (1<<CS12) | (0<<CS11) | (1<<CS10);//1024分频19     TIMSK1 = (1<<OCIE1A);//定时器1 A通道输出中断使能20 }21 void loop()22 {23     24 }25 26 ISR(TIMER1_COMPA_vect)//中断函数27 {28     PORTB ^= (1<<5);//13pin输出电平交替变换29     OCR1A = 15624;//定时器1装初值30 }

 

Arduino的定时中断