Hi, ich hab das Problem, das sich ein banales: volatile int Parameter[5]={0,1,2,3,4}; Array verhält als wenn es "schreibgeschütz" wäre. es fällt mir schwer das besser zu beschreiben. ich hab das Array wie oben deklariert. und sehe mittels LCD das hinter jedem Parameter[i] für i = {0..5} auch der wert steht. ich kann innerhalb einer funktion auch einen wert verändern z.b. mit Parameter[n]++; doch sobald ich z.B auf Parameter[n+1] aus dem array zugreife scheint der wert den ich vorher verändert habe komplett "vergessen" zu sein. und lese beim nächsten zugriff auf das array wieder den Wert mit dem ich das array initialisiert habe ... Hilfe !!! Grüße, ein komplett ratloser Stefan PS: ich kann auch nochmal den kompletten source anhängen wenn sich das mal jemand ansehen möchte
> PS: ich kann auch nochmal den kompletten source anhängen wenn > sich das mal jemand ansehen möchte Ja, etwas mehr Code wäre schon hilfreich. Du musst aber bitte nicht alles anhängen, sondern wenn möglich ein Minimalbeispiel, bei dem das beschriebene Verhalten auftritt. Alles Unnötige weglassen, es sollte aber noch compilierbar sein.
Hallo Chris, ich hab versucht das ganze etwas einzudampfen... in der angehängten version hab ich die initialisierung des Arrays "Parameter" weggelassen. Der Effekt ist aber gleiche wie bereits beschrieben. In der Angehängten Datei sieht der Programmablauf ungefär so aus: Timer 2 sorgt für einen "Systemtakt". in Main wird Port A gepollt, und entprellt. sobald eine "entprellte" Taste in "Key" vorliegt, wird KeyState auf den Wert "ProcessKey" gesetzt. Menustate zeigt auf den aktuell zu "managende" Menueeintrag. Mit array[MenuState](Key,MenuState); wird dann eine Funktion ( siehe deklaration array[]={...} ) quasi in abhängikeit des Menüindexes "MenuState" gecalled. innerhalb der aufgerufenen funktion Z.B. "ServoL" wird dann ProcessKeys aufgerufen. Von ProcessKeys erwarte ich, das sich - sobald die Bitkombi "PLUS" oder "Minus" gedrückt wird, im (imho global deffinierten ) array "Parameter" die werte veränderen. das passiert auch, nur - sobald ich mit der "Menu" Taste den nächsten MenuState auswähle - solange bis ich wieder im selben "Menü" bin steht wieder "0" bzw. der initialisierte Wert in Parameter[MenuState] ich hoffe Du kommst mit dem Spagetti-Code klar. Grüße, Stefan
Hallo Criss, ich habs ... Deppenfehler ... beim aufruf von der in array gespeicherten funktionen an einen index gesprungen den es nicht gibt. d.h. das Programm hat immer wieder bei init(); angefangen ... hggggrrrrr.... Grüße, Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.