wonx/timer.c
Hiroaki Sakai eb06f7f4f8 Added text display function. (Only 0 to 127 ASCII characters, kanji is not supported)
Changed to create Wonx class and manage all resources with Wonx class.
(See Wonx.x WonxP.h)

When p is pressed to switch display / non-display of the screen, redraw the LCD panel
Improvement.

Added -Wall to compile option.

We have summarized the processing part of the function which is duplicated processing in disp.c.

Version 0.1 beta - from wonx-b01.tar.gz
2018-03-07 23:05:40 +00:00

192 lines
4.6 KiB
C

#include <stdlib.h>
#include <time.h>
#include <sys/timer.h>
#include "Wonx.h"
#include "etc.h"
typedef struct {
unsigned char year;
unsigned char month;
unsigned char date;
unsigned char day_of_week;
unsigned char hour;
unsigned char minute;
unsigned char second;
} datetime_t;
/* int tm_year; year - 1900 */
static int get_year(struct tm * tblock) { return (tblock->tm_year - 100); }
/* int tm_mon; month of year (0-11) */
static int get_month(struct tm * tblock) { return (tblock->tm_mon + 1); }
/* int tm_mday; day of month (1-31) */
static int get_day(struct tm * tblock) { return (tblock->tm_mday); }
/* int tm_wday; day of week (Sunday = 0) */
static int get_week(struct tm * tblock) { return (tblock->tm_wday); }
/* int tm_hour; hours (0 - 23) */
static int get_hour(struct tm * tblock) { return (tblock->tm_hour); }
/* int tm_min; minutes (0 - 59) */
static int get_minute(struct tm * tblock) { return (tblock->tm_min); }
/* int tm_sec; seconds (0 - 60) */
static int get_second(struct tm * tblock) { return (tblock->tm_sec); }
void rtc_set_datetime(int field, unsigned int value)
{
printf("call : rtc_set_datetime() : field = %d, value = %d\n",
field, (int)value);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : rtc_set_datetime() : not supported\n");
printf("call : rtc_set_datetime() : return value = none\n");
fflush(stdout);
return;
}
unsigned int rtc_get_datetime(int field)
{
unsigned int ret = 0;
time_t timer;
struct tm * tblock;
printf("call : rtc_get_datetime() : field = %d\n", field);
fflush(stdout);
time(&timer);
tblock = localtime(&timer);
switch (field) {
case RTC_YEAR : ret = get_year( tblock); break;
case RTC_MONTH : ret = get_month( tblock); break;
case RTC_DATE : ret = get_day( tblock); break;
case RTC_DAY_OF_WEEK : ret = get_week( tblock); break;
case RTC_HOUR : ret = get_hour( tblock); break;
case RTC_MIN : ret = get_minute(tblock); break;
case RTC_SEC : ret = get_second(tblock); break;
default : Error("rtc_get_datetime", "Unknown parameter.");
}
printf("call : rtc_get_datetime() : return value = %d\n", (int)ret);
fflush(stdout);
return (ret);
}
void rtc_set_datetime_struct(void * buffer)
{
printf("call : rtc_set_datetime_struct() : buffer = %p\n", buffer);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : rtc_set_datetime_struct() : not supported\n");
printf("call : rtc_set_datetime_struct() : return value = none\n");
fflush(stdout);
return;
}
void rtc_get_datetime_struct(void * buffer)
{
time_t timer;
struct tm * tblock;
datetime_t * p;
printf("call : rtc_get_datetime_struct() : buffer = %p\n", buffer);
fflush(stdout);
time(&timer);
tblock = localtime(&timer);
p = (datetime_t *)buffer;
p->year = get_year(tblock);
p->month = get_month(tblock);
p->date = get_day(tblock);
p->day_of_week = get_week(tblock);
p->hour = get_hour(tblock);
p->minute = get_minute(tblock);
p->second = get_second(tblock);
printf("call : rtc_get_datetime_struct() : return value = none\n");
fflush(stdout);
return;
}
void rtc_enable_alarm(int hour, int minute)
{
printf("call : rtc_enable_alarm() : hour = %d, minute = %d\n", hour, minute);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : rtc_enable_alarm() : not supported\n");
printf("call : rtc_enable_alarm() : return value = none\n");
fflush(stdout);
return;
}
void rtc_disable_alarm(void)
{
printf("call : rtc_disable_alarm() : \n");
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : rtc_disable_alarm() : not supported\n");
printf("call : rtc_disable_alarm() : return value = none\n");
fflush(stdout);
return;
}
void timer_enable(int type, unsigned int auto_preset, unsigned int preset)
{
printf("call : timer_enable() : type = %d, auto_preset = %u, preset = %u\n",
type, (int)auto_preset, (int)preset);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : timer_enable() : not supported\n");
printf("call : timer_enable() : return value = none\n");
fflush(stdout);
return;
}
void timer_disable(int type)
{
printf("call : timer_disable() : type = %d\n", type);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : timer_disable() : not supported\n");
printf("call : timer_disable() : return value = none\n");
fflush(stdout);
return;
}
unsigned int timer_get_count(int type)
{
unsigned int ret = 0;
printf("call : timer_get_count() : type = %d\n", type);
fflush(stdout);
/* ̤¥µ¥Ý¡¼¥È */
printf("call : timer_get_count() : not supported\n");
printf("call : timer_get_count() : return value = %u\n", ret);
fflush(stdout);
return (ret);
}