]> git.earman.xyz Git - sensor-watch.git/commitdiff
sunday low power work
authorJoey Castillo <jose.castillo@gmail.com>
Mon, 3 May 2021 03:31:07 +0000 (23:31 -0400)
committerJoey Castillo <jose.castillo@gmail.com>
Mon, 3 May 2021 03:31:07 +0000 (23:31 -0400)
Smol Watch Project/My Project/.atmelstart/atmel_start_config.atstart
Smol Watch Project/My Project/Config/hpl_slcd_config.h
Smol Watch Project/My Project/My Project.cproj
Smol Watch Project/My Project/main.c
Smol Watch Project/My Project/mars_clock.c
Smol Watch Project/My Project/watch-library/watch.c

index 95c9e7f06e4174b8eea62b3c06516d4173de9cee..0c082b911d9a896438867d688906e0d28204ef1d 100644 (file)
@@ -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
index e3bb1bd5ae321f25acb7bf4c5b940089be182972..722134329d569652e7bc5562ec6748df91e9dabc 100644 (file)
 // <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>
index a4a9b3835f39a0eea27bf0d196a9f8bb93e7cfc6..ac2e0cd80a69a2a17b466cb6242a46d8f351f351 100644 (file)
           <AcmeProjectActionInfo Action="File" Source="config/hpl_port_config.h" IsConfig="true" Hash="rMTNR+5FXtu+wfT1NbfRRA" />\r
           <AcmeProjectActionInfo Action="File" Source="config/hpl_rtc_config.h" IsConfig="true" Hash="oTcobT9ydLDOqfpwUidHvg" />\r
           <AcmeProjectActionInfo Action="File" Source="config/hpl_sercom_config.h" IsConfig="true" Hash="x/EmsaDJwEm2EI8zXUSlWw" />\r
-          <AcmeProjectActionInfo Action="File" Source="config/hpl_slcd_config.h" IsConfig="true" Hash="ErbI2VSUDy3ufREFJTO9Uw" />\r
+          <AcmeProjectActionInfo Action="File" Source="config/hpl_slcd_config.h" IsConfig="true" Hash="dUpqyZg3KRMbt3sjYhNt1Q" />\r
           <AcmeProjectActionInfo Action="File" Source="config/hpl_systick_config.h" IsConfig="true" Hash="tlT3lNDKWFe82MiGWfQzcA" />\r
           <AcmeProjectActionInfo Action="File" Source="config/hpl_tc_config.h" IsConfig="true" Hash="s9fqdoBaH2BH7Id2JoCHTg" />\r
           <AcmeProjectActionInfo Action="File" Source="config/hpl_tcc_config.h" IsConfig="true" Hash="5OifPvGmHqsckywrqS3ctQ" />\r
index 45bb5dc0da25cd3a5863cf276b9ef8776f55bb29..3af1ed076fa7d1493b8cd05696da6204765215af 100644 (file)
@@ -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;
index ad7562e90e9c115479dc9b101db1e53776d1d520..82a47d08a57c4d3413e04f501aa9f4e9b92aa304 100644 (file)
@@ -12,6 +12,6 @@
 \r
 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);
 }
index 69eacde93c0d77b17a2029a1bdd438a52e9a38ae..cb12b28d06d608051aefd3984087dfd1661616e1 100644 (file)
@@ -12,6 +12,8 @@
 \r
 void watch_init(Watch *watch) {\r
        memset(watch, 0, sizeof(*watch));\r
+       SUPC->VREG.bit.SEL = 1;\r
+       while(!SUPC->STATUS.bit.VREGRDY);\r
 }\r
 \r
 const uint8_t Character_Set[] =\r