[ZLG-ARM] RTC定时中断问题

[复制链接]
3245|4
 楼主| clever0725 发表于 2008-11-8 15:13 | 显示全部楼层 |阅读模式
目的是&nbsp;每秒种&nbsp;向串口发送实时时钟&nbsp;<br />每天定时&nbsp;15点01分&nbsp;向串口发送&nbsp;This&nbsp;a&nbsp;test!!!<br />问题&nbsp;每秒发送没问题<br />定时发送This&nbsp;a&nbsp;test!!!&nbsp;时间到了没反应&nbsp;<br />请教哪里设置错误或什么的?<br /><br />/****************************************************************************<br />*&nbsp;文件名:SENDRTC.C<br />*&nbsp;功能:运行RTC进行计时,将所时间值不断的通过串口向上位机发送<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示。<br />*&nbsp;说明:将跳线器JP8短接。<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通讯波特率115200,8位数据位,1位停止位,无奇偶校验。<br />****************************************************************************/<br />#include&nbsp;&nbsp;&quot;config.h&quot;&nbsp;&nbsp;<br /><br /><br /><br />/*&nbsp;定义串口模式设置数据结构&nbsp;*/<br />typedef&nbsp;&nbsp;struct&nbsp;&nbsp;UartMode<br />{&nbsp;&nbsp;uint8&nbsp;datab;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;字长度,5/6/7/8<br />&nbsp;&nbsp;&nbsp;uint8&nbsp;stopb;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;停止位,1/2<br />&nbsp;&nbsp;&nbsp;uint8&nbsp;parity;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;奇偶校验位,0为无校验,1奇数校验,2为偶数校验<br />}&nbsp;&nbsp;UARTMODE;<br /><br /><br />uint8&nbsp;send_buf[16];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UART0数据接收缓冲区<br /><br /><br />/****************************************************************************<br />*&nbsp;名称:UART0_Ini()<br />*&nbsp;功能:初始化串口0。设置其工作模式及波特率。<br />*&nbsp;入口参数:baud&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;波特率<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模式设置(UARTMODE数据结构)<br />*&nbsp;出口参数:返回值为1时表示初化成功,为0表除参数出错<br />****************************************************************************/<br />uint8&nbsp;&nbsp;UART0_Ini(uint32&nbsp;baud,&nbsp;UARTMODE&nbsp;set)<br />{&nbsp;&nbsp;uint32&nbsp;&nbsp;bak;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*&nbsp;参数过滤&nbsp;*/<br />&nbsp;&nbsp;&nbsp;if(&nbsp;(0==baud)||(baud&gt115200)&nbsp;)&nbsp;return(0);<br />&nbsp;&nbsp;&nbsp;if(&nbsp;(set.datab&lt5)||(set.datab&gt8)&nbsp;)&nbsp;return(0);<br />&nbsp;&nbsp;&nbsp;if(&nbsp;(0==set.stopb)||(set.stopb&gt2)&nbsp;)&nbsp;return(0);<br />&nbsp;&nbsp;&nbsp;if(&nbsp;set.parity&gt4&nbsp;)&nbsp;return(0);<br /><br />&nbsp;&nbsp;&nbsp;/*&nbsp;设置串口波特率&nbsp;*/<br />&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;0x80;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DLAB位置1<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;(Fpclk&gt&gt4)/baud;<br />&nbsp;&nbsp;&nbsp;U0DLM&nbsp;=&nbsp;bak&gt&gt8;<br />&nbsp;&nbsp;&nbsp;U0DLL&nbsp;=&nbsp;bak&0xff;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*&nbsp;设置串口模式&nbsp;*/<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;set.datab-5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置字长度<br />&nbsp;&nbsp;&nbsp;if(2==set.stopb)&nbsp;bak&nbsp;|=&nbsp;0x04;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;判断是否为2位停止位&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;if(0!=set.parity)&nbsp;{set.parity&nbsp;=&nbsp;set.parity-1;&nbsp;bak&nbsp;|=&nbsp;0x08;}<br />&nbsp;&nbsp;&nbsp;bak&nbsp;|=&nbsp;set.parity&lt&lt4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置奇偶校验<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;bak;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;return(1);<br />}<br /><br />/****************************************************************************<br />*&nbsp;名称:SendByte()<br />*&nbsp;功能:向串口UART0发送字节数据,并等待发送完毕。<br />*&nbsp;入口参数:data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要发送的数据<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;SendByte(uint8&nbsp;data)<br />{&nbsp;&nbsp;U0THR&nbsp;=&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br /><br />&nbsp;&nbsp;&nbsp;while(&nbsp;(U0LSR&0x20)==0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待数据发送<br />}<br />//--------------------------------------------------------<br />void&nbsp;SendStr(char&nbsp;*str)<br />{<br />while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(*str&nbsp;==&nbsp;'\0')&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendByte(*str++);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />/****************************************************************************<br />*&nbsp;名称:ISendBuf()<br />*&nbsp;功能:将缓冲区的数据发送回主机。<br />*&nbsp;入口参数:buf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据缓冲区<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送数据的个数<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;ISendBuf(uint8&nbsp;const&nbsp;*buf,&nbsp;uint8&nbsp;no)<br />{&nbsp;&nbsp;uint8&nbsp;&nbsp;i;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&ltno;&nbsp;i++)&nbsp;SendByte(buf);<br />}&nbsp;<br /><br /><br /><br />/****************************************************************************<br />*&nbsp;名称:SendTimeRtc()<br />*&nbsp;功能:读取RTC的时间值,并将读出的时分秒值由串口发送到上位机显示。<br />*&nbsp;入口参数:无<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;SendTimeRtc(void)<br />{&nbsp;&nbsp;uint8&nbsp;&nbsp;const&nbsp;&nbsp;MESSAGE[]=&nbsp;&quot;RTC&nbsp;Time&nbsp;is&nbsp;:&nbsp;&quot;;<br />&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;times;<br />&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;bak;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;times&nbsp;=&nbsp;CTIME0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读取完整时钟寄存器0<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;(times&gt&gt16)&0x1F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得时的值<br />&nbsp;&nbsp;&nbsp;send_buf[0]&nbsp;=&nbsp;bak/10+'0';<br />&nbsp;&nbsp;&nbsp;send_buf[1]&nbsp;=&nbsp;bak%10+'0';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;send_buf[2]&nbsp;=&nbsp;':';<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;(times&gt&gt8)&0x3F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得分的值<br />&nbsp;&nbsp;&nbsp;send_buf[3]&nbsp;=&nbsp;bak/10+'0';<br />&nbsp;&nbsp;&nbsp;send_buf[4]&nbsp;=&nbsp;bak%10+'0';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;send_buf[5]&nbsp;=&nbsp;':';<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;times&0x3F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得秒的值<br />&nbsp;&nbsp;&nbsp;send_buf[6]&nbsp;=&nbsp;bak/10+'0';<br />&nbsp;&nbsp;&nbsp;send_buf[7]&nbsp;=&nbsp;bak%10+'0';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;send_buf[8]&nbsp;=&nbsp;'\n';<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;ISendBuf(MESSAGE,&nbsp;14);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br />&nbsp;&nbsp;&nbsp;ISendBuf(send_buf,&nbsp;9);<br />}<br /><br /><br /><br />/****************************************************************************<br />*&nbsp;名称:RTCIni()<br />*&nbsp;功能:初始化实时时钟。<br />*&nbsp;入口参数:buf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据缓冲区<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送数据的个数<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;RTCIni(void)<br />{&nbsp;&nbsp;PREINT&nbsp;=&nbsp;Fpclk&nbsp;/&nbsp;32768&nbsp;-&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置基准时钟分频器<br />&nbsp;&nbsp;&nbsp;PREFRAC&nbsp;=&nbsp;Fpclk&nbsp;-&nbsp;(Fpclk&nbsp;/&nbsp;32768)&nbsp;*&nbsp;32768;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;YEAR&nbsp;=&nbsp;2008;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初化年<br />&nbsp;&nbsp;&nbsp;MONTH&nbsp;=&nbsp;11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初化月<br />&nbsp;&nbsp;&nbsp;DOM&nbsp;=&nbsp;8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初化日<br />&nbsp;&nbsp;&nbsp;HOUR&nbsp;=&nbsp;15;<br />&nbsp;&nbsp;&nbsp;MIN&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;SEC&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;ALHOUR&nbsp;=&nbsp;15;<br />&nbsp;&nbsp;&nbsp;ALMIN&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;ALSEC&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;CIIR&nbsp;=&nbsp;0x01;&nbsp;<br />&nbsp;&nbsp;&nbsp;ILR&nbsp;=&nbsp;0x03;<br />&nbsp;&nbsp;&nbsp;AMR&nbsp;=&nbsp;0xF8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;CCR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;启动RTC<br />}<br /><br />void&nbsp;__irq&nbsp;&nbsp;IRQ_RTC()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendTimeRtc();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读取时钟值,并向UART0发送<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILR&nbsp;|=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除RTC增量中断标志<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}<br /><br />void&nbsp;__irq&nbsp;&nbsp;IRQ_ALM()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendStr(&quot;This&nbsp;a&nbsp;test&nbsp;!!!&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILR&nbsp;|=&nbsp;0x10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}<br />/****************************************************************************<br />*&nbsp;名称:main()<br />*&nbsp;功能:读取实时时钟的值,并从串口发送出去,并把秒的值输出LED1--LED8显示。<br />****************************************************************************/<br />int&nbsp;&nbsp;main(void)<br />{&nbsp;&nbsp;UARTMODE&nbsp;&nbsp;uart0_set;<br /><br />&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00000005;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置I/O连接到UART0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;PINSEL1&nbsp;=&nbsp;0x00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;IO0DIR&nbsp;=&nbsp;SPI_IOCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置LED1控制口为输出,其它IO为输入<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;uart0_set.datab&nbsp;=&nbsp;8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;8位数据位<br />&nbsp;&nbsp;&nbsp;uart0_set.stopb&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1位停止位<br />&nbsp;&nbsp;&nbsp;uart0_set.parity&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;无奇偶校验<br />&nbsp;&nbsp;&nbsp;UART0_Ini(115200,&nbsp;uart0_set);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;初始化串口模式<br />&nbsp;&nbsp;&nbsp;U0FCR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能FIFO<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;RTCIni();<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*&nbsp;VIC初始化&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置所有中断连接IRQ中断<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl0&nbsp;=&nbsp;0x20&nbsp;|&nbsp;13;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;分配通道0<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr0&nbsp;=&nbsp;(int)IRQ_RTC;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr1&nbsp;=&nbsp;(int)IRQ_ALM;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;13);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能RTC中断&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1);<br />&nbsp;&nbsp;&nbsp;return(0);<br />}
 楼主| clever0725 发表于 2008-11-9 09:48 | 显示全部楼层

