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.5Hz
17     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 }
时间: 2024-08-03 07:47:18

Arduino的定时中断的相关文章

智能车学习(十九)&mdash;&mdash;K60单片机定时中断学习

一.头文件 #ifndef _PIT_H_ #define _PIT_H_ extern uint32_t zero; //定义定时器 typedef enum PITn { PIT0, PIT1, PIT2, PIT3 } PITn; void pit_init(PITn, u32 cnt); //初始化PITn,并设置定时时间(单位为bus时钟周期) #define pit_init_ms(PITn,ms) pit_init(PITn,ms * bus_clk_khz); //初始化PITn

Arduino系列之中断函数

今天我将简单记录中断函数 函数分为外部中断和定时中断 外部中断的定义:一般由外设发出中断请求,如:键盘中断.打印机中断.外部中断需外部中断源发出中断请求才能发中断. 定时中断的定义:是指主程序在运行一段程序过后自动进行的中断服务程序. interrupt  可以被中断的代码 nointerrupt  可以被中断的代码 外部中断: attach interrupt(interrupt,function,mode) 1)interrupt:中断号,UNO只用0,1,即代表D2,D3口 2)funct

STM32定时中断

0.STM32F103上测试 1. 0)时钟分配图 1)定时器的时钟不是直接来自于APB1或APB2,而来自其上面的倍频器 2)APB1不但要为TIM2~7提供时钟,而且还要为其它外设提供时钟.设置这个倍频器可以在保证其它外设使用较低时钟频率时 3.代码:使PG14,每隔一秒闪烁1次 #include <stm32f10x.h> void GPIO_Config(void); void NVIC_Config(void); void TIMER_Config(void); int main(v

DSP EPWM学习笔记1 - EPWM定时中断

彭会锋 75 #include "DSP28x_Project.h" // Device Headerfile and Examples Include File 77 78 // Select the example to compile in. Only one example should be set as 1 79 // the rest should be set as 0. 80 81 #define EXAMPLE1 1 // Basic pinout configur

Arduino+GPRS 的环境监控方案

设备前台界面:http://www.lewei50.com/home/gatewaystatus/361#576 本实采用的硬件,除了一个串口模块以外(约200元),其他均可以从taobo上面找到标准产品 发帖子不是为了买模块,如果不愿意用gprs的可以用w5100(以太网)替代,见帖子 http://www.lewei50.com/dev/doc/94 比较有意思的地方:可以通过手机app,微信随时掌控监测数据的情况. -------------------------------------

Arduino入门学习

一直听到许多做物联网.智能家居的控制器使用的是Arduino,从师兄那里拿到了一块Arduino开发板,进行了一下午的学习,感觉这个适合小孩子们玩:) 废话少说,总结一下,便于以后可能会用得到.我主要参考了百度文库的一个60+页的<arduino从零开始学>和一些技术论坛如极客工坊吧. 由于之前学习过若干块开发板,这里主要探究他们的异同,移植问题. 个人总结为三部分: 一.arduino IDE环境的搭建 由于无法进入官网下载,这里选择了1.6.11免安装版,并且是中文环境,非常方便 (2)驱

SylixOS周期定时抖动分析

1.概述 自动化与控制行业中有很多场景需要循环周期控制,而运动控制领域对循环周期控制的时间确定性要求尤为严格,周期抖动的时间确定性和周期控制的极限范围直接影响运动控制产品的质量和性能.SylixOS作为一款嵌入式实时操作系统,针对不同循环周期和不同程度的时间确定性要求均有对应的周期控制方式,其中就有为周期性任务解决多任务调度冲突并且时间确定性良好的速率单调调度(Rate Monotonic Scheduling RMS),还有传统的以硬件平台定时器作为中断源,以中断服务程序作为实时任务运行载体的

智能车学习(二十三)&mdash;&mdash;K60单片机注册中断函数

一.头文件: #ifndef __ISR_H #define __ISR_H 1 #include "include.h" /* 重新定义中断向量表 * 先取消默认的中断向量元素宏定义 #undef VECTOR_xxx * 在重新定义到自己编写的中断函数 #define VECTOR_xxx xxx_IRQHandler * 例如: * #undef VECTOR_003 * #define VECTOR_003 HardFault_Handler 重新定义硬件上访中断服务函数 *

【转】 51单片机中断学习

一.中断的概念    CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生):    CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务):    待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 二.中断源 在51单片机中有5个中断源 中断号          优先级                    中断源                    中断入口地址 0               1(最高)