Hallo, habe mit bascom avr eine schleife in der alle 1 sekunde (verwendung von 'wait') etwas ausgegeben wird. Außerdem habe ich einen Timer-Interrupt der etwas zählt. Dummerweise stimmt das Ergebnis nicht. Sobald ich 'wait 1' auskommentiere, ist alles i.O. In der Doku steht auch, daß 'wait' im Zusammenhang mit Interrupts mit Vorsicht zu genießen ist. Kann mir jemand sagen, wie man dieses Problem umgeht ? Danke.
"wait" sollte man nur für die allererste Blinkschaltung ausprobieren und dann schnell wieder vergessen, weil der Controller in dieser Zeit nichts anderes macht, als warten. In der Regel muss man mit einem µController aber Taster abfragen, Display bedienen, Analogwerte messen usw. Wärend der Wartezeit macht er das aber nicht.
Normalerweiser werden beim Auslösen eines Interrupts doch alle "Aufgaben" unterbrochen, die ISR abgearbeitet, und wieder fortgesetzt. Es sei denn, "wait" deaktiviert alle Interrupts. Weiß jemand, wie die bascom avr "wait" routine diesbezüglich arbeitet?
Solche Ergebnisse kann ich bestätigen, irgendwo bastelt Bascom immer wieder nen disable interrupts in den hex-file wofür der Compiler das macht hängt mir auch zu hoch. Ich habs dann mal so gelöst, dass ich eine Schleife laufen lies, die 200-mal 50ms gewartet hat. (Befehl: waitms) Ist nicht besonders schön, aber funktionierte. Ja, Bascom funktioniert zwar grundsätzlich, aber mitunter sind die Ergebnisse nicht ganz das, was man erwartet (nur am Rande, ich arbeite viel und oft unter Bascom).
Bascom bastel kein Interrupt ins Hexfile es sei dem Ihr schaltet den Explicit ein. schau mal dort rein. http://bascom-forum.de
@bas_ratte Kannst Du das mal ein wenig genauer ausführen oder willst Du nur Leute auf eine Seite lotsen, auf der es von Pop-ups nur so wimmelt? Hochachtungsvoll Herbert von Caravan
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.