Hallo Zusammen! Ich habe folgenden Aufbau: Winows XP, aktuellste Updates installiert Hardware mit ATMega88PA Controller AVRDragon zum deguggen via debugWire IAR AVR-EW 4.10A, mit "no optimizations" eingestellt AVR Studio 4.18b716 Nun kurz zum Programm: Ich will Licht über einen Taster ein und ausschalten. Dazu muss ich einen AD-Kanal benutzen (leider, so ist das Layout). Die AD-Werte (10bit) liegen bei 1023 bei Taster nicht gedrückt, bzw. bis maximal 256 Taster gedrückt. Solange der Taster gedrückt wird, soll nichts passieren, erst wenn er wieder losgelassen wird, da später auch noch dimmen implementiert werden soll. Jetzt zum Problem: Programm geschrieben, ausprobiert, geht nicht :( , aber nicht schlimm, man kann ja debuggen. Also debuggen gestarten . Breakpoints an den relevanten Stellen gesetzt und siehe da, Programm wird doch korrekt durchlaufen :) Licht geht an, bzw. aus. Also wieder probiert ohne Breakpoints geht doch nicht :(. Dabei ist das Programm wirklich sehr simpel gehalten und die Dauer des Betätigens des Tasters ist in beiden Fällen nahezu identisch (unterschied im us bis ms Bereich). Übrigens doktor ich jetzt schon gut echte 24 Stunden an diesem Problem und so langsam will ich den Fehler dem AVRStudio oder dem AVRDragon zuweisen. Kann mir bitte jemand sagen, was das setzen von Breakpoints bewirkt, bzw. warum das Programm mit Breakpoints läuft und ohne nicht? Gruß und vielen Dank, Bonna
>Kann mir bitte jemand sagen, was das setzen von Breakpoints bewirkt, >bzw. warum das Programm mit Breakpoints läuft und ohne nicht? Am Breakpoint hält das Programm an. Das verschafft wohl irgendeinem Vorgang Zeit fertig zu werden.
Ohne dein Programm zu kennen kann ich auch nur raten... hast du vielleicht ein Problem mit prellenden Tasten?
Ok. Das ist mir auch bekannt. Das Programm wartet über eine While Schleife das Beenden einer AD-Umwandlung ab bevor es weiterfährt. In der Schleife hängt es auch nicht, da andere Funktionalitäten klappen. Desweiteren sind alle Interrupts deaktiviert. Ich wüsste nicht, was noch während der Breakpoint Pause weiterabgearbeitet werden muss.
Wie gesagt, ohne Prog wird es schwer zu helfen. Prellende Tasten können durchaus auch sehr unterschiedliche Ergebnisse des ADC hervorrufen. Meines Wissens wird der µP bei einem Breakpoint sowieso gestoppt, damit kann das Programm nichts mehr tun (oder Fertig machen, außer einer Interupt-Routine die gerade vor den Breakpoint gestartet wurde)
Jaa, Leute! Ich müsste jetzt eigentlich bis zum Mittelpunkt der Erde versinken, so sehr schäme ich mich. Ihr hattet natürlich alle Recht. Da die Hardware keine Entprellung hat, muss ich natürlich eine in die Software integrieren. Das kommt davon, wenn man nur alle paar Jahre mal etwas Software schreibt. Asche auf mein Haupt und Euch allen vielen Dank und noch einen schönen Sonntagabend.
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.