Sound: Unterschied zwischen den Versionen
Habo (Diskussion | Beiträge) (→Wave) |
Habo (Diskussion | Beiträge) (→Melody) |
||
| Zeile 21: | Zeile 21: | ||
=== Melody === | === Melody === | ||
| − | Es wird eine Melody abgespielt die als Notenwerte abgelegt sind. | + | Es wird eine Melody abgespielt die als Notenwerte abgelegt sind. Als Beispiel liegt das Lied "Alle meine Entchen" unter '''hardware/pwm/entchen.h''' bereit. |
| + | |||
| + | Für weitere eigene Songs kann man ein include in '''hardware/pwm/pwm_melody.c''' einfügen und dann das struct '''songs''' mit weiteren Melodien aus dem Programmspeicher füllen. | ||
| + | |||
| + | ==== Beispiele ==== | ||
| + | |||
| + | Beispiel: hardware/pwm/pwm_melody.c anpassen | ||
| + | |||
| + | #include "newsong.h" | ||
| + | [...] | ||
| + | struct song_t songs[] PROGMEM = { | ||
| + | { "entchen", 10, 4, entchen_notes, songlength(entchen_notes) }, | ||
| + | { "newsong", 40, 1, newsong_notes, songlength(newsong_notes) } | ||
| + | }; | ||
| + | |||
| + | Beispiel: newsong.h hinzufügen | ||
| + | #ifndef PWM_NEWSONG_H | ||
| + | #define PWM_NEWSONG_H | ||
| + | /* | ||
| + | * The adapted melody is in the public domain. | ||
| + | */ | ||
| + | const struct notes_duration_t newsong_notes[] PROGMEM = | ||
| + | { | ||
| + | {C,8}, {D,8}, {E,8}, {E,8}, | ||
| + | {G,16},{G,16}, | ||
| + | {A,8}, {A,8}, {A,8}, {A,8}, | ||
| + | {G,24},{p,8}, {p, 1}, {p, 1}, | ||
| + | {A,8}, {A,8}, {A,8}, {A,8}, | ||
| + | {G,24},{p,8}, {p, 1}, {p, 1}, | ||
| + | {F,8}, {F,8}, {F,8}, {F,8}, | ||
| + | {E,16},{E,16}, | ||
| + | {D,8}, {D,8}, {D,8}, {D,8}, | ||
| + | {C,24},{p,8}, {p, 1}, {p, 1} | ||
| + | }; | ||
| + | #endif /* PWM_NEWSONG_H */ | ||
| + | |||
[[Kategorie:PWM]] | [[Kategorie:PWM]] | ||
[[Kategorie:Sound]] | [[Kategorie:Sound]] | ||
Version vom 29. November 2009, 22:16 Uhr
Inhaltsverzeichnis
PWM Sound
Via PWM kann auch Sound ausgegeben werden.
make menuconfig
I/O support --->
[*] PWM Generator ---> (NEW)
PWM Generator
[*] PWM Wave
[*] PWM Melody
Wave
Es wird eine kleine 8 Bit Mono 8000Hz PCM WAV Datei abgespielt. Die entsprechende Datei kann einfach ausgetauscht werden und nach dem neukompilieren kann man diese dann abspielen.
hardware/pwm/ethersex.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 8 bit, mono 8000 H
Melody
Es wird eine Melody abgespielt die als Notenwerte abgelegt sind. Als Beispiel liegt das Lied "Alle meine Entchen" unter hardware/pwm/entchen.h bereit.
Für weitere eigene Songs kann man ein include in hardware/pwm/pwm_melody.c einfügen und dann das struct songs mit weiteren Melodien aus dem Programmspeicher füllen.
Beispiele
Beispiel: hardware/pwm/pwm_melody.c anpassen
#include "newsong.h"
[...]
struct song_t songs[] PROGMEM = {
{ "entchen", 10, 4, entchen_notes, songlength(entchen_notes) },
{ "newsong", 40, 1, newsong_notes, songlength(newsong_notes) }
};
Beispiel: newsong.h hinzufügen
#ifndef PWM_NEWSONG_H
#define PWM_NEWSONG_H
/*
* The adapted melody is in the public domain.
*/
const struct notes_duration_t newsong_notes[] PROGMEM =
{
{C,8}, {D,8}, {E,8}, {E,8},
{G,16},{G,16},
{A,8}, {A,8}, {A,8}, {A,8},
{G,24},{p,8}, {p, 1}, {p, 1},
{A,8}, {A,8}, {A,8}, {A,8},
{G,24},{p,8}, {p, 1}, {p, 1},
{F,8}, {F,8}, {F,8}, {F,8},
{E,16},{E,16},
{D,8}, {D,8}, {D,8}, {D,8},
{C,24},{p,8}, {p, 1}, {p, 1}
};
#endif /* PWM_NEWSONG_H */