5481|6

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STR710的警报中断标志一直为1?! [复制链接]

                                 开放RTC的通用中断和秒中断后,可以正常产生中断,但是一旦使能警报中断,这里警报中断时间比秒中断时间长的多,但是秒中断来的时候,警报中断标志也产生了,这是何故?请高手指点?
此帖出自stm32/stm8论坛

最新回复

                                 很好的参考。多谢ST_ARM!!!   详情 回复 发表于 2007-1-28 23:18
点赞 关注
 

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

能否将你的初始化代码贴出来。

                                  
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

源代码

 RTC_PrescalerConfig(0x8000);  //RTC has its own clock of 32k Hz
   EIC_IRQChannelConfig(RTC_IRQChannel, ENABLE);
   EIC_IRQChannelPriorityConfig(RTC_IRQChannel,1);
   EIC_IRQConfig(ENABLE); 
   RTC_ITConfig(RTC_GIT|RTC_AIT|RTC_SIT, ENABLE);
   RTC_ClearCounter(); 
   RTC_AlarmConfig(RTC_CounterValue()+10);
   while(1);
初始化,如上,每次秒中断来的时候,报警中断也会来,即报警中断标志也会被置位,请ST_ARM 给予指点?
此帖出自stm32/stm8论坛
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 

关于每次秒中断来时,报警中断也会来的问题

                                 实际程序烧写到芯片内部运行时,不会发生这种现象,这是因为仿真停顿造成的时间缘故,如果你将报警时间从10变成100,或更大,就没有了。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 

烧写到内部flash问题还是存在?

                                 把程序烧写到内部flash问题还是存在,代码就是如上,在rtc中断里秒中断来时候,报警中断还是跟秒中断一起来,特郁闷!请ST_ARM 帮忙分析下?
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 

这是我使用的代码

main.c文件:

#include "71x_lib.h"

/* Define the RTC prescaler 0x8000 to have 1 second basic clock */
#define RTC_Prescaler 32768 

int main (void)
{
    RTC_ITConfig(RTC_GIT | RTC_SIT | RTC_AIT, DISABLE );    // Disable Second and Alarm Interrupt

    RTC_FlagClear ( RTC_OWIR );
    RTC_FlagClear ( RTC_AIR );
    RTC_FlagClear ( RTC_SIR );
    RTC_FlagClear ( RTC_GIR );                        // Clear Pending Flags

    RTC_PrescalerConfig ( RTC_Prescaler );            // Configure RTC prescaler
    RTC_CounterConfig (0x00);                        // RTC_ClearCounter();
    RTC_AlarmConfig(RTC_CounterValue() + 20);
    RTC_ITConfig(RTC_GIT | RTC_SIT | RTC_AIT, ENABLE );    // Enable Second and Alarm Interrupt

    EIC_IRQChannelConfig( RTC_IRQChannel, ENABLE );    // Enable RTC IRQ channel
    EIC_IRQChannelPriorityConfig( RTC_IRQChannel, 1);
    EIC_IRQConfig( ENABLE );
    GPIO_Config (GPIO0, 0x2C, GPIO_OUT_PP);            // Configure Port 0 pins
    GPIO0->PD = 0x0000;

    while (1);
}

71x_it.c文件中的
void RTC_IRQHandler(void)
{
#ifdef _RTC
    if ( RTC_FlagStatus ( RTC_SIR ) == SET ) {
        RTC_FlagClear ( RTC_SIR );                        // Clear the SIR & GIR RTC flags
        GPIO_BitWrite(GPIO0, 2, ~GPIO_BitRead(GPIO0, 2));
    }

    if ( RTC_FlagStatus ( RTC_AIR ) == SET ) {
        RTC_FlagClear ( RTC_AIR );                        // Clear the SIR & GIR RTC flags
        RTC_AlarmConfig(RTC_CounterValue() + 20);
        GPIO_BitWrite(GPIO0, 3, ~GPIO_BitRead(GPIO0, 3));
    }

    RTC_FlagClear ( RTC_GIR );
#endif
}

71x_conf.h文件

#define RCCU_Main_Osc 4000000

/* Comment the lines below corresponding to unwanted peripherals */
#define _EIC

#define _GPIO
#define _GPIO0
/* #define _GPIO1 */
/* #define _GPIO2 */

#define _RTC


你可以对照这个代码比较一下,判别你的问题在哪里。
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 

喔,有价值的代码

                                 很好的参考。多谢ST_ARM!!!
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表