Rename tune; add notes

main
Michael Hayes 12 years ago
parent 84c039c042
commit 7b89c25d11

@ -1,6 +1,13 @@
/** @file squeak4.c /** @file jukebox1.c
@author M.P. Hayes @author M.P. Hayes
@date 30 Aug 2011 @date 30 Aug 2013
@note The fidelity of the notes is poor due to jitter
produced by the display task.
@note The tunes are stored in RAM. Adding more tunes can cause
a subtle memory overflow and the program will fail. A solution
would be to store the tunes in flash memory but this requires
some jiggery-pokery due to the Harvard architecture of the AVR.
*/ */
#include "system.h" #include "system.h"
@ -14,8 +21,10 @@
#include "../fonts/font3x5_1.h" #include "../fonts/font3x5_1.h"
/* Connect piezo tweeter to outermost pins of UCFK4 P1 connector. */ /* Connect piezo tweeter to pins 6 and 8 of UCFK4 P1 connector
#define PIEZO_PIO PIO_DEFINE (PORT_D, 6) for push-pull operation. */
#define PIEZO1_PIO PIO_DEFINE (PORT_D, 4)
#define PIEZO2_PIO PIO_DEFINE (PORT_D, 6)
/* Define polling rates in Hz. */ /* Define polling rates in Hz. */
#define TWEETER_TASK_RATE 20000 #define TWEETER_TASK_RATE 20000
@ -40,17 +49,12 @@ static char *note_names[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A
static const char tune1[] = static const char tune1[] =
{ {
#include "electric.mmel" #include "are_friends_electric.mmel"
}; };
static const char tune2[] = static const char tune2[] =
{ {
#include "temple_of_love.mmel" #include "imperial_march.mmel"
};
static const char tune3[] =
{
#include "electric.mmel"
}; };
@ -84,13 +88,18 @@ static void tweeter_task_init (void)
{ {
tweeter = tweeter_init (&tweeter_info, TWEETER_TASK_RATE, scale_table); tweeter = tweeter_init (&tweeter_info, TWEETER_TASK_RATE, scale_table);
pio_config_set (PIEZO_PIO, PIO_OUTPUT_LOW); pio_config_set (PIEZO1_PIO, PIO_OUTPUT_LOW);
pio_config_set (PIEZO2_PIO, PIO_OUTPUT_HIGH);
} }
static void tweeter_task (__unused__ void *data) static void tweeter_task (__unused__ void *data)
{ {
pio_output_set (PIEZO_PIO, tweeter_update (tweeter)); uint8_t state;
state = tweeter_update (tweeter);
pio_output_set (PIEZO1_PIO, state);
pio_output_set (PIEZO2_PIO, !state);
} }
@ -125,10 +134,8 @@ static void navswitch_task (__unused__ void *data)
} }
if (navswitch_push_event_p (NAVSWITCH_NORTH)) if (navswitch_push_event_p (NAVSWITCH_NORTH))
mmelody_play (melody, tune1); mmelody_play (melody, tune1);
if (navswitch_push_event_p (NAVSWITCH_EAST))
mmelody_play (melody, tune2);
if (navswitch_push_event_p (NAVSWITCH_SOUTH)) if (navswitch_push_event_p (NAVSWITCH_SOUTH))
mmelody_play (melody, tune3); mmelody_play (melody, tune2);
} }

Loading…
Cancel
Save