首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

rtc终端进入之后不能出来,该怎么处理

2012-03-12 
rtc终端进入之后不能出来PREINT Fpclk/32768 -1PREFRAC Fpclk - (Fpclk/32768)*32768ILR 0x03CCR

rtc终端进入之后不能出来

  PREINT = Fpclk/32768 -1;
  PREFRAC = Fpclk - (Fpclk/32768)*32768;
  ILR = 0x03;
  CCR = 0x11;
  CIIR = 0x02; // 设置秒值的增量产生一次中断
  // 清除RTC增量和报警中断标志
   
   
  VICIntSelect = 0x00;
  VICVectCntl0 = 0x20|13;
  VICVectAddr0 = (uint32)RTC_Count;
  VICIntEnable = (1<<13);

void RTC_Count(void)
{

OffMinute++;
if(OffMinute==1) //can change to wahtever number you want
{
Power_Off();
OffMinute=0;
}
}
上面是RTC的代码,自己调试后发现RTC不能跳出终端,很崩溃啊~调试发现每次到最后就跳到startup.s里面的代码去了,然后又调回终端。这是怎么回事呢?
跳到这里了:
;The emported labels  
;给外部使用的标号在这声明
EXPORT bottom_of_heap
  EXPORT bottom_of_Stacks
  EXPORT top_of_heap
  EXPORT StackUsr
   
  EXPORT Reset
  EXPORT __user_initial_stackheap

  CODE32

  AREA vectors,CODE,READONLY
  ENTRY
;interrupt vectors
;中断向量表
Reset
  LDR PC, ResetAddr
  LDR PC, UndefinedAddr
  LDR PC, SWI_Addr
  LDR PC, PrefetchAddr
  LDR PC, DataAbortAddr
  DCD 0xb9205f80
  LDR PC, [PC, #-0xff0]
  LDR PC, FIQ_Addr

[解决办法]
RTC很难调试,因为你调试的时候中断又发生,又会进入中断处理程序.
比较好的方法是,一点点增加中断处理程序,一开始进去就返回,然后看看是不是正常.然后慢慢往里加指令.如果最初的都不行,那说明你中断初始化或者rtc初始化就有问题.

热点排行