OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4465|回复: 4

请问原子哥,你怎么修改RTC显示参数的,利用中断还是什么,你是怎么做到的,能说明一下吗?多谢!

[复制链接]

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2013-4-22 08:30:07 | 显示全部楼层 |阅读模式

int main(void)
 { 
  u8 t=0; 
 u8 Ptimes=0;
 delay_init();       //晊奀滲杅場宎趙  
 NVIC_Configuration();   //扢离NVIC笢剿煦郪2:2弇?梩蚥珂撰ㄛ2弇砒茼蚥珂撰
 uart_init(9600);   //揹諳場宎趙峈9600
  LED_Init();        //LED傷諳場宎趙
 LCD_Init();     
 usmart_dev.init(SystemCoreClock/1000000); //場宎趙USMART 
  OINT_COLOR=RED;//扢离趼极峈綻伎
 LCD_ShowString(60,50,"WarShip STM32"); 
 LCD_ShowString(60,70,"RTC TEST"); 
 LCD_ShowString(60,90,"ATOM@ALIENTEK");
 LCD_ShowString(60,110,"2012/9/7"); 
 while(RTC_Init())  //RTC場宎趙 ㄛ珨隅猁場宎趙傖髡
 {
  LCD_ShowString(60,130,"RTC ERROR!   "); 
  delay_ms(800);
  LCD_ShowString(60,130,"RTC Trying..."); 
 }            
 //珆尨奀潔
 OINT_COLOR=BLUE;//扢离趼极峈懦伎     
 LCD_ShowString(60,130,"    -  -     ");   
 LCD_ShowString(60,162,"  :  :  ");      
 while(1)
 { 
     if(KEY_Scan()==2&KEY_Scan()==1)
  {       
    delay_ms(10);
    if(KEY_Scan()==2&KEY_Scan()==1)
      {
    LED0=!LED0;

   BKP_WriteBackupRegister(BKP_DR1, 0X5f50);
       //RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //妏夔PWR睿BKP俋扢奀笘  
       //PWR_BackupAccessCmd(ENABLE); //妏夔綴掘敵湔?溼恀
      //BKP_DeInit(); //葩弇掘爺?郖
       if(KEY_Scan()==3)
      {
        LED1=!LED1;
       if(Ptimes>5)Ptimes=0;
            while(KEY_Scan()==3);
      Ptimes++;
        }
     
        if(Ptimes==0)
        {
          if(KEY_Scan()==1)calendar.sec++;
          if(KEY_Scan()==2)calendar.sec--;
          }

       if(Ptimes==1)
           {
            if(KEY_Scan()==1)calendar.min++;
            if(KEY_Scan()==2)calendar.min--;
           }

         if(Ptimes==2)
          {
           if(KEY_Scan()==1)calendar.hour++;
           if(KEY_Scan()==2)calendar.hour--;
          }

       if(Ptimes==3)
           {
            if(KEY_Scan()==1)calendar.w_date++;
            if(KEY_Scan()==2)calendar.w_date--;
             }

       if(Ptimes==4)
             {
              if(KEY_Scan()==1)calendar.w_month;
              if(KEY_Scan()==2)calendar.w_month;
             }

     if(Ptimes==5)
             {
              if(KEY_Scan()==1)calendar.w_year++;
              if(KEY_Scan()==2)calendar.w_year--;
             }
          RTC_Init();
      //(void*)RTC_Set,"u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)",
   // RTC_WaitForLastTask();
     //RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);
     //脹渾郔輪珨棒勤RTC敵湔?腔迡紱釬俇傖
  //RTC_Set(2009,12,2,10,0,55);  //扢离奀潔 
    //RTC_ExitConfigMode(); //豖堤饜离耀宒 
    //BKP_WriteBackupRegister(BKP_DR1, 0X5050); //砃硌隅腔綴掘敵湔?笢迡?蚚誧最唗杅擂
    }
   }            
  if(t!=calendar.sec)
  {
   t=calendar.sec;
   LCD_ShowNum(60,130,calendar.w_year,4,16);          
   LCD_ShowNum(100,130,calendar.w_month,2,16);          
   LCD_ShowNum(124,130,calendar.w_date,2,16); 
   switch(calendar.week)
   {
    case 0:
     LCD_ShowString(60,148,"Sunday   ");
     break;
    case 1:
     LCD_ShowString(60,148,"Monday   ");
     break;
    case 2:
     LCD_ShowString(60,148,"Tuesday  ");
     break;
    case 3:
     LCD_ShowString(60,148,"Wednesday");
     break;
    case 4:
     LCD_ShowString(60,148,"Thursday ");
     break;
    case 5:
     LCD_ShowString(60,148,"Friday   ");
     break;
    case 6:
     LCD_ShowString(60,148,"Saturday ");
     break; 
   }
   LCD_ShowNum(60,162,calendar.hour,2,16);          
   LCD_ShowNum(84,162,calendar.min,2,16);          
   LCD_ShowNum(108,162,calendar.sec,2,16);
     } 
  delay_ms(10);         
 }; 
 }


就是不能进入改变模式,检测灯都不亮,求解,我猜是不能进入调试。晕了 !

坚持学习!就能成功!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-22 10:08:12 | 显示全部楼层
回复【楼主位】1501697860:
---------------------------------
我是直接调用rtc_set这个函数的.
没有用按键修改.
另外你的怀疑是不是RTC没起振.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
 楼主| 发表于 2013-4-22 10:30:28 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
多謝!不好意思,我忘了KEYINIT。我在試下!
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
 楼主| 发表于 2013-4-22 10:50:30 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我有个疑问,直接调用rtc_set能修改备份域吗,是怎么修改的?但是你程序的结果是可以修改的,想不通?
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-22 14:45:45 | 显示全部楼层
回复【4楼】1501697860:
---------------------------------
修改备份区域,什么意思?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 02:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表