lpc1768的rit使用

LPC1768在系统滴答定时器和通用定时器之外还引入了一个定时器,叫做重复定时器RIT,该定时器只能用于定时操作,带有一个中断,我个人的感觉,这似乎是为了延时函数设计的一个定时器

那么使用该定时器时遵循什么流程?

第一,打开时钟

第二,我们要确定定时器从pclk分频数值,这要靠另外一个寄存器

第三,先关闭定时器

第四 设置寄存器比较值

第五 清空或者屏蔽一些特定的比较屏蔽位

最后打开中断,启动定时器

#define RIT_INT_POSITION 0

#define RIT_ENCLR_POSITION  1

#define RIT_ENBR_POSITION 2

#define RIT_EN_POSITION  3

void RitInit(u32 count)

{

LPC_SC->PCONP |=(1<<16); //打开时钟   sys中四分频 25M

LPC_RIT->RICTRL &= ~(1<<3);

LPC_RIT->RICOMPVAL = count;

//  LPC_RIT->RIMASK = count;

LPC_RIT->RIMASK = 0x80000000;

LPC_RIT->RICOUNTER = 0;

NVIC_EnableIRQ(RIT_IRQn);              /* enable irq in nvic              */

LPC_RIT->RICTRL = (1<<RIT_INT_POSITION)|(1<<RIT_ENCLR_POSITION)|(1<<RIT_ENBR_POSITION)|(1<<RIT_EN_POSITION);

}

 

最后,我们需要在rit的中断函数中响应中断,如下

void RIT_IRQHandler()

{

u8 state = LPC_RIT->RICTRL;

if(state&0x01)  //有中断发生

{

RitStop();

LPC_RIT->RICOUNTER = 0;

LPC_RIT->RICTRL |= 0x01;    //清除中断

RIT_INT_CALLBACK;

RitStart();

}

}

时间: 2024-11-10 08:01:13

lpc1768的rit使用的相关文章

LPC1768菜鸟学习之时钟配置

LPC1768的时钟源可以来自三个: 1)内部RC振荡器 内部振荡器可看作看门狗定时器的时钟源,也可作PLL0和cpu的时钟源,但是无法作为usb的时钟源,因为精度达不到.而且如果CAN波特率高于100kb/s,则也不适用了.在系统上电时,LPC1768都使用内部振荡器,直到软件将其切换为另一种可用的时钟源. 2)主振荡器 主振荡器可作为CPU的时钟源,需要通过分频和倍频进行配置使用.基本会使用主振荡器作为时钟源 3)RTC振荡器 RTC振荡器可提供1Hz-32kHz的RTC时钟输出,可用作PL

LPC1768基本输入输出GPIO使用

LPC1788通用IO口的控制包含了一些基本的组件,比如设置推挽输出,开漏输出,上拉电阻等,我们今天来看看. 首先使用GPIO要打开GPIO的系统时钟   LPC_SC->PCONP |= (1<<15);//gpio 时钟 然后需要选择我们选定引脚的功能,有些引脚有多个功能,通过寄存器可以从中选择一个   之后是设置相关引脚的外部电阻状态pinmode寄存器   然后设置开漏方式pinmode_od 到这里,引脚的基本功能就OK了,此时要操作GPIO还需要设置几个东西 输入输出方向FI

LPC1768外部中断与GPIO中断

LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明 控制这四个外部中断靠以下寄存器 这三个寄存器的0 1 2 3位分别代表中断的0 1 2 3,EXTINT寄存器表示中断是否发生,在发生中断的时候该寄存器会置位,可以通过写1清零,EXTMODE寄存器表示触发模式,有电平触发和变化沿触发两种,EXTPOLAR与EXTMODE,在电平触发模式下,决定高电平还是低电平触发,在变化沿触发的情况下决定上升沿还是下降沿触发 这三个中断分别相关

使用LPC1768经验总结汇总

我参加 CSDN2014 博客之星大赛了,请大家多多支持.投票网址如下(每天都可以投一票哦): http://vote.blog.csdn.net/blogstar2014/details?username=woshi_ziyu#content -------------------------------- 使用LPC1768做了一个数据采集设备,将设计过程中的经验总结出来,分享给大家,欢迎大家评论交流. 1. 通过SPI方式实现LPC17xx的远程升级设计 2. LPC 1768 -- RT

LPC1768/1769之CAN控制器概述

一.背景: 使用LPC1769来做CAN的收发,在此对使用LPC1769的CAN控制器进行收发做个总结和记录,以备下 次开发快速上手使用. 附:LPC1768/1769除了支持最高频率不同以外,其它基本上一致. 二.正文: 先贴一张LPC1769 CAN控制器的方框图: . 由上图可见,整个CAN控制器一头是CPU,另一头是CAN收发器: CAN收发器负责CAN数据与CAN网络的通信.CAN内核模块解析和封装要发送到CAN收发器以及从CAN 收发器发过来的数据,此处CAN内核工作由硬件自行完成.

LPC1768的iic通讯

LPC1768有三路IIC,其中IIC0支持高速模式和plus模式,另外两路是普通IIC,使用IIC的过程如下 首先依然是打开IIC时钟,同时打开GPIO时钟 然后配置引脚为IIC功能 另外,因为iic0支持plus结构,所以gpio控制的时候还有这个寄存器需要设置 接下来设置IIC的高低电平占空比 最后使能接口就可以使用了 初始化示例代码如下 void IIC0Init(u32 baud) { u32 t = (SystemCoreClock/4)/baud; //打开IIC时钟 LPC_SC

LPC1768的IIS通讯

IIS是飞利浦公司定义的一种用于音频传输的数字总线,LPC1768支持该总线, I2S接口为一条3线串行总线,含有1根数据线.1根时钟线和1根字选择信号线.基本的I2S连接具有一个主机(其总是为主机)和一个从机.LPC1700系列Cortex—M3微控制器的I2S提供了彼此独立的发送和接收通道,每个通道都可作为主机或从机. 使用代码如下 void IISInit(void) { //打开IIS时钟 LPC_SC->PCONP |= 1<<27; LPC_SC->PCLKSEL1 &

LPC1768串口使用

Lpc1768内置了四个串口通讯模块,都是异步通讯模块,其中,串口0/2/3是普通串口通讯,串口1与 UART0/2/3 基本相同,只是增加了一个 Modem 接口和 RS-486/EIA-486 模 式,不支持 IrDA,我们今天以串口0来演示串口的使用. 首先,使用串口0要打开串口0的时钟 然后要配置相应的输入输出IO口为串口通讯功能 然后,要控制串口0的时钟源,1768的大部分外设时钟都可以选择从cpu时钟中进行分频 接着,需要设置串口的通讯位,停止位以及波特率等 通过该寄存器能够设置波特

LPC1768的usb使用--硬件篇

LPC1768芯片带有USB设备控制器,前面写的文章都是在说比较简单的设备驱动,今天来说复杂一点的 首先是硬件层的配置 #ifndef __USBHW_H__ #define __USBHW_H__ #include "debugSerial.h" #include "usbreg.h" #include "usb.h" #include "usbuser.h" #include "usbcfg.h" #i