move buzzer demo to apps folder
This commit is contained in:
134
apps/Sensor Watch Buzzer Demo/app.c
Normal file
134
apps/Sensor Watch Buzzer Demo/app.c
Normal file
@@ -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;
|
||||
}
|
||||
1
apps/Sensor Watch Buzzer Demo/make/.gitignore
vendored
Executable file
1
apps/Sensor Watch Buzzer Demo/make/.gitignore
vendored
Executable file
@@ -0,0 +1 @@
|
||||
build/
|
||||
10
apps/Sensor Watch Buzzer Demo/make/Makefile
Executable file
10
apps/Sensor Watch Buzzer Demo/make/Makefile
Executable file
@@ -0,0 +1,10 @@
|
||||
TOP = ../../..
|
||||
include $(TOP)/make.mk
|
||||
|
||||
INCLUDES += \
|
||||
-I../
|
||||
|
||||
SRCS += \
|
||||
../app.c
|
||||
|
||||
include $(TOP)/rules.mk
|
||||
Reference in New Issue
Block a user