|
本帖最后由 hmpmark 于 2014-2-26 23:58 编辑
如题:我想尝试做一个时间小程序,再通过调用方式调用输出时间或写入时间到SD卡,但变量定义方面搞晕了应该如何定义变量呢?
[mw_shl_code=c,true]#include <Wire.h>
#include "DS1307.h"
DS1307 clock;/DS1307 类型//-----------------非循环程序开始---------------------
void setup()
{
Serial.begin(9600);
clock.begin();
clock.fillByYMD(2013,4,19);//Jan 19,2013
clock.fillByHMS(11,20,30);//15:28 30"
clock.fillDayOfWeek(FRI);//Saturday
clock.setTime();//write time to the RTC chip
}
//----------------循环程序开始---------------------
void loop()
{
printTime(shi,fen,miao,nian,yue,ri,zhou);//循环执行程序
Serial.println("shijian: %d:%d:%d %d-%d-%d (%d)"shi,fen,miao,nian,yue,ri,zhou);//输出程序结果
delay(1000);
}
/*Function: Display time on the serial monitor*/
void printTime(const char shi,const char fen,const char miao,const char nian,const char yue,const char ri,const char zhou)//设置输出时间子程序
{
clock.getTime();//时钟获取时间()
shi = (clock.hour, DEC);//串口打印(时钟小时,完整值);
fen = (clock.minute, DEC);//串行。打印(时钟分钟,完整值);
miao = (clock.second, DEC);//串行打印(时钟秒,完整值);
yue = (clock.month, DEC);//串行。打印(时钟月,完整值);
ri = (clock.dayOfMonth, DEC);//串行。打印(时钟日,完整值);
nian = (clock.year+2000, DEC);//串行。打印(时钟。年+ 2000,完整值);
zhou = 0;
switch (clock.dayOfWeek)//switch循环输出时钟星期几
{
case MON://如果结果为一
zhou = ("MON");//输出星期一
break;//结果正确断开返回
case TUE:
zhou = ("TUE");
break;
case WED:
zhou =("WED");
break;
case THU:
zhou =("THU");
break;
case FRI:
zhou =("FRI");
break;
case SAT:
zhou =("SAT");
break;
case SUN:
zhou =("SUN");
break;
}
return;
}[/mw_shl_code]
|
|