谁帮我?

怎么没人回答啊&nbsp;?<br />
ZLG_Dengz 发表于 2008-11-10 08:48 | 显示全部楼层

先自救吧...

串口初始化完了,先通过串口发送一些信息到PC上,看看你的串口是否正常.<br />另外也可以给RTC设置一个离当前时间不远的一个报警时间.看看时钟是否正常、能否正常报警、能否进中断.<br />你使用了VICVectAddr1&nbsp;=&nbsp;(int)IRQ_ALM;,但VICVectCntl1怎么没设置?<br />
 楼主| clever0725 发表于 2008-11-10 12:23 | 显示全部楼层

关于设置的问题

串口正常,每秒发送一次到终端的,秒中断正常<br />设置时间是15点,时中断是15:01分<br /><br />VICVectAddr1&nbsp;=&nbsp;(int)IRQ_ALM;<br />void&nbsp;__irq&nbsp;&nbsp;IRQ_ALM()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendStr(&quot;This&nbsp;a&nbsp;test&nbsp;!!!&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILR&nbsp;|=&nbsp;0x10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}<br />请问应该怎么设置&nbsp;哪里设置?新手问题总是很菜鸟!!
 楼主| clever0725 发表于 2008-11-12 08:50 | 显示全部楼层

问题尚未解决 请教大家

如题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部