Laufwerkmusik geht doch nicht

OP #3759918
Lesenswert?

MoinMoin

ich mal wieder. Nachdem es bis gestern nun lief, und ich 8 
unterschiedliche Töne gleichzeitig ausgeben konnte, geht es nun wieder 
nicht mehr.

Nun lädt er mir meine neuen Werte nicht mehr ins Tonregister ?!?!?!
1
int main(void)
2
{
3
    uint8_t i = 0;
4
    uint8_t n = 0;
5
    
6
    for (i = 0; i < 8; i++)
7
    {
8
        Kanal.Tonhoehe[i] = Melodie1[0].Tonhoehen[i];
9
    }
10
    
11
    init();    
12
    TEMPO = (45000/BPM);
13
    
14
    
15
    while(1)
16
    {
17
        //while (n < 20)                          //Prüfen ob Anzahl gespielte Töne kleiner als Liste
18
       // {
19
             if (SysTick_64tel == Melodie1[n].Wechsel_bei64tel)         //"Warten" bis es Zeit für den nächsten Tonwechsel ist
20
            {
21
                n++;                                                    //"Pseudozeiger" auf die nächste Toneinstellung setzen
22
            
23
                for (i = 0; i < 8; i++)
24
                {
25
                    Kanal.Tonhoehe[i] = Melodie1[n].Tonhoehen[i];       //Die neuen Tonhöhen übergeben
26
                }
27
            }
28
       // }
29
        
30
    if (n >= 20)                          //Falls alle Töne gespielt, wieder auf Anfang setzen
31
    {    
32
        n = 0;
33
      SysTick_64tel = 0;
34
    }
35
    }
36
}

obwohl die Werte für Systick_64tel steigen, und auch im 
Melodie1[n].Wechsel_bei64tel die richtigen Werte stehen, wird der 
Vergleich nie ausgeführt, bzw der Vergleich wird nie als gleich erkannt, 
und somit auch keine neuen Werte in Kanal.Tonhoehe geladen....

Im Anhang nochmal der gesamte Quelltext. Wie gesagt, bis gestern ging 
es, und eigentlich hab ich nichts geändert..... ?!?!?!?!

MfG Chaos
Angehängte Dateien:
Gast #3760002
Lesenswert?

Sei froh dass dir das passiert ist.
Du hast einen Fehler gemacht, der jeden Anfänger mal passiert.

Jetzt ist der Zeitpunkt, sich über eine Versionsverwaltung Gedanken zu 
machen (z.B. git). Danach willst du nie wieder ohne entwickeln.
OP #3760014
Lesenswert?

so so git.. noch nie von gehört, gleich mal Tante Google fragen.

und um es nochmal zu verdeutlichen

Systick_64tel und Melodie1[n].Wechsel_bei64tel stehen beide auf 32, aber 
dennoch wird der Teil in den geschweiften Klammern nicht ausgeführt.

if (Systick_64tel == Melodie[n].Wechsel_bei64tel)
{
   neue Töne laden
}

aber die neuen Töne werden nicht geladen.


Woran kann das liegen?
OP #3760287
Lesenswert?

AAAHHHHHHH!!!! klar!

Ich hab zuhaus die Optimierungen aus, und am andren Rechner hab ich nur 
das c-file geladen (per mail geschickt, die USB-Sticks gehen entweder 
viel zu leicht verloren, oder sind viieeel zu schwer :D) und ein neues 
Projekt erstellt.

Dann ließ sich ja doch alles rekonstruieren!! =)

vielen Dank für deine Aufklärung, du hast meinen Glauben an die Logik 
und all den Krams wiederhergestellt.

MfG Chaos
Gast #3761111
Lesenswert?

Kleiner Tip:
Wenn Du noch nicht mit einer Versionsverwaltung arbeitest, dann packe 
Dir jeden funktionsfähigen Stand (das ganze Projektverzeichnis) einfach 
komplett in ein ZIP und gib diesem einen eindeutigen Namen.
Ist zwar nicht mit einer Versionierung zu vergleichen, aber wenigstens 
hast Du dann Dein altes Zeug noch...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren