OpenEdv-开源电子网

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

合并了RTC和2401两个程序 时间不更新了怎么办啊 ,求教谢谢

[复制链接]

85

主题

378

帖子

0

精华

高级会员

Rank: 4

积分
902
金钱
902
注册时间
2013-4-29
在线时间
87 小时
发表于 2013-10-3 12:04:21 | 显示全部楼层 |阅读模式
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "pwm.h"
#include "lcd.h"
#include "rtc.h"
#include "24l01.h"
#include "spi.h"

//ALIENTEK Mini STM32开发板范例代码11
//RTC实时时钟 实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com  
 
const u8 *COMPILED_DATE=__DATE__;//获得编译日期
const u8 *COMPILED_TIME=__TIME__;//获得编译时间

const u8* Week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

 int main(void)
 { u8 key=0;
u8 t=0;
u8 tmp_buf[33];
u8 buffer;
SystemInit();
delay_init(72);     //延时初始化
NVIC_Configuration();
  uart_init(9600);
  LED_Init();
  KEY_Init();
LCD_Init();
RTC_Init();
  NRF24L01_Init(); 
POINT_COLOR=RED;//设置字体为红色 
LCD_ShowString(60,50,"Mini STM32 ");
LCD_ShowString(60,70,"RTC TEST");
LCD_ShowString(60,90,"ATOM@ALIENTEK");
LCD_ShowString(60,110,"2010/12/30");
//显示时间
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,"    -  -  ");   
LCD_ShowString(60,162," : :  ");    
while(1)
{    
if(t!=timer.sec)
{
t=timer.sec;
LCD_ShowNum(60,130,timer.w_year,4,16);  
LCD_ShowNum(100,130,timer.w_month,2,16);  
LCD_ShowNum(124,130,timer.w_date,2,16);  
switch(timer.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,timer.hour,2,16);  
LCD_ShowNum(84,162,timer.min,2,16);  
LCD_ShowNum(108,162,timer.sec,2,16);
      }
while(NRF24L01_Check())//检测不到24L01
{
LCD_ShowString(60,130,"24L01 Check Failed!");
delay_ms(500);
LCD_ShowString(60,130,"Please Check!      ");
}
while(1)//在该部分确定进入哪个模式!
{
key=KEY_Scan();
if(key==1)
{
buffer='a';   
break;
}else if(key==2)
{
buffer='b';
break;
}
}
TX_Mode();
while(1)
{      
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
{
tmp_buf[0]=buffer;
}
delay_ms(1500);    
};  


 
};  

 }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

85

主题

378

帖子

0

精华

高级会员

Rank: 4

积分
902
金钱
902
注册时间
2013-4-29
在线时间
87 小时
 楼主| 发表于 2013-10-3 12:05:04 | 显示全部楼层
无线控制 好使,但是时间不更新了 ,按一下复位 会更新时间的 ,不懂啊
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-3 14:37:03 | 显示全部楼层
回复【2楼】盒子:
---------------------------------
代码问题。。。,你这执行完时间更新后,只在无线部分做循环
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

85

主题

378

帖子

0

精华

高级会员

Rank: 4

积分
902
金钱
902
注册时间
2013-4-29
在线时间
87 小时
 楼主| 发表于 2013-10-5 11:49:27 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
能 给一个整改的意见么,我把两个while(1)去掉 可是无线就不好使了啊,其实我是想做一个RTC 闹钟中断控制无线通信的程序 ,两个单独的实验做好了,整合不好,不知道怎么用闹钟控制 无线发射,是闹钟 控制一个变量,然后无线发射检测这个变量么,求指导,我怎么有一种闭门造车的感觉呢
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-5 11:58:54 | 显示全部楼层
你可以在RTC中断中设变量标记嘛,然后在main函数中检测这个变量,控制无线。。。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

85

主题

378

帖子

0

精华

高级会员

Rank: 4

积分
902
金钱
902
注册时间
2013-4-29
在线时间
87 小时
 楼主| 发表于 2013-10-5 12:39:10 | 显示全部楼层
回复【5楼】xiaoyan:
---------------------------------
while(1)
{         
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
{

tmp_buf[0]=buffer;

}
delay_ms(1500);     
};  
这段程序什么意思啊,怎么能不用死循环啊,刚才试着把无线发射程序放到闹钟中断中,能定时发射,但是会死在这个程序里,去掉while(1)就不好使了,这段程序我也不太明白,也就不知道怎么改,求教
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-5 16:20:33 | 显示全部楼层
回复【6楼】盒子:
---------------------------------
汗。。。。,这不是你自己写的代码么。这么简单的代码你可以解决的,相信自己的能力。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-5 16:28:55 | 显示全部楼层
回复【6楼】盒子:
---------------------------------
你不停的查询就是了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-11-8 12:26:31 | 显示全部楼层
回复【楼主位】盒子:
---------------------------------
           请问你的问题解决了吗??我也遇到类似的问题了     在弄RTC,单独使用的时候很好使,但是加上红外遥控器,用来调整时间,可是这时候就进入不了秒中断了了,只有按一次遥控器就进入一次秒中断
      这是怎么回事???
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-10 03:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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