Intitial commit

This commit is contained in:
2016-09-11 12:46:39 +02:00
parent 16458cae5c
commit a8ca0acd0b
5 changed files with 237 additions and 0 deletions

103
player.c Normal file
View File

@@ -0,0 +1,103 @@
#include <wiringPi.h>
#include <softTone.h>
#include "player.h"
#include "pitches.h"
#define PIN 0 //Realer pin 11
const unsigned int introlength = 25;
int intro[] = {
//intro
NOTE_DS5,
NOTE_E5,
NOTE_FS5,
NOTE_B5,
NOTE_DS5,
NOTE_E5,
NOTE_FS5,
NOTE_B5,
NOTE_CS6,
NOTE_DS6,
NOTE_CS6,
NOTE_AS5,
NOTE_B5,
NOTE_FS5,
NOTE_DS5,
NOTE_E5,
NOTE_FS5,
NOTE_B5,
NOTE_CS6,
NOTE_AS5,
NOTE_B5,
NOTE_CS6,
NOTE_E6,
NOTE_DS6,
NOTE_E6,
NOTE_B5,
};
// Noten Dauern: 4 --> Viertel Note, 8 --> Achtel Note usw.
int noteDurations[] = {
16,
16,
8,
8,
16,
16,
16,
16,
16,
16,
16,
16,
8, //13
8,
16,
16,
8,
8,
16,
16,
16,
16,
16,
16,
16,
16 //25 intro
};
int setupSoftTone(void) {
int returncode = 0;
returncode += wiringPiSetup(); //Braucht root Rechte
returncode += softToneCreate(PIN);
return returncode; // >0 --> error
}
void playIntro(void) {
int nDuration, pauseBetweenNotes, thisNote;
for (thisNote = 0; thisNote < introlength; thisNote++) {
/**
* Um die Zeit der Note zu berechnen muss eine Sekunde durch
* die Laenge der Note geteilt werden.
*/
nDuration = 1000 / noteDurations[thisNote];
softToneWrite(PIN, intro[thisNote]);
delay(nDuration);
softToneWrite(PIN, 0);
/**
* Um die Noten voneinander zu unterscheiden,
* sollte eine Pause dazwischen sein.
* Diese wird später mit dem Beschleunigungssensor
* gesteuert. Vorerst sind es aber 30%
*/
pauseBetweenNotes = nDuration * 1.30;
delay(pauseBetweenNotes);
// Sicherheitshalber Ton ausschalten
softToneWrite(PIN, 0);
}
}