Programmierung 2
Ein Array kann viele Werte enthalten - z.B. ein ganzes Lied
Wir beschäftigen und nun mit ARRAYS und FOR-Schleifen:
// FOR-Schleife und ARRAY
# include <stdlib.h> # include <avr/interrupt.h> # include "display.h" # include "delay.h" # include "nikospiel.c"
// Wir verbessern die Lesbarkeit, indem wir die Tonhöhen den Notennamen zuordnen // Compiler-Direktiven:
# define C1 90 # define D1 80 # define E1 70 # define F1 65 # define G1 59 # define A1 52 # define H1 46 # define C2 43 # define D2 38
// Unser Song steckt in einem Array mit globaler Gültigkeit: int Song[16] = {C1, D1, E1, F1, G1, A1, G1, G1, F1, D1, H1, H1, G1, E1, C2, C2};
int PlayTones(void) { // Aus dem Array Song[] werden dann nacheinander die Notenwerte ausgelesen: for(int i=0; i<16; i++) { OCR0A=Song[i]; // Tonhöhe festlegen TCCR0A = 0b00010010; // Ton an Ssleep(1); TCCR0A = 0b00000010; // Ton aus! } return 0; }
int main(void) { AVRInit(); InitDisplay(); ClearDisplay(); while(1) { PlayTones(); Ssleep(2); } return 0; } |
.