Teensy 3.5 및 3.6에서 현재 시각 출력하기 (Time Library 이용)
기타2020. 8. 13. 15:58
728x90
반응형
실시간 시계(Real Time Clock, 이하 RTC)란 현재 시간 정보를 항시 가지고 있는 컴퓨터 시계 부품을 의미합니다.
일반적으로 개인용 컴퓨터(PC)는 RTC를 내부적으로 가지고 있으며, RTC는 내장 건전지를 사용하여 전원이 꺼지더라도 디지털 회로의 카운터에 의존하여 현재 시간 정보를 가지고 있습니다.
사실 성능이 좋지 않은 임베디드 기기의 경우 RTC를 가지고 있지 않은 경우도 많습니다. 이 경우 추가적인 부품을 연결하여 RTC를 이용해야 합니다. Teensy Board에 관해서 말씀을 드리자면, Teensy 3.5와 Teensy 3.6의 경우 내장된 RTC를 가지고 있습니다. 아예 내장된(Built-in) 부품이기 때문에 바로 라이브러리를 호출하여 사용할 수 있어요.
Teensy의 Time Library 관련 문서는 다음의 경로에서 확인하실 수 있습니다.
▶ Teensy Time Library: www.pjrc.com/teensy/td_libs_Time.html
Teensy 3.5과 3.6 버전은 32.768 kHz의 Built-in 크리스탈을 이용하여 시간 정보를 기록한다고 하네요. 이를 이용하는 간단한 예시는 다음과 같이 작성할 수 있습니다.
#include <TimeLib.h>
void setup() {
// Teensy의 RTC를 이용하여 Time Library를 초기화
setSyncProvider(getTeensy3Time);
Serial.begin(115200);
while (!Serial);
}
void loop() {
// 매 초마다 현재 시각을 출력
digitalClockDisplay();
delay(1000);
}
// 현재 시각을 출력하는 함수
void digitalClockDisplay() {
Serial.print("Timestamp (from 1970): ");
Serial.println(now());
Serial.print(year());
Serial.print("/");
Serial.print(month());
Serial.print("/");
Serial.print(day());
Serial.print(" ");
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
time_t getTeensy3Time() {
return Teensy3Clock.get();
}
// 숫자 정보를 깔끔하게 출력해주는 함수(10보다 작은 수라면 앞에 0을 붙임)
void printDigits(int digits) {
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
실행 결과는 다음과 같습니다.
728x90
반응형
'기타' 카테고리의 다른 글
깃허브 저장소 대표 언어 변경하는 방법 (1) | 2020.08.16 |
---|---|
윈도우에서 파이썬(Python) 버전 2와 3 동시에 사용하기(CMD 설정) (0) | 2020.08.16 |
네이버 메일 미리보기 설정 방법 (0) | 2020.08.07 |
네이버 메일 읽을 때 수신확인 못 하게 읽는 방법 (+ 네이버 메일 수신확인의 동작 원리) (1) | 2020.08.07 |
Teensy 보드(Board)에서 시리얼(Serial) 통신 사용하는 방법 (0) | 2020.07.27 |