LPC1788--TIMER匹配中断设置--寄存器操作
来源:互联网 发布:身份证照片查询软件 编辑:程序博客网 时间:2024/06/05 17:54
简单记录LPC1788定时器匹配中断设置--通过寄存器直接操作
#include "timer_lpc1788.h"
#include "uart_lpc1788.h"
void TIMER0_IRQHandler(void) //TIMER0中断函数
{
if(((LPC_TIM0->IR) &(1<<0))==(1<<0)) //匹配中断发生
{
UARTSendStr("CLOS\r\n");
}
LPC_TIM0->IR |=(1<<0);//清除匹配中断标志位
}
void TIMER0_Init(uint32_t clk, uint32_t howtime)
{
LPC_SC->PCONP|=(1<<1);//打开TIMER0外设时钟
LPC_TIM0->CTCR &=(~0x03);//计数控制寄存器
LPC_TIM0->CTCR |=0x00;//定时器模式
//----PC=PR-----TC++
LPC_TIM0->TC =0;//定时计数器
LPC_TIM0->PR =0;//预分频寄存器
LPC_TIM0->PC =0;//预分频计数器
LPC_TIM0->TCR |=(1<<1); //定时器控制寄存器--复位定时器
LPC_TIM0->TCR &=~(1<<1); //清除复位
LPC_TIM0->PR =(clk/1000000-1);//预分频寄存器--系统外设时钟/1000000=1us需要的PC值
LPC_TIM0->IR=0xFFFFFFFF; //清除中断
//--------------------
LPC_TIM0->MR0=howtime;//匹配寄存器---多少个1us将匹配
LPC_TIM0->MCR &=~(0x07); //匹配控制寄存器--禁止匹配-复位-停止产生的中断
LPC_TIM0->MCR |=(1<<0); //允许匹配中断
LPC_TIM0->MCR |=(1<<1); //允许复位中断--匹配时TC复位-重新计数
NVIC_SetPriority(TIMER0_IRQn, ((0x01<<3)|0x01)); //设置定时器中断优先级
NVIC_EnableIRQ(TIMER0_IRQn); //定时器中断使能
LPC_TIM0->TCR |=(1<<0);; //启动定时器
}
- LPC1788--TIMER匹配中断设置--寄存器操作
- LPC1788-IO模拟SPI--驱动AD7708--寄存器操作
- Cortex-M3 (NXP LPC1788)之外部中断操作
- Cortex-M3 (NXP LPC1788)之外部中断操作
- STM32中断设置相关寄存器的分析
- ARM7 的中断寄存器的设置方法
- 外部中断使用指南(寄存器设置)
- stm32 外部中断嵌套[操作寄存器+库函数]
- LPC1788 NVIC 的设置
- LPC1788---串口设置
- 中断寄存器
- 中断寄存器
- 中断寄存器
- LPC1788系统时钟的设置
- LPC1788系统时钟的设置
- ARM外部中断控制寄存器EXTINTn设置方法
- stm32 NVIC中断管理实现[直接操作寄存器]
- stm32 NVIC中断管理实现[直接操作寄存器]
- Python基础教程笔记——抽象
- 水平居中总结-不定宽块状元素方法(三)
- mongoengine
- smarty模版手册
- 周记——20150608
- LPC1788--TIMER匹配中断设置--寄存器操作
- git commit命令详解
- ffmpeg源码跟踪笔记之avcodec_open2
- 黑马程序员__java基础__函数、数组
- NSSet全部API学习。
- phpstrom快捷键
- 2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)
- IT思维(一)
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!