历史上的今天
今天是:2024年08月24日(星期六)
2021年08月24日 | LPC1788--TIMER匹配中断设置--寄存器操作
2021-08-24 来源:eefocus
简单记录LPC1788定时器匹配中断设置--通过寄存器直接操作
#include "timer_lpc1788.h"
#include "uart_lpc1788.h"
void TIMER0_IRQHandler(void) //TIMER0中断函数
{
if(((LPC_TIM0->IR) &(1<<0))==(1<<0)) //匹配中断发生
{
UARTSendStr("CLOSrn");
}
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---串口设置
史海拾趣
|
converted tri node “端口名”that feeds logic to a wire removing OPNDRN node “端口名” that feeds logic 请问意思是说把三态门和OD门 remove掉了吗?出现这个warning的原因是什么呀? 我的代码剪切下来如下: inout dq; reg oe; assig ...… 查看全部问答> |
|
请教一下高手,我现在用Microchip的30F系列的单片机6011A与触摸屏进行485串口通讯,现在的情况是:液晶模块可以显示汉字等,但是不能实现翻屏。也就是单片机可以发送给液晶,但是液晶触摸屏反馈来的信息单片机没有回应,没有接收。用串口调试助手, ...… 查看全部问答> |
|
在WinCE当中定义了很多函数,它们具有一些特定的功能。但是在各个厂商的BSP当中也有定义很多同名的函数,提供了针对该平台的一些特定功能。那么WinCE到底靠什么来确定该调用那个函数了。比喻说在在在InterruptInitialize()调用OEMInterruptEnable ...… 查看全部问答> |
|
typedef struct { uchar src_mac_id :8; uchar dest_mac_id :8; uchar ack   ...… 查看全部问答> |
|
【跟TI学电源】系列-----TI模拟应用期刊2012年前三期 TI每季度的模拟应用期刊---2012 [ 本帖最后由 qwqwqw2088 于 2012-11-15 23:04 编辑 ]… 查看全部问答> |
|
学习MSP430G2553遇到的定时器和串行I2C的问题求助 最近在学MSP430G2553这个单片机,一切觉得都还不错,但就是有两个问题不大理解 1:定时器那不会(不是看门狗定时器),就特别简单的定时程序要怎么写呢?还有那个PMW波又是什么意思? 2:串行通信的I2C软件程序要怎么编写,里面有发送/接收字节 ...… 查看全部问答> |




