sitemap link mailform link home

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;
}

.

Letzte Änderung:
March 23. 2023 21:04:40
«    top    »