summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-09-18 14:00:45 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-09-18 14:03:10 -0400
commitee7ae2d3450307196ed68e87ad83cb2498bfbbe9 (patch)
tree96d51bfca6caea31a13835a6bf4e570a62514b24 /apps
parent07420e6ead840973d7136222b8e872261a7b18b8 (diff)
downloadSensor-Watch-ee7ae2d3450307196ed68e87ad83cb2498bfbbe9.tar.gz
Sensor-Watch-ee7ae2d3450307196ed68e87ad83cb2498bfbbe9.tar.bz2
Sensor-Watch-ee7ae2d3450307196ed68e87ad83cb2498bfbbe9.zip
move buzzer demo to apps folder
Diffstat (limited to 'apps')
-rw-r--r--apps/Sensor Watch Buzzer Demo/app.c134
-rwxr-xr-xapps/Sensor Watch Buzzer Demo/make/.gitignore1
-rwxr-xr-xapps/Sensor Watch Buzzer Demo/make/Makefile10
3 files changed, 145 insertions, 0 deletions
diff --git a/apps/Sensor Watch Buzzer Demo/app.c b/apps/Sensor Watch Buzzer Demo/app.c
new file mode 100644
index 00000000..74777fcc
--- /dev/null
+++ b/apps/Sensor Watch Buzzer Demo/app.c
@@ -0,0 +1,134 @@
+#include <stdio.h>
+#include <string.h>
+#include "watch.h"
+
+typedef struct ApplicationState {
+ bool play;
+} ApplicationState;
+
+ApplicationState application_state;
+
+
+void cb_alarm_pressed() {
+ application_state.play = true;
+}
+
+void app_init() {
+ memset(&application_state, 0, sizeof(application_state));
+}
+
+void app_wake_from_deep_sleep() {
+}
+
+void app_setup() {
+ watch_register_extwake_callback(BTN_ALARM, cb_alarm_pressed, true);
+
+ watch_enable_display();
+
+ watch_enable_buzzer();
+}
+
+void app_prepare_for_sleep() {
+ watch_display_string(" rains ", 2);
+}
+
+void app_wake_from_sleep() {
+}
+
+bool app_loop() {
+ if (application_state.play) {
+ printf("Playing song...\n");
+ const BuzzerNote rains[] = {
+ BUZZER_NOTE_A4,
+ BUZZER_NOTE_F5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_A4,
+ BUZZER_NOTE_E5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_A4,
+ BUZZER_NOTE_F5,
+ BUZZER_NOTE_G5,
+ BUZZER_NOTE_E5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_A4,
+ BUZZER_NOTE_G5,
+ BUZZER_NOTE_F5,
+ BUZZER_NOTE_E5,
+ BUZZER_NOTE_D5,
+ BUZZER_NOTE_E5,
+ BUZZER_NOTE_REST,
+
+ BUZZER_NOTE_A5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_A5,
+ BUZZER_NOTE_A5SHARP_B5FLAT,
+ BUZZER_NOTE_G5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_C5,
+ BUZZER_NOTE_A5,
+ BUZZER_NOTE_A5SHARP_B5FLAT,
+ BUZZER_NOTE_G5,
+ BUZZER_NOTE_REST,
+ BUZZER_NOTE_D5,
+ BUZZER_NOTE_A5SHARP_B5FLAT,
+ BUZZER_NOTE_A5,
+ BUZZER_NOTE_G5,
+ BUZZER_NOTE_F5,
+ BUZZER_NOTE_E5,
+ };
+ const uint16_t durations[] = {
+ 200,
+ 600,
+ 100,
+ 200,
+ 600,
+ 100,
+ 200,
+ 400,
+ 400,
+ 600,
+ 100,
+ 200,
+ 400,
+ 400,
+ 400,
+ 400,
+ 800,
+ 600,
+
+ 200,
+ 50,
+ 400,
+ 200,
+ 400,
+ 100,
+ 200,
+ 400,
+ 400,
+ 400,
+ 200,
+ 200,
+ 400,
+ 400,
+ 400,
+ 400,
+ 900,
+ };
+ application_state.play = false;
+ for(size_t i = 0; i < sizeof(rains); i++) {
+ char buf[9] = {0};
+ if (rains[i] == BUZZER_NOTE_REST) {
+ printf("rest for %d ms\n", durations[i]);
+ sprintf(buf, "%2drESt ", i);
+ } else {
+ printf("playing note %2d: %3.0f Hz for %d ms\n", i, 1000000.0 / (float)NotePeriods[rains[i]], durations[i]);
+ sprintf(buf, "%2d%6d", i, NotePeriods[rains[i]]);
+ }
+ watch_display_string(buf, 2);
+ watch_buzzer_play_note(rains[i], durations[i]);
+ }
+ printf("done!\n\n");
+ }
+
+ return true;
+}
diff --git a/apps/Sensor Watch Buzzer Demo/make/.gitignore b/apps/Sensor Watch Buzzer Demo/make/.gitignore
new file mode 100755
index 00000000..3722ac63
--- /dev/null
+++ b/apps/Sensor Watch Buzzer Demo/make/.gitignore
@@ -0,0 +1 @@
+build/
diff --git a/apps/Sensor Watch Buzzer Demo/make/Makefile b/apps/Sensor Watch Buzzer Demo/make/Makefile
new file mode 100755
index 00000000..c66ad20c
--- /dev/null
+++ b/apps/Sensor Watch Buzzer Demo/make/Makefile
@@ -0,0 +1,10 @@
+TOP = ../../..
+include $(TOP)/make.mk
+
+INCLUDES += \
+ -I../
+
+SRCS += \
+ ../app.c
+
+include $(TOP)/rules.mk