程式
#include <stdio.h>
#include <DS1302.h>
#include <TM1637Display.h>
#define CLK 9
#define DIO 8
TM1637Display display(CLK, DIO);
namespace {
const int kCePin = 5; // Chip Enable
const int kIoPin = 6; // Input/Output
const int kSclkPin = 7; // Serial Clock
//String dw,hh,mm,ss;
int bd=0;
DS1302 rtc(kCePin, kIoPin, kSclkPin);
} // namespace
void setup() {
Serial.begin(9600);
Serial.println("DS1302 begin--------------------------");
rtc.writeProtect(false);
rtc.halt(false);
//Time t(2020, 3, 14, 20, 30, 50, Time::kSunday);
//rtc.time(t);
/*Serial.print(ms_b/1000);Serial.print(" ");
Serial.print(millis()/1000);Serial.print(" ");
Serial.print(millis()/1000);Serial.print(" ");
Serial.print(CountDownMM*5);Serial.print(" ");
Serial.print(CountDownMM*60*1000);Serial.print(" ");
Serial.println(" ");
*/
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 };
display.setBrightness(0x0f);
display.setSegments(data);
}
//--------------------------------------------------
void loop() {
Time t = rtc.time();
// OK 時鐘
uint8_t segto;
segto = 0x80 | display.encodeDigit(t.hr/10);
display.setSegments(&segto, 1, 0);
/*if(t.sec%2==0)
segto = 0x80 | display.encodeDigit(t.hr%10);
else segto = display.encodeDigit(t.hr%10);*/
if(bd==0){
segto = 0x80 | display.encodeDigit(t.hr%10);
bd=1;
}
else {
segto = display.encodeDigit(t.hr%10);
bd=0;
}
display.setSegments(&segto, 1, 1);
segto = display.encodeDigit(t.min/10);
display.setSegments(&segto, 1, 2);
segto = display.encodeDigit(t.min%10);
display.setSegments(&segto, 1, 3);
delay(100);
}
沒有留言:
張貼留言