mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 11:10:29 +08:00
More low power work
This commit is contained in:
parent
7ff91a2f67
commit
7e9ef16a18
|
@ -517,10 +517,10 @@ drivers:
|
|||
functionality: System
|
||||
api: HAL:HPL:GCLK
|
||||
configuration:
|
||||
$input: 32768
|
||||
$input_id: 32kHz External Crystal Oscillator (XOSC32K)
|
||||
RESERVED_InputFreq: 32768
|
||||
RESERVED_InputFreq_id: 32kHz External Crystal Oscillator (XOSC32K)
|
||||
$input: 400000
|
||||
$input_id: External Crystal Oscillator 0.4-32MHz (XOSC)
|
||||
RESERVED_InputFreq: 400000
|
||||
RESERVED_InputFreq_id: External Crystal Oscillator 0.4-32MHz (XOSC)
|
||||
_$freq_output_Generic clock generator 0: 4000000
|
||||
_$freq_output_Generic clock generator 1: 400000
|
||||
_$freq_output_Generic clock generator 2: 400000
|
||||
|
@ -594,7 +594,7 @@ drivers:
|
|||
cpu_clock_source: Generic clock generator 0
|
||||
cpu_div: '1'
|
||||
enable_cpu_clock: true
|
||||
mclk_arch_bupdiv: Divide by 8
|
||||
mclk_arch_bupdiv: Divide by 1
|
||||
nvm_wait_states: '0'
|
||||
optional_signals: []
|
||||
variant: null
|
||||
|
@ -646,9 +646,9 @@ drivers:
|
|||
functionality: System
|
||||
api: HAL:HPL:OSCCTRL
|
||||
configuration:
|
||||
$input: 32768
|
||||
$input: 16000000
|
||||
$input_id: 32kHz External Crystal Oscillator (XOSC32K)
|
||||
RESERVED_InputFreq: 32768
|
||||
RESERVED_InputFreq: 16000000
|
||||
RESERVED_InputFreq_id: 32kHz External Crystal Oscillator (XOSC32K)
|
||||
_$freq_output_16MHz Internal Oscillator (OSC16M): 4000000
|
||||
_$freq_output_Digital Frequency Locked Loop (DFLL48M): 48000000
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
// <MCLK_BUPDIV_BUPDIV_DIV128_Val"> Divide by 128
|
||||
// <id> mclk_arch_bupdiv
|
||||
#ifndef CONF_MCLK_BUPDIV
|
||||
#define CONF_MCLK_BUPDIV MCLK_BUPDIV_BUPDIV_DIV8_Val
|
||||
#define CONF_MCLK_BUPDIV MCLK_BUPDIV_BUPDIV_DIV1_Val
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@
|
|||
<AcmeProjectActionInfo Action="File" Source="config/hpl_dmac_config.h" IsConfig="true" Hash="w3WBXNAk4X2Eyml3c7tQSQ" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_eic_config.h" IsConfig="true" Hash="U9WSM5Hq8sGLa8ysciEfCg" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_gclk_config.h" IsConfig="true" Hash="VW757Ebgq5TyYTRcpY8M7w" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_mclk_config.h" IsConfig="true" Hash="CLrsNUvv74/qlHdF8aFndg" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_mclk_config.h" IsConfig="true" Hash="mlJgZO8dVVh4sN9KaO7rkA" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_osc32kctrl_config.h" IsConfig="true" Hash="LayjFcrIUjhOQ+E6G5sHRA" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_oscctrl_config.h" IsConfig="true" Hash="Vc5u27WzT+UPF5aLAxl2lQ" />
|
||||
<AcmeProjectActionInfo Action="File" Source="config/hpl_port_config.h" IsConfig="true" Hash="rMTNR+5FXtu+wfT1NbfRRA" />
|
||||
|
@ -409,6 +409,7 @@
|
|||
<Value>%24(PackRepoDir)\atmel\SAML22_DFP\1.2.77\include</Value>
|
||||
</ListValues>
|
||||
</armgcc.compiler.directories.IncludePaths>
|
||||
<armgcc.compiler.optimization.level>Optimize debugging experience (-Og)</armgcc.compiler.optimization.level>
|
||||
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
|
||||
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
|
||||
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
|
||||
|
|
|
@ -11,9 +11,6 @@ void calendar_callback(struct calendar_descriptor *const calendar) {
|
|||
|
||||
static void mode_callback() {
|
||||
local = !local;
|
||||
struct calendar_date_time date_time;
|
||||
calendar_get_date_time(&CALENDAR_0, &date_time);
|
||||
update_display(&watch, date_time, local);
|
||||
}
|
||||
|
||||
static void light_callback() {
|
||||
|
@ -21,7 +18,6 @@ static void light_callback() {
|
|||
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, local);
|
||||
}
|
||||
|
||||
static void alarm_callback() {
|
||||
|
@ -29,19 +25,29 @@ static void alarm_callback() {
|
|||
calendar_get_date_time(&CALENDAR_0, &date_time);
|
||||
date_time.time.sec = 0;
|
||||
watch_set_date_time(date_time);
|
||||
update_display(&watch, date_time, local);
|
||||
}
|
||||
|
||||
static void tick_callback() {
|
||||
struct calendar_date_time date_time;
|
||||
calendar_get_date_time(&CALENDAR_0, &date_time);
|
||||
update_display(&watch, date_time, local);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
atmel_start_init();
|
||||
|
||||
watch_init(&watch);
|
||||
|
||||
watch_enable_date_time(&watch);
|
||||
struct calendar_date_time date_time;
|
||||
date_time.date.year = 2021;
|
||||
date_time.date.month = 5;
|
||||
date_time.date.day = 8;
|
||||
date_time.time.hour = 19;
|
||||
date_time.time.min = 40;
|
||||
date_time.time.sec = 0;
|
||||
watch_set_date_time(date_time);
|
||||
update_display(&watch, date_time, local);
|
||||
watch_enable_tick(tick_callback);
|
||||
|
||||
gpio_set_pin_level(RED, false);
|
||||
gpio_set_pin_direction(RED, GPIO_DIRECTION_OUT);
|
||||
gpio_set_pin_function(RED, GPIO_PIN_FUNCTION_OFF);
|
||||
|
@ -49,38 +55,19 @@ int main(void)
|
|||
gpio_set_pin_direction(GREEN, GPIO_DIRECTION_OUT);
|
||||
gpio_set_pin_function(GREEN, GPIO_PIN_FUNCTION_OFF);
|
||||
|
||||
watch_init(&watch);
|
||||
|
||||
watch_enable_display(&watch);
|
||||
watch_display_pixel(&watch, 1, 16);
|
||||
|
||||
watch_enable_buttons(&watch);
|
||||
watch_register_button_callback(&watch, BTN_MODE, &mode_callback);
|
||||
watch_register_button_callback(&watch, BTN_ALARM, &alarm_callback);
|
||||
watch_register_button_callback(&watch, BTN_LIGHT, &light_callback);
|
||||
|
||||
watch_enable_date_time(&watch);
|
||||
struct calendar_date_time date_time;
|
||||
date_time.date.year = 2021;
|
||||
date_time.date.month = 5;
|
||||
date_time.date.day = 6;
|
||||
date_time.time.hour = 23;
|
||||
date_time.time.min = 30;
|
||||
date_time.time.sec = 0;
|
||||
watch_set_date_time(date_time);
|
||||
/* 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;
|
||||
calendar_set_alarm(&CALENDAR_0, &alarm, &calendar_callback);
|
||||
*/
|
||||
update_display(&watch, date_time, local);
|
||||
watch_enable_tick(tick_callback);
|
||||
watch_enable_display(&watch);
|
||||
watch_display_pixel(&watch, 1, 16);
|
||||
|
||||
while (1) {
|
||||
sleep(4);
|
||||
struct calendar_date_time date_time;
|
||||
calendar_get_date_time(&CALENDAR_0, &date_time);
|
||||
update_display(&watch, date_time, local);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -12,8 +12,12 @@
|
|||
|
||||
void watch_init(Watch *watch) {
|
||||
memset(watch, 0, sizeof(*watch));
|
||||
// use switching regulator
|
||||
SUPC->VREG.bit.SEL = 1;
|
||||
while(!SUPC->STATUS.bit.VREGRDY);
|
||||
// TODO: use performance level 0
|
||||
// _set_performance_level(0);
|
||||
// hri_pm_write_PLCFG_PLDIS_bit(PM, true);
|
||||
}
|
||||
|
||||
const uint8_t Character_Set[] =
|
||||
|
|
Loading…
Reference in a new issue