《嵌入式应用程序示例》由会员分享,可在线阅读,更多相关《嵌入式应用程序示例(155页珍藏版)》请在金锄头文库上搜索。
1、系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8. GPIOLPC2000系列ARM硬件结构9. 向量中断控制器10.外部中断输入11.定时器0和定时器112. SPI接口13. I2C接口14. UART(0、1)15. A/D转换器16. 看门狗17. 脉宽调制器(PWM)18. 实时时钟4.14 UART(0、1)n特性 LPC2000系列微控制器具有两个功能强大的UART,其特性如下: 16字节接收FIFO和16字节发送FIFO; 寄存器位置符合16C550工业标准; 接收FIFO触发点可设置为1、4、8或
2、14字节; 内置波特率发生器; UART1含有标准调制解调器接口信号 。n应用示例LPC2000的I/O电压为3.3V,连接时须注意电平的匹配。LPC2000其它通信设备TxD0RxD0TxD0RxD0与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。LPC2000PC机串口232电平转换TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232电平转换当使用Modem接口时,需要一个RS232转换器将信号转换为RS232电平后,才能与Mode
3、m连接 。移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDn除数锁存寄存器UnDLL、UnDLMUARTn波特率发生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)UARTn状态寄存器(UnLSR)中断中断使能寄存器UnIER中断标志寄存器UnIIRUARTn高速缓存寄存器UnSCR发送缓冲寄存器UnTHRUARTn发送单元TxDn移位寄存器UnTSRMODEMModem控制寄存器U1MCRModem状态寄存器U1MSRCTSDSRDCDDTRRIRTSVPB总总线线只有UART1才有Modem接口nUART结构图VPB总总线线AHB-VPB桥ARM7U
4、ARTn发送单元TxDn移位寄存器UnTSR发送缓冲寄存器UnTHRAHB总线ARM7AHB总线UARTn发送单元TxDn移位寄存器UnTSR发送缓冲寄存器UnTHRVPB总总线线AHB-VPB桥CPUUnTSRTXDUnTHRUnTHR描述复位值7 : 0发送器保持寄存器。写入该寄存器的值保存到发送FIFO中,当该字节到达FIFO底部时,它将被送入发送移位寄存器(UnTSR)进行发送。未定义nUART发送单元 nUART0、UART1各含有1个16字节的发送FIFO缓冲区。 nUnTHR是UARTn发送FIFO的最高字节。 nUART的发送FIFO是一直使能的。发送FIFOUnTHRUnTS
5、RnUART发送FIFO缓冲区VPB总总线线AHB-VPB桥ARM7AHB总线移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDnVPB总总线线AHB-VPB桥移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDnARM7AHB总线RXDUnRBRCPUUnRSRUnRBR描述复位值7 : 0接收缓存寄存器,它包含了接收FIFO中最早接收到的字节未定义nUART接收模块 nUART0、UART1各含有1个16字节的接收FIFO缓冲区。 n软件设置接收FIFO缓冲区的触发字节。 UART FIFO控制寄存器控制寄存器位765 : 3210功能Rx触发点设置复位T
6、xFIFO复位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCRnUART接收FIFO缓冲区UARTUART线状态寄存器线状态寄存器位76543210功能RXFETEMTTHREBIFEPEOERDRnUART线状态寄存器UnLSR 线状态寄存器(UnLSR)为只读寄存器,它提供UARTn发送和接收模块的状态信息 。 4.14 UART(0、1)nUART波特率发生器 UART0和UART1各含有一个单独的波特率发生器,两者的功能相同,且相互独立。 4.14 UART(0、1)名称描述复位值UnDLL7:0除数锁存寄存器低字节两个寄存器一起构成一个16位的除数,决定UARTn的
7、波特率。未定义UnDLM7:0除数锁存寄存器高字节 这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:BaudRate = FPCLK / (U0DLM,U0DLL16)nModem控制寄存器U1MCR位功能功能描述0DTR控制选择Modem输出引脚DTR。该位在回写模式激活时读出为0。1RTS控制选择Modem输出引脚RTS。该位在回写模式激活时读出为0。3 : 2保留用户软件不要向该位写入14回写模式0:禁止modem回写模式1:使能modem回写模式modem回写模式提供了一个执行回写测试的诊断机制。7 : 5保留用户软件不要向该位写入1 该寄存器使
8、能Modem的回写模式,并控制Modem的输出信号。4.14 UART(0、1)4.14 UART(0、1)n回写模式 在Modem回写模式下,发送器输出的串行数据在内部连接到接收器的串行输入端。输入脚RxD1对回写模式无影响,输出脚TxD1保持总为1的状态。4个Modem输入(CTS, DSR, RI和DCD)与外部断开。此时,U1MSR的高4位分别由U1MCR的低4位驱动。DSRCTSRIDCDDTRRTSTXDRXDModem接口芯片引脚DSRCTSRIDCDDTRRTSTXDRXDU1MCRBit0Bit1Bit2Bit3位功能功能描述0Delta CTS检测到CTS状态发生变化时,该
9、位置位。读取U1MSR时清零。1Delta DSR检测到DSR状态发生变化时,该位置位。读取U1MSR时清零。2后沿 RI检测到RI状态发生变化时,该位置位。读取U1MSR时清零。3Delta DCD检测到DCD状态发生变化时,该位置位。读取U1MSR时清零。4CTS反映输入信号CTS的补码。回写模式下该位连接U1MCR的bit1。5DSR反映输入信号DSR的补码。回写模式下该位连接U1MCR的bit0。6RI反映输入信号RI的补码。回写模式下该位连接U1MCR的bit2。7DCD反映输入信号DCD的补码。回写模式下该位连接U1MCR的bit1。nModem状态寄存器 该寄存器为只读,它反映M
10、odem输入信号的状态信息。需要注意的是,Mdoem信号对UART1的操作没有直接影响,Modem信号的操作是通过软件来实现的。4.14 UART(0、1)4.14 UART(0、1) 中断中断使能寄存器UnIER中断标志寄存器UnIIRUART0中断源UART0发送单元UART0接收单元UART1中断源UART1发送单元UART1接收单元Modem模块n中断接口 UART0和UART1的中断接口包含中断使能寄存器(UnIER)和中断标识寄存器(UnIIR)。4.14 UART(0、1) n中断使能寄存器UnIER描述复位值0RBR中断使能。1:使能RDA中断;0:禁止RDA中断。01THRE
11、中断使能。1:使能THRE中断;0:禁止THRE中断。02Rx线状态中断使能。1:使能Rx线状态中断;0:禁止Rx线状态中断;该中断状态可从UnLSR4:1读出。03Modem中断使能。 1:禁止Modem中断;0:禁止Rx线状态中断;该中断状态可从U1MSR3:0读取。注:只有UART1具有。07 : 4保留,用户软件不要向这些位写入1。未定义 UnIER可以控制UARTn的4个中断源。其中RBR中断使能包括两个中断,一个是接收数据可用(RDA)中断,一个是接收超时中断(CTI)。稍后将对各中断源作详细介绍。4.14 UART(0、1) n中断标识寄存器UnIIR描述复位值0中断挂起。1:没
12、有挂起的中断;0:至少有一个中断被挂起。03 : 1中断标识。这3位表示了对应于UARTn Rx FIFO的中断。未列出的其它组合作为保留值。011:1. 接收线状态中断(RLS)0010:2a. 接收数据可用中断(RDA)0110:2b. 字符超时指示(CTI)001:3. 发送中断(THRE)000:4. Modem中断 注:只有UART1具有7 : 3保留,用户软件不要向这些位写入1。未定义 UnIIR提供状态代码用于指示一个挂起中断的中断源和优先级。在访问UnIIR过程中,中断被冻结。如果在访问UnIIR时产生了中断,该中断将被记录,在下次访问UnIIR时可以读出,避免了中断的丢失。V
13、IC中断控制器ARM7TDMI内核Modem中断(UnIIR3:1=001)UnIERbit2bit1bit0bit3RLS中断(UnIIR3:1=011)RDA中断(UnIIR3:1=010)CTI中断(UnIIR3:1=110)THRE中断(UnIIR3:1=001)注意:只有UART1才有Modem中断。4.14 UART(0、1) nUART中断示意图优先级最高第二第二第三RLS中断RDA中断CTI中断THRE中断VIC中断控制器ARM7TDMI内核Modem中断第四UnIERbit2bit1bit0bit3注意:只有UART1才有Modem中断。4.14 UART(0、1) nUAR
14、T中断优先级l RLS中断:该中断为最高优先级。它在UARTn发生下面的错误时产生中断:1、溢出错误(OE)2、奇偶错误(PE)3、帧错误(FE)4、间隔中断(BI)通过查看UnLSR4:1可以了解到产生该中断的错误条件。读取UnLSR时清除该中断;4.14 UART(0、1) n中断源说明 l RDA中断:该中断与CTI中断并列为第二优先级。当接收的有效数据到达接收FIFO设置寄存器(UnFCR)中设置的触发点时,RDA被激活。当接收FIFO中的有效数据少于触发点时,RDA复位;1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据数量到
15、达预定的触发点时,置位RDA中断;3.从UnRBR寄存器中读取FIFO中最早到达的数据,当FIFO中的有效数据小于预定触发点时,清零RDA中断;接收FIFO12345679101112131415168触发点设置=8UnRBRUnRSRRxDnUnIIR3:1xxxUnIIR010100xxx1DATAn中断源说明 l CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。 接收FIFO12345679101112131415168触
16、发点设置=8UnRBR1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据少于触发个数,但至少有一个时,如果长时间没有数据到达,将触发CTI中断;3.从UnRBR中读取接收FIFO中的数据,或者有新的数据送入接收FIFO,都将清零CTI中断;UnRSRDATARxDnUnIIR3:1xxxUnIIR011100xxx1n中断源说明 接收FIFO12345679101112131415168触发点设置=8UnRBR说明:“个字节的时间”,其意思是在串口当前的波特率下,发送个字节所需要的时间;UnRSRDATARxDnUnIIR3:1xxxU
17、nIIR011100xxx1注意:当接收FIFO中存在多个数据,从UnRBR读取数据,但是没有读完所有数据,那么在经过个字节的时间后将触发CTI中断;l CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。 n中断源说明 12345679101112131415168UnRBRU0TSRTxDnUnIIR3:1xxxUnIIR01l THRE中断:该中断为第三优先级。当发送FIFO为空并且满足一定的条件时,该中断将被触发。这些条件是
18、:发送FIFO1.系统启动时,虽然发送FIFO为空,但不会产生THRE中断。DATA1100UnTSR2.在上一次发生THRE中断后,向发送FIFO中写入1个字节数据,将在延时一个字节加上一个停止位后发生THRE中断。 这是因为:如果发送移位寄存器为空,那么写入发送FIFO的数据将直接进入发送移位寄存器; 此时发送FIFO仍然为空,如果立即产生THRE中断,就会影响紧接着要写入发送FIFO的数据; 所以在发送完该字节以及一个停止位后,才产生THRE中断;3.如果在发送FIFO中有过两个字节以上的数据,但是现在发送FIFO为空时,将立即触发THRE中断。当THRE中断为当前有效的最高优先级中断时
19、,往UnTHR写数据,或者对UnIIR的读操作,将使THRE中断复位。n中断源说明 除数锁存寄存器UnDLL、UnDLMUARTn波特率发生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)中断中断使能寄存器UnIERMODEMModem控制寄存器U1MCRVPB总总线线4.14 UART(0、1) nUART设置使用UART前需要设置的寄存器4.14 UART(0、1) nUART设置使用UART前需要设置的寄存器寄存器名称功能UnLCR设置UARTn的通信格式。UnFCR设置UARTn的接收FIFO缓冲区。UnDLL、 UnDLM设置UARTn的通信波特率。UnIER设置
20、UARTn的中断。U1MCRModem接口设置(只有UART1具有)。4.14 UART(0、1) nUART设置 使用UART前需要设置的寄存器UnLCR,设置UART通信字符长度、停止位个数、奇偶校验位等参数。UART控制寄存器位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶设置停止位字长UART寄存器地址访问方式UART0U0RBR0xE000 C000DLAB=0,对地址:0xE000 C000进行读读访问U0THRDLAB=0,对地址:0xE000 C000进行写写访问U0DLLDLAB=1,对地址:0xE000 C000进行访问U0IER0xE000 C004DLAB=0,
21、对地址:0xE000 C004进行访问U0DLMDLAB=1,对地址:0xE000 C004进行访问UART1U1RBR0xE001 0000DLAB=0,对地址:0xE001 0000进行读读访问U1THRDLAB=0,对地址:0xE001 0000进行写写访问U1DLLDLAB=1,对地址:0xE001 0000进行访问U1IER0xE001 0004DLAB=0,对地址:0xE001 0004进行访问U1DLMDLAB=1,对地址:0xE001 0004进行访问nUART特殊寄存器位置相同的寄存器nUART应用示例操作流程设置引脚连接模块将对应IO连接到UARTn设置串口波特率设置串口工
22、作模式发送或接收数据检查串口状态字或等待串口中断nUART应用示例初始化代码UART0初始化代码:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0x00000005; U0LCR = 0x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0x03;定义表示波特率的宏,方便修改设置引脚连接模块置位除数锁存位根据波特率计算分频值设置除数寄存器(除数锁存访问位必须置位)清除除数锁存位,并设置工作模
23、式nUART应用示例初始化代码UART0初始化代码:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0x00000005; U0LCR = 0x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0x03;设置引脚连接模块将对应IO连接到UART0设置串口波特率设置串口工作模式发送或接收数据检查串口状态字或等待串口中断nUART应用示例收发数据void UART0_SendByte(uint8
24、data) U0THR = data; while(U0LSR & 0x40) = 0);uint8 UART0_RcvByte(void) uint8 rcv_data; while(U0LSR & 0x01) = 0); rcv_data = U0RBR; return(rcv_data);查询方式发送一字节数据:查询方式接收一字节数据:将要发送的一字节数据写入U0THR等待数据发送完毕等待数据到达从U0RBR中读出接收的数据返回接收的数据UART中断nUART与VIC的关系 UART0、UART1分别位于VIC的通道6和通道7。中断使能寄存器VICIntEnable的Bit6和Bit7分
25、别用来控制通道6和通道7的使能。 通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6IRQFIQ通道7UART1VICIntSelect7VICIntEnable7IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配UART中断nUART0与VIC的关系当VICIntEnable6 = 0时,通道6中断禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6
26、= 0IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配UART中断nUART0与VIC的关系当VICIntEnable6 = 0时,通道6中断禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 1IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 0IRQFIQVICVectAddr0VICV
27、ectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable6 = 1时,通道6中断使能。UART中断nUART1与VIC的关系当VICIntEnable7 = 0时,通道7中断禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 0IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefV
28、ectAddrIRQ通道分配UART中断nUART1与VIC的关系当VICIntEnable7 = 0时,通道7中断禁止;通道6UART0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect6VICIntEnable6 = 0IRQFIQ通道7UART1VICIntSelect7VICIntEnable7 = 1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable7 = 1时,通道7中断使能。UART中断nUART中断LPC2000系列ARM U
29、ART中断分为 四类: 接收中断 发送中断(THRE) 接收状态中断(RLS) Modem中断 (Modem) 接收超时中断(CTI) 接收数据可用中断(RDA)UART中断nUART中断示意图UART中断使能寄存器UnIERUART中断标志寄存器UnIIR3:1Bit0:RBR中断使能 接收中断 010 :RDA110 :CTIBit1:THRE中断使能 发送中断 001 :THRE Bit2:接收状态中断使能 接收状态中断 011 :RLSBit3:Modem状态中断使能 Modem中断 000 :Modem 注意:只有UART1具有Modem中断。UART中断nUART中断示意图注意:只
30、有UART1具有Modem中断。UART中断使能寄存器UnIERUART中断标志寄存器UnIIR3:1Bit0:RBR中断使能 接收中断 010 :RDA110 :CTIBit1:THRE中断使能 001 :THRE Bit2:接收状态中断使能 011 :RLSBit3:Modem状态中断使能 000 :Modem 1111发送中断 接收状态中断 Modem中断 中断使能位为1时,对应的中断使能UART中断总结n接收中断数据可用中断(RDA) LPC2000系列ARM UART接口具有16字节的接收FIFO,接收触发点可以设置为1、4、8、14字节,当接收到的字节数达到接收触发点时,便会触发中
31、断。 UnRBR接收移位寄存器触发点设置=8接收FIFO128916触发触发RDA中断中断UART中断总结n接收中断接收超时中断(CTI) 当接收FIFO中的有效数据个数少于触发个数时(注:接收FIFO中至少有一个字节),如果在到个字符的时间内,没有收到其它数据,将触发CTI中断。UnRBR接收移位寄存器触发点设置=8接收FIFO128916触发触发CTI中断中断UART中断总结n发送中断 LPC2000系列ARM UART接口具有16字节的发送FIFO,当发送FIFO由非空变为空时,便会触发“发送中断”。 发送移位寄存器UnTHR接收FIFO128916触发发送中断触发发送中断注意:前面对“
32、发送中断”做了详细的描述,在这里,为了描述方便,将发送中断简单表示成“发送FIFO由非空变为空”。UART中断总结n接收状态中断 在UART接收数据时,如果出现:溢出错误(OE)、奇偶错误(PE)、帧错误(FE)和间隔中断(BI)中的任意一个错误时,都会触发接收状态中断。 +触发接收状态中断触发接收状态中断溢出错误(OE)奇偶错误(PE)帧错误(FE)间隔中断(BI)UART中断总结nModem中断 UART1接口具有Modem中断,当引脚DCD、DSR或CTS上发生状态变化时,都会触发Modem中断。此外,Modem输入引脚RI上低到高电平的跳变也会产生一个Modem中断。 +触发触发Mod
33、em中断中断DCD引脚状态发生变化DSR引脚状态发生变化CTS引脚状态发生变化RI引脚上升沿系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8. GPIOLPC2000系列ARM硬件结构9. 向量中断控制器10.外部中断输入11.定时器0和定时器112. SPI接口13. I2C接口14. UART(0、1)15. A/D转换器16. 看门狗17. 脉宽调制器(PWM)18. 实时时钟4.15 A/D转换器n特性 LPC2114/2124具有一个AD转换器,LPC2200系列具有两个AD转换器,它们具有如下特性:10
34、位逐次逼近式模式转换器;测量范围:0;10位转换事件;可设置AD转换触发方式;具有掉电模式。4.15 A/D转换器nA/D转换器描述 A/D转换器的基本时钟由VPB时钟提供。可编程分频器可将时钟调整至逐步逼近转换所需的(最大)。如要要得到10位精度的结果,需要11个A/D转换时钟。 A/D转换器的参考电压来自V3A和VSSA引脚。4.15 A/D转换器nA/D转换器描述引脚名称类型引脚描述AIN7AIN0输入模拟输入。A/D转换器单元可分时测量这8个引脚上的输入信号电压。即使这些引脚设置为GPIO功能,仍可以使用A/D转换器部件。V3A,VSSA电源模拟电源和地。它们分别与标称的V3和VSSD
35、的电压相同,但为了降低噪声和出错几率,两者应当隔离。转换器的VrefP和VrefN信号在内部与这两个电源信号相连。A/D引脚描述4.15 A/D转换器nA/D转换器内部结构ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7nA/D转换器寄存器描述ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7名称描述访问复位值ADCRA/D控制寄存器。A/D
36、转换开始前,必须设置ADCR寄存器来选择工作模式。读写0x0000001ADDRA/D数据寄存器。该寄存器包含ADC的结束标志位和10位的转换结果(当结束标志位为1时,转换结果才是有效的)。读写NAnA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSEL:从AIN3AIN0(LPC2114/2124)或AIN7AIN0(LPC2212/2214)中选择
37、采样和转换输入引脚。Bit0控制AIN0,bit1控制AIN1,依此类推。1:对应输入端被选中; 0:对应输入端未选中;注意:软件模式下只能置位其中一位,硬件模式下可以是任意组合。ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700000000位值AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电
38、路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKDIV:将VPB时钟(PCLK)进行分频,得到AD转换时钟。分频后的时钟必须小于或等于4.5MHz。通常将CLKDIV编程为允许的最小值,以获得4.5MHz或稍低于4.5MHz的时钟。A/D转换器时钟 PCLK / ( CLKDIV + 1)CLKDIV ( PCLK / AD转换时钟)-1nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/
39、D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELBURST:BURST/软件方式控制。当该位为0时,选择软件方式启动AD转换,需要11个时钟才能完成。当该位为1时,选择BURST(突发)模式启动AD转换,所需时钟数由CLK字段控制。 BURST模式下,对所有在SEL字段中置1的位对应的输入端进行转换,首先转换的是最低有效位。然后是更高的位。如此周而复始,直至该位清零。nA/D转换器寄存器描述控制寄存器ADDRA/
40、D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSEL0123456700110110位值AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7首先转换最低有效位再转换更高的有效位AIN2AIN3AIN5AIN6nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:
41、222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELCLKS:控制BURST模式下每次转换需要使用的时钟数和所得ADDR转换结果的LS位中可确保精度的位的数目,CLKS可在11个时钟(10位)4个时钟(3位)之间选择:000=11个时钟/10位,001=10个时钟/9位,111=4个时钟/3位。nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTT
42、EST1:0PDNCLKSBURSTCLKDIVSELPDN:控制AD部件是否工作。1:A/D转换器处于正常工作模式;0:A/D转换器处于掉电模式;nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELTEST1:0:器件测试控制位。00:正常模式;01:数字测试模式;10:DAC测试模式;11:一次转换测试模式;nA/D转换器寄存器描述控制寄存器ADDR
43、A/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELSTART:该字段用于控制AD转换的启动方式,该字段只有在BURST为0时有效。000:不启动;001:立即启动转换;010:P0.16引脚出现预置的电平时,启动AD转换。以下值也具有相同特性;011:P0.22引脚;100:MAT0.1引脚;101:MAT0.3引脚;110:MAT1.0引脚;111:MAT1.1引脚;nA/D转换器寄存器描述
44、控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7ADCR位2726:2423:222119:171615:87:0功能EDGESTARTTEST1:0PDNCLKSBURSTCLKDIVSELEDGE:当START字段的值为010111时,该位的设置有效。0:在所选CAP/MAT信号的下降沿启动转换1:在所选CAP/MAT信号的上升沿启动转换nA/D转换器寄存器描述控制寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726
45、:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:这些位读出时为0。用于未来扩展功能更强大的AD转换器。ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0V/VddA:当DONE位为1时,该字段包含对SEL字段选中的Ain脚的转换结果,为一个二进制数。 转换结果为0时,表示Ain引脚电平小于、等于或接近于VSSA。为0x3FF时,表示Ain引脚电平等于、
46、大于或接近于VddA。输入电压计算公式为:Vin = 结果(VSSA / 0x3FF)ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:这些位读出时为0。它们允许连续A/D值的累加,而不需要屏蔽处理,使得至少有256个值不会溢出到CHN字段。ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN
47、0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0CHN:该字段包含的是LS位的转换通道。ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA00:这些位读出为0。用于未来CHN字段的扩展,使之兼容更多通道的转换值。ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存
48、器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0OVERUN:在BURST模式下,如果在转换产生最低位之前,以前转换的结果丢失或被覆盖,该位将置位。读ADDR寄存器时,该位清零。ADDRnA/D转换器寄存器描述数据寄存器ADDRA/D转换控制电路A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7位313029:2726:2423:1615:65:0功能DONEOVERUN0CHN0V/VddA0DONE:AD转换完成标志位。当AD转换结束时该位置
49、位。在读取ADDR或ADCR被写入时,该位清零。如果在转换过程中,设置了ADCR,那么该位将置位,并启动一次新的转换。ADDRnA/D转换器寄存器描述数据寄存器nADC中断与VIC的关系ADC中断向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect18VICIntEnable18IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 ADC处于VIC的通道18,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。nADC中断与VIC的关系ADC
50、中断向量IRQ通道0向量IRQ通道15非向量IRQ通道通道18ADCVICIntSelect18VICIntEnable18IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 ADC处于VIC的通道18,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable18 = 0时,通道18中断禁止;向量IRQ通道0向量IRQ通道15非向量IRQ通道通道0ADCVICIntSelect18VICIntEnable18IRQFIQVICVectAddr0VICVe
51、ctCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配nADC中断与VIC的关系 ADC处于VIC的通道18,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable18 = 0时,通道18中断禁止;ADC中断当VICIntEnable18 = 1时,通道18中断使能;nADC中断说明ADC中断 A/D转换器没有专门的中断使能位,这一点是和其它功能部件所不同的。 ADC转换时间VICDONE = 1ADC启动转换(软件、硬件) 启动A/D转换,A/D转换后,DONE置位,触发中断。4.15 A/D转换器
52、n使用A/D转换器的注意要点AD转换器的时钟不能大于;使用MAT引脚触发AD转换启动时,相应的MAT信号不必输出到引脚。使用MAT引脚触发的方法,可以实现AD转换定时启动;BURST模式下,每次转换结束后立即开始下一路的转换,所以BURST模式具有最高的效率;软件模式下,SEL字段中只能有一位置位,如果多位置位,将使用最低有效位。nA/D转换器操作示例操作流程计算ADC部件时钟设置引脚连接模块设置AD工作模式启动AD转换等待转换结束读取转换结果nA/D转换器操作示例#define ADCLK 4500000 / 定义AD部件时钟频率,单位:Hz#define ADBIT 10 / 定义BURS
53、T模式下的转换精度#define ADBIT2 (10 - ADBIT). PINSEL1 = (PINSEL1 & 0xFC3FFFFF) | 0x00400000; ADCR = (0x01 27) | / EDGE (0x05 24) | / START (0x00 22) | / TEST1:0 (0x01 21) | / PDN (ADBIT2 17)| / CLKS (0x00 16) | / BUREST (Fpclk/ADCLK + 1) 8) | / CLKDIV (0x01 0); / SELADCR |= (1 6) & 0x3FF; .使用软件方式对Ain0转换:设置引
54、脚连接模块硬件触发边沿设置AD启动设置测试模式设置AD部件上电设置BURST模式精度BURST模式禁止启动AD转换等待转换结束读取转换结果转换通道选择ADC部件时钟系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8. GPIOLPC2000系列ARM硬件结构9. 向量中断控制器10.外部中断输入11.定时器0和定时器112. SPI接口13. I2C接口14. UART(0、1)15. A/D转换器16. 看门狗17. 脉宽调制器(PWM)18. 实时时钟4.16 看门狗n看门狗简介 在嵌入式应用中,CPU必须可靠工
55、作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。 其原理是在系统正常工作时,用户程序每隔一段时间执行喂狗动作(一些寄存器的特定操作),如果系统出错,喂狗间隔超过看门狗溢出时间,那么看门狗将会产生复位信号,使微控制器复位。4.16 看门狗n特性 LPC2000系列微控制器都集成有看门狗部件,其特性为: 带内部预分频器的可编程32位定时器; 如果没有周期性重装(喂狗)动作,则产生片内复位; 具有调试模式; 看门狗软件使能后,必须由复位来禁止; 错误的喂狗动作,将立即引起复位。中断信号复位信号4分频喂狗寄存器WDFEEDPC
56、LK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出n看门狗内部结构图中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出名称描述访问WDMOD看门狗模式寄存器。该寄存器包含看门狗定时器的基本模式和状态。读/设置WDTC看门狗定时器常数寄存器。该寄存器决定超时值。读写WDFEED看门狗喂狗寄存器。通过它执行特定喂狗时序。只写WDTV看门狗定时器值寄存器。反映倒计数器当前值。只读n看门狗寄存器描述n寄存器描述看门狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDR
57、ESETWDENWDEN:看门狗中断使能位,该位只能置位。 该位置位后,将使能看门狗。一旦该位置位,软件无法将其清零。只有外部复位或看门狗定时器溢出能将其清零。注意:将该位置位后只是使能WDT,但没有启动WDT,当第一次喂狗操作时才启动WDT。中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出位7 : 43210功能保留WDINTWDTOFWDRESETWDEN中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出WDRESET
58、:看门狗复位使能位,该位只能软件清除。 该位置位后,看门狗溢出将引起复位。一旦该位置位,软件无法将其清零。只有外部复位或看门狗定时器溢出能将其清零。n寄存器描述看门狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDRESETWDEN中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出WDTOF:看门狗超时标志。 当看门狗发生超时,看门狗超时标志置位。该标志由软件清零。n寄存器描述看门狗模式寄存器位7 : 43210功能保留WDINTWDTOFWDRESETWDEN中断信号复位信号4分频喂狗寄存器W
59、DFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出WDINT:看门狗中断标志。 当看门狗发生超时,该位置位。该标志不能由软件清零,只能通过外部复位或者看门狗复位清零。n寄存器描述看门狗模式寄存器n寄存器描述看门狗常数寄存器 该寄存器决定看门狗超时值,当喂狗时序产生时,该寄存器的内容重新装入看门狗定时器。该寄存器的复位值为0xFF,即使写入更小的值,也会装入0xFF。溢出最小时间:tpclk0xFF4溢出最大时间:tpclk0xFFFFFFFF4中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式
60、寄存器WDMOD正确喂狗错误喂狗溢出0xAAn寄存器描述看门狗喂狗寄存器 向该寄存器写入0xAA,然后写入0x55会使WDTC的值重新装入看门狗定时器。如果看门狗通过WDMOD寄存器使能,那么第一次喂狗操作还将启动看门狗运行。在看门狗能够产生中断/复位之前,即看门狗溢出之前,必须完成一次有效的喂狗时序。 注意:如果喂狗时序不正确,将在喂狗之后的第二个PCLK周期产生看门狗复位。0x55中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出n寄存器描述看门狗定时器值寄存器 该寄存器用于读取看门狗定时器的当前值,该寄
61、存器为只读。中断信号复位信号4分频喂狗寄存器WDFEEDPCLK看门狗常数寄存器WDTC计数器WDTV看门狗模式寄存器WDMOD正确喂狗错误喂狗溢出nWDT中断与VIC的关系WDT中断向量IRQ通道0向量IRQ通道15非向量IRQ通道通道0WDTVICIntSelect0VICIntEnable0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 WDT处于VIC的通道0,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。nWDT中断与VIC的关系WDT中断向量IRQ通道0
62、向量IRQ通道15非向量IRQ通道通道0WDTVICIntSelect0VICIntEnable0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 WDT处于VIC的通道0,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable0 = 0时,通道0中断禁止;向量IRQ通道0向量IRQ通道15非向量IRQ通道通道0WDTVICIntSelect0VICIntEnable0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr
63、15VICVectCntl15VICDefVectAddrIRQ通道分配nWDT中断与VIC的关系 WDT处于VIC的通道0,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable0 = 0时,通道0中断禁止;WDT中断当VICIntEnable0 = 1时,通道0中断使能;向量IRQ通道0向量IRQ通道15非向量IRQ通道通道0WDTVICIntSelect0VICIntEnable0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配nWDT中断注意
64、事项:WDT中断 WDT的中断标志位无法通过软件清零,只能通过硬件复位清零。因此,当发生WDT中断时,只能通过禁止WDT中断的方式返回,即,VICIntEnable0 = 0。 4.16 看门狗n使用看门狗的注意要点 WDT定时器为递减计数,向下溢出时产生中断和(或)复位; 使能看门狗后,必需要要执行一次正确的喂狗操作才能启动看门狗; 看门狗没有独立的振荡器,其使用PCLK作为时钟。所以CPU不能进入掉电模式,否则看门狗将停止工作; 看门狗溢出时间 = Ntpclk4n使用示例设置看门狗定时重装值设置看门狗工作模式一次喂狗操作启动看门狗操作流程n使用示例设置看门狗定时重装值设置看门狗工作模式一
65、次喂狗操作启动看门狗操作流程设置看门狗定时重装值设置看门狗工作模式一次喂狗操作启动看门狗操作流程Void WDTInit(void)/ 看门狗初始化 WDTC = 0x10000; WDMOD = 0x03; WdtFeed();Void WdtFeed(void)/ 喂狗程序 WDFEED = 0xAA; WDFEED = 0x55;C代码:系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8. GPIOLPC2000系列ARM硬件结构9. 向量中断控制器10.外部中断输入11.定时器0和定时器112. SPI接口1
66、3. I2C接口14. UART(0、1)15. A/D转换器16. 看门狗17. 脉宽调制器(PWM)18. 实时时钟4.17 脉宽调制器n特性 独立的32位定时器/计数器; 7个匹配寄存器,可实现6路单边沿PWM输出,或3路双边沿PWM输出,或两者的混合输出; 所有PWM输出的频率都是相同的; 脉冲周期和宽度可以是任意的定时器计数值; 匹配寄存器更新与脉冲输出同步,防止产生错误脉冲。4.17 脉宽调制器nPWM简介 LPC2000的PWM基于标准的定时器模块,具有定时器的所有特性,它是定时器匹配功能的扩展。使用PWM功能,可以在指定引脚输出需要的波形。输出波形可分为两类: 单边沿输出; 双
67、边沿输出。nPWM简介单边沿输出 使用两个匹配寄存器就可以实现单边沿PWM输出。这两个匹配寄存器的功能:l 控制PWM周期PWMMR0;l 控制PWM的占空比PWMMRn。TPWMMR0控制PWM周期其它匹配寄存器控制边沿位置其它匹配寄存器控制边沿位置所有单边沿输出在周期开始时都为高电平,并在匹配发生前一直保持高电平nPWM简介双边沿输出 实现双边沿输出需要3个匹配寄存器进行控制,其功能分别为:l 控制PWM周期PWMMR0;l 控制PWM输出上升沿的位置;l 控制PWM输出下降沿的位置。TPWMMR0控制PWM周期其它匹配寄存器控制边沿位置其它匹配寄存器控制边沿位置与标准定时器部分完全一致。
68、锁存使能寄存器(LER)PWM6:1中断标志寄存器(IR)预分频器(PR、PC)定时器、计数器(TC)PCLK使能0x0000 0000定时器控制寄存器(TCR)复位匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)映像寄存器0映像寄存器1映像寄存器2映像寄存器3映像寄存器4映像寄存器5映像寄存器6匹配控制寄存器(MCR)PWM控制寄存器(PCR)比较器n脉宽调制器结构图4.17 脉宽调制器nPWM引脚描述管脚名称管脚方向管脚描述PWM1输出PWM通道 1 输出PWM2输出PWM通道 2 输
69、出PWM3输出PWM通道 3 输出PWM4输出PWM通道 4 输出PWM5输出PWM通道 5 输出PWM6输出PWM通道 6 输出 注意:虽然有7个匹配寄存器,但是并没有PWM0输出通道。因此,通常都使用匹配寄存器0来控制PWM通道的周期。4.17 脉宽调制器n单边沿PWM输出 单边沿PWM输出在PWM周期开始时为高电平; 单边沿PWM输出在到达其匹配值时会变为低电平。 举例:单边沿输出通道:PWM2,PWMMR0 = 80,PWMMR2 20。PWM周期开始时,PWM2输出高电平PWM计数值与PWMMR2匹配时,输出低电平。PWM计数器值02040600204060PWM2PWMMR0匹配时
70、,PWM计数器复位。PWM2输出高电平。PWMMR2匹配时,输出低电平。4.17 脉宽调制器n双边沿PWM输出 双边沿PWMn输出的上升沿位置在PWMMRn-1处; 双边沿PWMn输出的下降沿位置在PWMMRn处。 举例:双边沿输出通道:PWM2,PWMMR0 = 80,PWMMR1 = 20,PWMMR2 40。PWMMR1匹配时,PWM2输出高电平PWMMR2匹配时,PWM2输出低电平。PWMMR0匹配时,PWM计数器复位。PWM2输出不变。PWMMR2匹配,PWM2输出低电平。PWMMR1匹配,PWM2重新输出高电平PWM计数器值02040600204060PWM24.17 脉宽调制器n
71、PWM输出触发关系PWM通道单边沿PWM (PWMSELn = 0)双边沿PWM (PWMSELn = 1)上升沿下降沿上升沿下降沿1匹配0匹配1匹配0匹配12匹配0匹配2匹配1匹配23匹配0匹配3匹配2匹配34匹配0匹配4匹配3匹配45匹配0匹配5匹配4匹配56匹配0匹配6匹配5匹配6举例说明:使用PWM通道5输出时。如果为单边沿输出,那么匹配0事件置位输出引脚,匹配5事件清零输出引脚。如果为双边沿输出,那么匹配4事件置位输出引脚,匹配5事件清零输出引脚。5匹配0匹配5匹配4匹配54.17 脉宽调制器nPWM寄存器描述 PWM模块建立在定时器的基础上,所以一部分寄存器功能与定时器功能类似。所
72、有寄存器大致可以分为两类: 基本功能寄存器 匹配控制寄存器nPWM寄存器描述基本功能寄存器名称描述访问PWMTCRPWM定时器控制寄存器。控制PWM定时/计数器功能(禁止或复位)。读写PWMTCPWM定时器计数器。为32位计数器,计数频率为PCLK经过预分频计数器后的频率值。读写PWMPRPWM预分频控制寄存器。用于设定预分频值,为32位寄存器。读写PWMPCPWM预分频计数器。为32位计数器,计数频率为PCLK,当计数值等于预分频计数器的值时,TC计数器加一。读写预分频器(PR、PC)定时器、计数器(TC)PCLK使能0x0000 0000定时器控制寄存器(TCR)复位大部分寄存器的功能与定
73、时器部件相同,所以仅介绍与之不同的地方 PWM定时器控制寄存器TCR含有两个功能:l 控制定时器计数器的操作;l 控制PWM的使能。TCR功能描述复位值0计数器使能1:定时器计数器和预分频计数器使能计数;0:定时器计数器和预分频计数器停止计数。01计数器复位为1时,定时器计数器和预分频计数器在PCLK的下一个上升沿同步复位。计数器在TCR的bit1恢复为0之前保持复位状态。02保留用户程序不要向该位写入1NA3PWM使能为1时,PWM模式使能。为0时, PWM禁止0nPWM寄存器描述定时器控制寄存器nPWM寄存器描述匹配功能寄存器名称描述访问PWMMCRPWM匹配控制寄存器。用于控制匹配时是否
74、产生中断或复位TC。读写PWMMR0 6PWM匹配寄存器。每个寄存器对应于一个匹配值。读写PWMPCRPWM控制寄存器。使能PWM输出并选择PWM通道类型为单边沿或双边沿控制。 读写PWMLERPWM锁存使能寄存器。使能新的PWM匹配值有效。读写PWMIRPWM中断标志寄存器。读该寄存器识别中断源。读写PWM6:1中断标志寄存器(IR)PWM控制寄存器(PCR)锁存使能寄存器(LER)定时器、计数器(TC)匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)映像寄存器0映像寄存器1映像寄存器2
75、映像寄存器3映像寄存器4映像寄存器5映像寄存器6匹配控制寄存器(MCR)比较器nPWM寄存器描述匹配控制寄存器位功能描述复位值0中断(PWMMR0)l 1:PWMMR0与PWMTC值匹配时,将产生中断。l 0:该中断被禁止。01复位(PWMMR0)l 1:PWMMR0与PWMTC值匹配时,将使PWM计 数器复位。l 0:该特性被禁止。02停止(PWMMR0)l 1:PWMMR0与PWMTC值匹配时,将使PWM计 数器停止。l 0:该特性被禁止。03:20PWMMR16功能与PWMMR0相同(略)0nPWM寄存器描述匹配寄存器 PWM匹配寄存器值连续与PWM定时器计数值相比较当这两个值匹配时,根
76、据匹配控制寄存器的设置,自动执行相应动作:产生中断、复位PWM计数器、停止PWM计数器。位31 : 0复位值功能设定的匹配值0通常使用匹配寄存器0(PWMMR0)来控制PWM的周期、频率。nPWM寄存器描述锁存使能寄存器 在PWM运行模式下,修改PWM匹配寄存器时,新值并不直接写入到目标寄存器中,而是写入相应的映象寄存器中。在PWMMR0发生匹配并且PWMLER中的相应位置位时才能使修改值生效。锁存使能寄存器(LER)匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)映像寄存器0映像寄存器1
77、映像寄存器2映像寄存器3映像寄存器4映像寄存器5映像寄存器6锁存使能寄存器(LER)匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)映像寄存器0映像寄存器1映像寄存器2映像寄存器3映像寄存器4映像寄存器5映像寄存器6位功能描述复位值0使能PWM匹配0锁存置位后,写入PWM匹配寄存器0(PWMMR0)的值,只有在PWMMR0发生匹配事件后才能生效。06 : 1使能PWM匹配16锁存功能同上,只是分别对应匹配1到匹配6。07保留用户程序不要向该位写入1。NAnPWM寄存器描述锁存使能寄存器nP
78、WM寄存器描述PWM控制寄存器 PWM控制寄存器用于使能并选择每个PWM通道的类型。PWM6:1PWM控制寄存器(PCR)定时器、计数器(TC)匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)比较器nPWM寄存器描述PWM控制寄存器PWMPCR位功能描述复位值1 : 0保留用户程序不要向这些位写入1。NA2PWMSEL2l 0:PWM2通道选择为单边沿控制模式。l 1:PWM2通道选择为双边沿模式。03PWMSEL3功能同上,控制PWM3通道的输出模式。04PWMSEL4功能同上,控制PW
79、M4通道的输出模式。05PWMSEL5功能同上,控制PWM5通道的输出模式。06PWMSEL6功能同上,控制PWM6通道的输出模式。08 : 7保留用户程序不要向这些位写入1。NA9PWMENA1为1时,使能PWM1输出;为0时禁止。010PWMENA2为1时,使能PWM2输出;为0时禁止。011PWMENA3为1时,使能PWM3输出;为0时禁止。012PWMENA4为1时,使能PWM4输出;为0时禁止。013PWMENA5为1时,使能PWM5输出;为0时禁止。014PWMENA6为1时,使能PWM6输出;为0时禁止。015保留用户程序不要向这些位写入1。NA 说明: PWM1的双边沿输出与单
80、边沿是相同的,因此,PWM1不具有双边沿PWM输出。 如果将PWM3和PWM5用作双边沿PWM输出,那么此时只能有2路双边沿PWM输出。 只有将PWM2、PWM4和PWM6作为双边沿输出时,才能够达到3路双边沿PWM输出。nPWM寄存器描述PWM控制寄存器4.17 脉宽调制器n寄存器描述中断标志寄存器 中断寄存器包含11个位。其中7个位用于匹配中断,其它的位保留。中断发生时,对应位将被置“1”。向对应的IR位写入1会复位中断,写入0无效。位功能描述位功能描述0PWMMR0匹配 0 中断4:7保留1PWMMR0匹配 1 中断8PWMMR4匹配 4 中断2PWMMR0匹配 2 中断9PWMMR5匹
81、配 5 中断3PWMMR0匹配 3 中断10PWMMR6匹配 6 中断定时器、计数器(TC)匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)匹配寄存器4(MR4)匹配寄存器5(MR5)匹配寄存器6(MR6)比较器中断标志寄存器(IR)nPWM中断与VIC的关系PWM中断 LPC2000系列ARM含有1个脉宽调制器(PWM),可以产生7路匹配中断 ,PWM位于VIC的通道8。中断使能寄存器VICIntEnable的Bit8用来控制通道8的使能。通道8PWM向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect8VICIntEnable8
82、IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配PWM中断nPWM与VIC的关系当VICIntEnable8 = 0时,通道8中断禁止;通道8PWM向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect8VICIntEnable8 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配PWM中断nPWM与VIC的关系当VICIntEnable8 = 0时,通道8中断
83、禁止;当VICIntEnable8 = 1时,通道8中断使能。通道8PWM向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect8VICIntEnable8 = 1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配PWM中断PWMMCR 0 PWM定时器计数值TC = PWM 匹配值MR0PWM定时器计数值TC = PWM 匹配值MR1PWMIR 0 PWM定时器计数值TC = PWM 匹配值MR2PWM定时器计数值TC = PWM 匹配值MR3PWMIR 1 PWMIR
84、 2 PWMIR 3 PWMMCR 3 PWMMCR 6 PWMMCR 9 PWM中断标志寄存器(PWMIR) PWM中断是匹配中断,PWM含有7个匹配寄存器,当发生匹配事件时,便触发中断。 匹配控制寄存器MCR控制匹配中断的使能,相关位为“1”时,中断使能。4.17 脉宽调制器n使用PWM的注意要点 所有的PWM输出频率都是相同的。 修改匹配寄存器之后,必须设置锁存使能寄存器中的相应位,否则匹配寄存器的值不能生效; 修改匹配寄存器时,不需要停止PWM定时器,以免产生不完整的PWM波形; 不使用PWM功能时,可将该部件作为一个标准的32位定时器使用; PWMTC计数频率= Fpclk / (P
85、WMPR+1)nPWM使用示例操作流程连接PWM输出功能引脚设置预分频值设置匹配值设置PWM输出方式启动PWM定时器nPWM使用示例单边沿输出Void PWM1Out(uint16 FREQ) PINSEL0 &= 0xFFFFFFFC; PINSEL0 |= 0x00000002; PWMPCR = 0x200; PWMMCR = 0x02; PWMPR = 0x00; PWMMR0 = Fpclk / FREQ; PWMMR1 = PWMMR0 / 2; PWMLER = 0x03; PWMTCR = 0x09;PWM1输出50占空比方波输出频率,单位Hz设置引脚连接模块连接PWM1输出使
86、能PWM1输出MR0匹配后复位定时器设置预分频值为0设置PWM周期设置占空比为50%使能PWM匹配锁存使能PWM,启动定时器nPWM使用示例双边沿输出Void PWM2Out(uint16 FREQ) PINSEL0 &= 0xFFFF3FFF; PINSEL0 |= 0x00008000; PWMPCR = 0x404; PWMMCR = 0x02; PWMPR = 0x00; PWMMR0 = Fpclk / FREQ; PWMMR1 = PWMMR0 / 5; PWMMR2 = PWMMR1 * 2; PWMLER = 0x07; PWMTCR = 0x09;PWM2双边沿控制输出输出频
87、率,单位Hz设置引脚连接模块连接PWM1输出设置PWM2双边沿输出MR0匹配后复位定时器设置预分频值为0设置PWM周期设置前沿在周期的1/5处设置后沿在周期的2/5处使能PWM匹配锁存使能PWM,启动定时器系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8. GPIOLPC2000系列ARM硬件结构9. 向量中断控制器10.外部中断输入11.定时器0和定时器112. SPI接口13. I2C接口14. UART(0、1)15. A/D转换器16. 看门狗17. 脉宽调制器(PWM)18. 实时时钟4.18 实时时钟n
88、特性 LPC2000系列微控制器内部集成了一个功能完整的实时时钟模块,它具有如下特性: 带有日历和时钟功能; 超低功耗设计; 提供秒、分、小时、日、月、年和星期; 可编程基准时钟分频器允许调节RTC以适应不同的晶振频率。4.18 实时时钟n描述 实时时钟(RTC)提供一套计数器在系统工作时对时间进行测量。RTC消耗的功率非常低,这使其适合于由电池供电的,CPU不连续工作(空闲模式)的系统。 注意:LPC22xx、LPC211x系列微控制器的RTC没有独立的时钟源,它使用的时钟频率是通过对Fpclk分频得到,所以CPU不能进入掉电模式。增量中断报警中断中断位置寄存器(ILR)预分频器PREINT
89、PREFRAC时钟节拍计数器CTCPCLK使能0x00时钟控制寄存器(CCR)复位报警寄存器组报警屏蔽寄存器(AMR)秒报警值(ALSEC)分报警值(ALMIN)小时报警值(ALHOUR)日期(月)报警值(ALDOM)星期报警值(ALDOW)日期(年)报警值(ALDOY)月报警值(ALMON)年报警值(ALYEAR)时间计数器组秒值(SEC)分值(MIN)小时值(HOUR)日期(月)值(DOM)星期值(DOW)日期(年)值(DOY)月值(MON)年值(YEAR)完整时间寄存器02CTIME0CTIME2比较器计数器增量中断使能寄存器(CIIR)n实时时钟结构图时钟发生器预分频器时间计数器报警控
90、制=时钟控制增量中断控制中断标志报警寄存器PCLKn寄存器描述时钟发生器预分频器时间计数器报警控制=时钟控制增量中断控制中断标志报警寄存器PCLK时间计数器时钟发生器预分频器时钟控制报警控制增量中断控制中断标志报警寄存器 所有寄存器大致可以分为三类: 时钟产生寄存器; 时间寄存器组; 中断产生控制;n寄存器描述时钟产生寄存器组时间计数器=时钟发生器预分频器时钟控制报警控制增量中断控制中断标志报警寄存器PCLK 时钟产生寄存器组控制产生RTC时间计数器需要的秒时钟信号。名称有效位描述访问PREINT13预分频值,整数部分读写PREFRAC15预分频值,小数部分读写CCR4时钟控制寄存器读写CTC
91、15时钟节拍计数器只读 预分频器用于将任何频率高于的PCLK时钟分频产生的基准时钟。这样就可以不管外设时钟的频率为多少,RTC总是以正确的速率运行。 预分频寄存器分为整数部分和小数部分,因此有可能某个时钟节拍多包含一个PCLK周期,而某个节拍却少一个PCLK周期。但是每个时钟节拍的周期一定是32768个PCLK周期。n寄存器描述预分频寄存器名称有效位描述访问PREINT13预分频值,整数部分读写PREFRAC15预分频值,小数部分读写CCR4时钟控制寄存器读写CTC15时钟节拍计数器只读名称有效位描述访问PREINT13预分频值,整数部分读写PREFRAC15预分频值,小数部分读写CCR4时钟
92、控制寄存器读写CTC15时钟节拍计数器只读PREINT13预分频值,整数部分读写PREFRAC15预分频值,小数部分读写n寄存器描述预分频寄存器 预分频整数部分为13位有效位,小数部分为15位有效位。 预分频整数部分的计算公式为:PREINT = int(PCLK / 32768) 1 预分频小数部分的计算公式为:PREFRAC = PCLK (PREINT + 1) 32768)名称有效位描述访问PREINT13预分频值,整数部分读写PREFRAC15预分频值,小数部分读写CCR4时钟控制寄存器读写CTC15时钟节拍计数器只读PREINT13预分频值,整数部分读写PREFRAC15预分频值,
93、小数部分读写n寄存器描述时钟控制寄存器 时钟控制寄存器包含4位有效位,用来对时钟分频电路进行控制,包括启动RTC和复位时钟节拍计数器(CTC)等功能。位功能描述0CLKEN时钟使能。当该位为1时,时间计数器使能。为0时,时间计数器被禁止,这时可对其初始化。1CTCRSTCTC复位。为1时,时钟节拍计数器复位。在CCR的bit1变为0之前,它将一直保持复位状态。3 : 2CTTEST测试使能。在正常操作中,这些位应当全为0。预分频器PREINTPREFRAC时钟节拍计数器CTCPCLK使能0x00时钟控制寄存器(CCR)复位n寄存器描述时钟节拍计数寄存器 时钟节拍计数器对预分频器的输出时钟进行计
94、数,用于产生秒的时钟节拍。它是一个只读寄存器,但它可通过时钟控制寄存器(CCR)复位为0。位功能描述0保留用户程序不要向该位写入115 : 1时钟节拍计数器对预分频器的时钟输出进行计数,每计满32768个时钟,该寄存器复位,并向时间计数器发送一个秒脉冲预分频器PREINTPREFRAC时钟节拍计数器CTCPCLK使能0x00时钟控制寄存器(CCR)复位n寄存器描述时间计数器时间计数器=时钟发生器预分频器时钟控制报警控制增量中断控制中断标志报警寄存器PCLK 时间计数器组中包含当前的时间,它们分为两类:完整时间寄存器和分类时间寄存器。时间计数器=时钟发生器预分频器时钟控制报警控制增量中断控制中断
95、标志报警寄存器PCLK名称有效位描述CTIME032包含秒、分、时和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年) 在完整时间寄存器中,时间以一个比较完整的格式存储,程序只需要3次读操作即可读出所有计数器值。这些寄存器为只读寄存器。n寄存器描述时间计数器名称有效位描述CTIME032包含秒、分、时和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年)名称有效位描述CTIME032包含秒、分、时和星期。CTIME132包含日期(月)、月和年CTIME232包含日期(年)(059)(059)(023)(06)取值范围秒保留分保留小时保留星期保留功能
96、5:07:613:815:1430:1623:2126:2431:27CTIME0(128,29,30)(112)(04095)取值范围日期(月)保留月保留年保留功能4:07:511:815:1227:1631:28CTIME1(1365,366)取值范围日期(年)保留功能8:031:9CTIME2这两个寄存器意义不同,(月)表示当日在当月中的序号,(年)表示当日在当年中的序号n寄存器描述时间计数器 分类时间寄存器包含8个寄存器,所有寄存器都可读可写。名称有效位描述SEC6秒值。该值的范围为059。MIN6分值。该值的范围为059。HOUR5小时值。该值的范围为023。DOM5日期(月)值。该
97、值的范围为128,29,30或31(取决于月份以及是否为闰年)。DOW3星期值。该值的范围为1365(闰年为366)。DOY9日期(年)值。该值的范围为1365。MONTH4月值。该值的范围为112。YEAR12年值。该值的范围为04095。名称有效位描述SEC6秒值。该值的范围为059。MIN6分值。该值的范围为059。HOUR5小时值。该值的范围为023。DOM5日期(月)值。该值的范围为128,29,30或31(取决于月份以及是否为闰年)。DOW3星期值。该值的范围为1365(闰年为366)。DOY9日期(年)值。该值的范围为1365。MONTH4月值。该值的范围为112。YEAR12年
98、值。该值的范围为04095。注意:这些日期的寄存器只能在适当的时间间隔处递增,而在定义的溢出点处复位。为了使这些值有意义,它们不能进行计算且必须正确初始化。 其中DOY寄存器需要单独初始化,也就是说该寄存器的值不会因为对年、月、日寄存器进行初始化而自动确定到一个正确 的值。n寄存器描述时间计数器时间计数器=时钟发生器预分频器时钟控制报警控制增量中断控制中断标志报警寄存器PCLK RTC部件的中断分为两类,一类为时间计数器的增量中断,由增量中断寄存器控制。另一类为报警匹配产生的中断,由报警屏蔽寄存器控制。名称描述访问ILR中断位置寄存器读写CIIR递增中断寄存器读写AMR报警屏蔽寄存器读写报警寄
99、存器组设定报警时间读写n寄存器描述中断产生寄存器增量中断报警中断中断位置寄存器(ILR)报警寄存器组报警屏蔽寄存器(AMR)秒报警值(ALSEC)分报警值(ALMIN)小时报警值(ALHOUR)日期(月)报警值(ALDOM)星期报警值(ALDOW)日期(年)报警值(ALDOY)月报警值(ALMON)年报警值(ALYEAR)时间计数器组秒值(SEC)分值(MIN)小时值(HOUR)日期(月)值(DOM)星期值(DOW)日期(年)值(DOY)月值(MON)年值(YEAR)完整时间寄存器02CTIME0CTIME2比较器计数器增量中断使能寄存器(CIIR)n实时时钟中断示意图位功能描述0RTCCIF
100、为1时,表示计数器增量中断模块产生了中断。向该位写入1清除该中断标志。1RTCALF为1时,表示报警寄存器产生了中断。向该位写入1清除该中断标志位。 中断位置寄存器是一个2位的寄存器,它指出哪些模块产生中断,它实际上是一个中断标志寄存器。增量中断报警中断中断位置寄存器(ILR)比较器计数器增量中断使能寄存器(CIIR)报警寄存器组当前时间计数器组n寄存器描述中断标志寄存器 增量中断寄存器可使计数器每次增加时产生一次中断,比如设置秒增加中断为1,则每秒均产生一次中断。在清除增量中断标志之前,该中断一直保持有效。增量中断报警中断中断位置寄存器(ILR)比较器计数器增量中断使能寄存器(CIIR)报警
101、寄存器组当前时间计数器组CIIR功能描述0IMSEC为1时,秒值的增加产生一次中断。1IMMIN为1时,分值的增加产生一次中断。2IMHOUR为1时,小时值的增加产生一次中断。3IMDOM为1时,日期(月)的增加产生一次中断。4IMDOW为1时,星期值的增加产生一次中断。5IMDOY为1时,日期(年)的增加产生一次中断。6IMMON为1时,月值的增加产生一次中断。7IMYEAR为1时,年值的增加产生一次中断。n寄存器描述增量中断使能寄存器 报警屏蔽寄存器允许用户屏蔽任意的报警寄存器,被屏蔽的报警寄存器将不与时间计数器比较。 未被屏蔽的报警寄存器与时间计数器比较如果匹配,将产生中断。该中断只有在
102、从不匹配到匹配时才发生,可以避免中断重复。注意:如果所有屏蔽位都置位,报警将被禁止。增量中断报警中断中断位置寄存器(ILR)比较器计数器增量中断使能寄存器(CIIR)报警寄存器组当前时间计数器组n寄存器描述报警屏蔽寄存器AMR功能描述0AMRSEC为1时,秒值不与报警寄存器比较。1AMRMIN为1时,分值不与报警寄存器比较。2AMRHOUR为1时,小时值不与报警寄存器比较。3AMRDOM为1时,日期(月)值不与报警寄存器比较。4AMRDOW为1时,星期值不与报警寄存器比较。5AMRDOY为1时,日期(年)值不与报警寄存器比较。6AMRMON为1时,月值不与报警寄存器比较。7AMRYEAR为1时
103、,年值不与报警寄存器比较。n寄存器描述报警屏蔽寄存器 报警寄存器的值与时间计数器相比较,如果所有未被屏蔽的报警寄存器都与它们对应的时间计数器相匹配,那么将产生一次中断。向中断位置寄存器的bit1写入1清除中断。增量中断报警中断中断位置寄存器(ILR)比较器计数器增量中断使能寄存器(CIIR)报警寄存器组当前时间计数器组寄存器描述报警屏蔽寄存器名称描述访问ALSEC秒报警值读写ALMIN分报警值读写ALHOUR小时报警值读写ALDOM日期(月)报警值读写ALDOW星期报警值读写ALDOY日期(年)报警值读写ALMON月报警值读写ALYEAR年报警值读写n寄存器描述报警寄存器组n概述RTC中断 L
104、PC2000系列ARM RTC具有两种类型的中断:增量中断 用户可以通过读取中断位置寄存器(ILR)来区分中断类型。报警中断nRTC中断与VIC的关系RTC中断向量IRQ通道0向量IRQ通道15非向量IRQ通道通道13RTCVICIntSelect13VICIntEnable13IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 RTC处于VIC的通道13,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。nRTC中断与VIC的关系RTC中断向量IRQ通道0向量IRQ通道1
105、5非向量IRQ通道通道13RTCVICIntSelect13VICIntEnable13IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 RTC处于VIC的通道13,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable13 = 0时,通道13中断禁止;向量IRQ通道0向量IRQ通道15非向量IRQ通道通道13RTCVICIntSelect13VICIntEnable13IRQFIQVICVectAddr0VICVectCntl0VICVectAdd
106、r15VICVectCntl15VICDefVectAddrIRQ通道分配nRTC中断与VIC的关系 RTC处于VIC的通道13,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICIntEnable13 = 0时,通道13中断禁止;RTC中断当VICIntEnable13 = 1时,通道13中断使能;RTC中断n增量中断CIIR0秒值增加CIIR1CIIR2CIIR3中断位置寄存器(ILR)分值增加小时值增加日期(月)值增加CIIR4RTCCIF星期值增加+当秒、分、小时等增加时,触发增量中断。计数器增量中断寄存器CIIR0:7分别用来控制增量中断的使能。 RTC中断
107、n报警中断RTC的当前时间与报警时间进行比较,当相等时,便触发报警中断。 报警屏蔽寄存器用来屏蔽相关的报警时间。 秒报警值(ALSEC)AMR 0 当前秒值(SEC)比较器分报警值(ALMIN)AMR 1 当前分值(MIN)比较器年报警值(ALYEAR)AMR 7 当前年值(YEAR)比较器中断位置寄存器(ILR)RTCALF&4.18 实时时钟n使用RTC的注意要点 RTC部件使用VPB时钟,如果该时钟出现任何的异常都会导致时间值的偏移,所以芯片不能进入掉电模式; 芯片掉电后RTC不能保持寄存器的内容; 芯片复位后只有预分频寄存器被硬件初始化,其它寄存器的内容不受复位影响; RTC部件的闰年
108、计算比较简单,当年计数器的最低两位为0时,认为该年为闰年,这在2100年时会出错。闰年影响2月份的日期数和年的日期数。nRTC使用示例设置RTC基准时钟分频器初始化RTC时钟值报警中断设置启动RTC读取当前时间或等待中断操作流程Void RTCIni(void) PREINT = Fpclk/327681; PREFRAC = Fpclk(Fpclk/32768)*32768; YEAR = 200; MONTH = 2; DOM = 19; DOW = 4; HOUR = 8; MIN = 30; SEC = 0; CIIR = 0x01; CCR = 0x01;nRTC使用示例RTC初始化示例设置预分频寄存器设置年设置月设置日(月)设置星期设置小时设置分设置秒设置增量中断启动RTC.ILR = 0x03; / 清除RTC中断标志CIIR = 0x02; / 设置分值增量中断ALHOUR = 12; / 设置小时比较值ALMIN = 0; / 设置分比较值ALSEC = 0; / 设置秒比价值AMR = 0xF8; / 设置报警屏蔽寄存器 / 只允许时、分、秒比较.nRTC使用示例RTC定时报警设置