summaryrefslogtreecommitdiffstats
path: root/Smol Watch Project
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-05-02 23:31:07 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-05-02 23:31:07 -0400
commit471bdc60c0d38459702888c722a10f2ed1a8379b (patch)
tree2e50fa4bc051d3b5e8eef0abd021e7a80ca64f88 /Smol Watch Project
parent88a38cc2352c2bd0ad2733093796f3d424ebcc9c (diff)
downloadSensor-Watch-471bdc60c0d38459702888c722a10f2ed1a8379b.tar.gz
Sensor-Watch-471bdc60c0d38459702888c722a10f2ed1a8379b.tar.bz2
Sensor-Watch-471bdc60c0d38459702888c722a10f2ed1a8379b.zip
sunday low power work
Diffstat (limited to 'Smol Watch Project')
-rw-r--r--Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart4
-rw-r--r--Smol Watch Project/My Project/Config/hpl_slcd_config.h4
-rw-r--r--Smol Watch Project/My Project/My Project.cproj2
-rw-r--r--Smol Watch Project/My Project/main.c57
-rw-r--r--Smol Watch Project/My Project/mars_clock.c2
-rw-r--r--Smol Watch Project/My Project/watch-library/watch.c2
6 files changed, 38 insertions, 33 deletions
diff --git a/Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart b/Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart
index 95c9e7f0..0c082b91 100644
--- a/Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart
+++ b/Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart
@@ -979,7 +979,7 @@ drivers:
functionality: Segment_LCD
api: HAL:Driver:SLCD_Sync
configuration:
- slcd_arch_advanced_settings: false
+ slcd_arch_advanced_settings: true
slcd_arch_bbd: 2
slcd_arch_bben: true
slcd_arch_bias: THIRD
@@ -1233,7 +1233,7 @@ drivers:
slcd_arch_presc: '64'
slcd_arch_prf: 250Hz
slcd_arch_rrf: 2kHz
- slcd_arch_runstdby: false
+ slcd_arch_runstdby: true
slcd_arch_seg_num: 24
slcd_arch_wmod: Low Power Waveform(frame-inversion)
slcd_arch_xvlcd: false
diff --git a/Smol Watch Project/My Project/Config/hpl_slcd_config.h b/Smol Watch Project/My Project/Config/hpl_slcd_config.h
index e3bb1bd5..72213432 100644
--- a/Smol Watch Project/My Project/Config/hpl_slcd_config.h
+++ b/Smol Watch Project/My Project/Config/hpl_slcd_config.h
@@ -169,14 +169,14 @@
// <e> Advanced configuration
// <id> slcd_arch_advanced_settings
#ifndef CONF_SLCD_ADVANCED_SETTINGS
-#define CONF_SLCD_ADVANCED_SETTINGS 0
+#define CONF_SLCD_ADVANCED_SETTINGS 1
#endif
// <q> Run in standby
// <i> Indicates whether the SLCD will continue running in standby sleep mode or not
// <id> slcd_arch_runstdby
#ifndef CONF_SLCD_RUNSTDBY
-#define CONF_SLCD_RUNSTDBY 0
+#define CONF_SLCD_RUNSTDBY 1
#endif
// </e>
diff --git a/Smol Watch Project/My Project/My Project.cproj b/Smol Watch Project/My Project/My Project.cproj
index a4a9b383..ac2e0cd8 100644
--- a/Smol Watch Project/My Project/My Project.cproj
+++ b/Smol Watch Project/My Project/My Project.cproj
@@ -202,7 +202,7 @@
<AcmeProjectActionInfo Action="File" Source="config/hpl_port_config.h" IsConfig="true" Hash="rMTNR+5FXtu+wfT1NbfRRA" />
<AcmeProjectActionInfo Action="File" Source="config/hpl_rtc_config.h" IsConfig="true" Hash="oTcobT9ydLDOqfpwUidHvg" />
<AcmeProjectActionInfo Action="File" Source="config/hpl_sercom_config.h" IsConfig="true" Hash="x/EmsaDJwEm2EI8zXUSlWw" />
- <AcmeProjectActionInfo Action="File" Source="config/hpl_slcd_config.h" IsConfig="true" Hash="ErbI2VSUDy3ufREFJTO9Uw" />
+ <AcmeProjectActionInfo Action="File" Source="config/hpl_slcd_config.h" IsConfig="true" Hash="dUpqyZg3KRMbt3sjYhNt1Q" />
<AcmeProjectActionInfo Action="File" Source="config/hpl_systick_config.h" IsConfig="true" Hash="tlT3lNDKWFe82MiGWfQzcA" />
<AcmeProjectActionInfo Action="File" Source="config/hpl_tc_config.h" IsConfig="true" Hash="s9fqdoBaH2BH7Id2JoCHTg" />
<AcmeProjectActionInfo Action="File" Source="config/hpl_tcc_config.h" IsConfig="true" Hash="5OifPvGmHqsckywrqS3ctQ" />
diff --git a/Smol Watch Project/My Project/main.c b/Smol Watch Project/My Project/main.c
index 45bb5dc0..3af1ed07 100644
--- a/Smol Watch Project/My Project/main.c
+++ b/Smol Watch Project/My Project/main.c
@@ -4,47 +4,49 @@
#include "mars_clock.h"
Watch watch;
-int light = 1;
+bool locked = true;
void calendar_callback(struct calendar_descriptor *const calendar) {
- struct calendar_date_time date_time;
- calendar_get_date_time(&CALENDAR_0, &date_time);
-
- update_display(&watch, date_time);
-/*
- if (date_time.time.min % 2 == 0) {
- watch_set_led_color(50, 0);
- } else {
- watch_set_led_color(0, 50);
- }
-*/
}
static void mode_callback() {
+ locked = !locked;
+ gpio_set_pin_level(GREEN, !locked);
}
static void light_callback() {
+ if (locked) return;
+ struct calendar_date_time date_time;
+ calendar_get_date_time(&CALENDAR_0, &date_time);
+ date_time.time.min = (date_time.time.min + 1) % 60;
+ watch_set_date_time(date_time);
+ update_display(&watch, date_time);
}
static void alarm_callback() {
+ if (locked) return;
+ struct calendar_date_time date_time;
+ calendar_get_date_time(&CALENDAR_0, &date_time);
+ date_time.time.sec = 0;
+ watch_set_date_time(date_time);
+ update_display(&watch, date_time);
}
-int lightOn = 0;
-
static void tick_callback() {
- gpio_set_pin_level(GREEN, lightOn == 0);
- lightOn = (lightOn + 1) % 10;
+ struct calendar_date_time date_time;
+ calendar_get_date_time(&CALENDAR_0, &date_time);
+ update_display(&watch, date_time);
}
int main(void)
{
atmel_start_init();
+ gpio_set_pin_level(RED, false);
+ gpio_set_pin_direction(RED, GPIO_DIRECTION_OUT);
+ gpio_set_pin_function(RED, GPIO_PIN_FUNCTION_OFF);
gpio_set_pin_level(GREEN, false);
-
- // Set pin direction to output
gpio_set_pin_direction(GREEN, GPIO_DIRECTION_OUT);
-
gpio_set_pin_function(GREEN, GPIO_PIN_FUNCTION_OFF);
watch_init(&watch);
@@ -59,25 +61,26 @@ int main(void)
watch_enable_date_time(&watch);
struct calendar_date_time date_time;
- date_time.date.year = 2021;
- date_time.date.month = 4;
- date_time.date.day = 30;
- date_time.time.hour = 9;
- date_time.time.min = 40;
+ date_time.date.year = 1; // reference year is 2020, add this to that.
+ date_time.date.month = 5;
+ date_time.date.day = 2;
+ date_time.time.hour = 7;
+ date_time.time.min = 15;
date_time.time.sec = 0;
watch_set_date_time(date_time);
- struct calendar_alarm alarm;
+/* struct calendar_alarm alarm;
alarm.cal_alarm.mode = REPEAT;
alarm.cal_alarm.datetime = date_time;
alarm.cal_alarm.datetime.time.sec = 0;
alarm.cal_alarm.option = CALENDAR_ALARM_MATCH_SEC;
alarm.callback = calendar_callback;
- update_display(&watch, date_time);
calendar_set_alarm(&CALENDAR_0, &alarm, &calendar_callback);
+*/
+ update_display(&watch, date_time);
watch_enable_tick(tick_callback);
while (1) {
- sleep(2);
+ sleep(4);
}
return 0;
diff --git a/Smol Watch Project/My Project/mars_clock.c b/Smol Watch Project/My Project/mars_clock.c
index ad7562e9..82a47d08 100644
--- a/Smol Watch Project/My Project/mars_clock.c
+++ b/Smol Watch Project/My Project/mars_clock.c
@@ -12,6 +12,6 @@
void update_display(Watch *watch, struct calendar_date_time date_time) {
char buf[6];
- sprintf(&buf[0], "TE %02d%02d", date_time.time.hour, date_time.time.min);
+ sprintf(&buf[0], "TE %02d%02d%02d", date_time.time.hour, date_time.time.min, date_time.time.sec);
watch_display_string(watch, buf, 0);
}
diff --git a/Smol Watch Project/My Project/watch-library/watch.c b/Smol Watch Project/My Project/watch-library/watch.c
index 69eacde9..cb12b28d 100644
--- a/Smol Watch Project/My Project/watch-library/watch.c
+++ b/Smol Watch Project/My Project/watch-library/watch.c
@@ -12,6 +12,8 @@
void watch_init(Watch *watch) {
memset(watch, 0, sizeof(*watch));
+ SUPC->VREG.bit.SEL = 1;
+ while(!SUPC->STATUS.bit.VREGRDY);
}
const uint8_t Character_Set[] =