[技术问答] 请教一个关于NUC120实时时钟RTC中断的问题

[复制链接]
3598|23
 楼主| lussby 发表于 2014-2-24 16:51 | 显示全部楼层 |阅读模式
我的硬件是外部接了12M晶振,以及RTC时钟的两个引脚接了32.768K的晶振,用官网的RTC例程测试,时钟和中断都可以。我用了之前新唐供应商给的库程序,时钟显示跟实际时间比较,显示正常。但是要进入RTC中断(中断函数里面用了点亮一个灯和串口打印字符"OK"没反应)进入不了。在这求大神指点一下,看我是那里出错了,在此先谢谢每一位帮忙和提供意见的朋友。另外说明一下下面的程序,int32_t RTC_EnableInt()这个函数是我参考官网的例程添加进去的,RTC中断我是放在TimeProcess.c文件里面的,我上传一下我的程序,以下是我测试的程序和截图: 程序TEST.rar (262.75 KB, 下载次数: 15)   

只正确显示时间,无法显示放在RTC中断里面的打印字符“OK!”

只正确显示时间,无法显示放在RTC中断里面的打印字符“OK!”




 楼主| lussby 发表于 2014-2-25 11:28 | 显示全部楼层
终于把问题解决了,我上面的程序参考官网例程在int32_t RTC_EnableInt()函数中的设置没有问题。但是在TimeProcess.c里面的程序因为我用的不是跟官网同一个库,虽然编译通过了,但实际上中断函数入口是有问题的,经过昨天一天的研究,最后把Drv_RTC里面的中断函数进行修改后,发现1/128s. 1/64s,1/32s,1/16s,1/8s,1s等的中断都可以了。把TimeProcess.c里面的中断函数改为
void RTC_IRQHandler(void)
{
   
        if (RTC->RIIR.TI ==0x1)                         /* tick interrupt occurred */
        {
                   RTC->RIIR.TI = 1;
                  
                  g_u32RTC_Count++;                                            /* maintain RTC tick count */

                  printf ("\nOK!\n");

          if (g_pfnRTCCallBack_Tick != NULL)                           /* execute tick callback function */
          {
              g_pfnRTCCallBack_Tick();
          }

    }

}就可以了。另外也顺便测试了闹钟中断也是可以的。

我设置时钟1S中断一次打印OK!时钟显示和打印结果正确

我设置时钟1S中断一次打印OK!时钟显示和打印结果正确

评分

参与人数 1威望 +2 收起 理由
xyz549040622 + 2

查看全部评分

从小木丁丁 发表于 2014-2-25 12:22 来自手机 | 显示全部楼层
例程跟库对应好了
niuyaliang 发表于 2014-2-25 22:46 | 显示全部楼层
lussby 发表于 2014-2-25 11:28
终于把问题解决了,我上面的程序参考官网例程在int32_t RTC_EnableInt()函数中的设置没有问题。但是在TimeP ...

楼主发现了没,我们以为的好多问题,其实都不在贴出的代码里面,很多错误都是想都没想到的
niuyaliang 发表于 2014-2-25 22:47 | 显示全部楼层
楼主正在搞120了,SPI调试过没呀,求经验
 楼主| lussby 发表于 2014-2-26 10:58 | 显示全部楼层
niuyaliang 发表于 2014-2-25 22:47
楼主正在搞120了,SPI调试过没呀,求经验

恩,SPI我有用过,不过我是用模拟的方式写的。
 楼主| lussby 发表于 2014-2-26 11:01 | 显示全部楼层
从小木丁丁 发表于 2014-2-25 12:22
例程跟库对应好了

恩,我这很蛋疼的。因为之前公司有些功能没调出来,然后就让供应商帮我们调,后面的同事写程序都用供应商的程序去写,可是官网的库却在不断更新。现在要放弃供应商的程序也不是,用官网的也不是。经常给这问题纠结到,官网的调通了,还得再调我们自己库的程序。:'(
骗子的片子 发表于 2014-2-26 16:02 来自手机 | 显示全部楼层
lussby 发表于 2014-2-26 11:01
恩,我这很蛋疼的。因为之前公司有些功能没调出来,然后就让供应商帮我们调,后面的同事写程序都用供应商 ...

楼主看起来你们好辛苦啊,慢慢调吧
 楼主| lussby 发表于 2014-2-26 20:10 | 显示全部楼层
骗子的片子 发表于 2014-2-26 16:02
楼主看起来你们好辛苦啊,慢慢调吧

恩,也不辛苦啦。我们做的东西有很多现成的,用的功能都是大概那些,碰到我以上说的情况很少的。很多时候都是拿以前调试通过的驱动程序直接应用就行了。:lol
骗子的片子 发表于 2014-2-27 09:41 来自手机 | 显示全部楼层
lussby 发表于 2014-2-26 20:10
恩,也不辛苦啦。我们做的东西有很多现成的,用的功能都是大概那些,碰到我以上说的情况很少的。很多时候 ...

嗯,二次开发?
 楼主| lussby 发表于 2014-2-27 14:38 | 显示全部楼层
骗子的片子 发表于 2014-2-27 09:41
嗯,二次开发?

不是的,我指的是单片机的外设程序很多时候调过了,以后要用直接拿过来用就行了。
骗子的片子 发表于 2014-2-27 21:36 来自手机 | 显示全部楼层
lussby 发表于 2014-2-27 14:38
不是的,我指的是单片机的外设程序很多时候调过了,以后要用直接拿过来用就行了。 ...

跟二次开发差不多,只是拿自己的东西二次开发,厉害
骗子的片子 发表于 2014-2-27 21:47 来自手机 | 显示全部楼层
顶一下楼主,有空好好交流
骗子的片子 发表于 2014-2-27 21:48 来自手机 | 显示全部楼层
顶一下楼主,有时间好好交流
 楼主| lussby 发表于 2014-2-28 10:33 | 显示全部楼层
骗子的片子 发表于 2014-2-27 21:48
顶一下楼主,有时间好好交流

恩恩,有空多多交流。:handshake
 楼主| lussby 发表于 2014-2-28 10:34 | 显示全部楼层
lussby 发表于 2014-2-28 10:33
恩恩,有空多多交流。

刚加你好友了。:)
从小木丁丁 发表于 2014-3-8 18:39 | 显示全部楼层
lussby 发表于 2014-2-26 11:01
恩,我这很蛋疼的。因为之前公司有些功能没调出来,然后就让供应商帮我们调,后面的同事写程序都用供应商 ...

慢慢来吧,要不重新来一遍?
 楼主| lussby 发表于 2014-3-10 11:05 | 显示全部楼层
从小木丁丁 发表于 2014-3-8 18:39
慢慢来吧,要不重新来一遍?

不重来了。重来更麻烦,还得重新写USB的库、
从小木丁丁 发表于 2014-3-11 12:51 | 显示全部楼层
lussby 发表于 2014-3-10 11:05
不重来了。重来更麻烦,还得重新写USB的库、

那就慢慢来吧:lol
骗子的片子 发表于 2014-3-24 19:23 | 显示全部楼层
lussby 发表于 2014-2-28 10:34
刚加你好友了。

受到了,马上同意,我好久不上网了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

144

帖子

1

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