Ich möchte mit Bascom einen ATtiny13 aus dem Powerdown via Watchdog per
Interrupt aufwecken. Per Reset funktioniert es, aber per Interrupt
scheint das in Bascom nicht möglich zu sein. (Laut Datenblatt kann der
ATtiny13 das und es gibt auch eine gut erklärte App Note)
Die Register setzen ist ja kein Problem, nur "On Wtd" kennt Bascom
anscheinend nicht und das wird im Editor auch nicht farblich
hervorgehoben.
Im MCS-Bascom-Forum finde ich einige Einträge dazu, die aber mehr als 10
Jahre alt sind. Andererseits finde ich im Netz zahlreiche Bespiele, die
angeblich funktionieren.
Ich nutze Bascom 2.0.7.9 (Demo). Hat jemand eine Version in der das
möglich ist und welche ist das?
Oder funktioniert das in der kostenpflichtigen Vollversion? Auf der
Webseite steht allerdings nichts von Watchdog Interrupt:
https://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=103
"Interrupt programming: ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN,
ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD."
Bin gerade ratlos...
Der Watchdog funktioniert auch mit der Demo.
Er wird mit "Config Watchdog" und anschließend "Start Watchdog" scharf
geschaltet. Maximale Zeit für die Auslösung sind 8 Sekunden.
Winfried K. schrieb:> Der Watchdog funktioniert auch mit der Demo.> Er wird mit "Config Watchdog" und anschließend "Start Watchdog" scharf> geschaltet. Maximale Zeit für die Auslösung sind 8 Sekunden.
Das wissen wir doch alle schon!
Die offene Frage:
Ist man in der Lage den WDT Interrupt mit Bascom zu fangen/nutzen?
Oder kann die Sprache das nicht?
Du mußt einfach nur schauen, wie ein anderer Interupthandler aufgebaut
ist. Und das dann als Gerüst für den Watchdoginterrupt nehmen und ihm
den entsprechenden Vector zuweisen.
In C ist das ganz einfach, da nimmt man die Namen, die im Datenblatt
stehen, mit "_" für Leerzeichen und "_vect" am Ende.
Hi
>Da heißt es dann:>Or you can use the AVR name convention:>>OC2 , OVF2, ICP1, OC1A, OC1B, OVF1, OVF0, SPI, URXC, UDRE, UTXC, >ADCC, ERDY and
ACI.
>The available interrupts depend on the processor.
Der letzte Satz ist ausschlaggebend. Bascom kennt alle für
ensprechenden AVR vorhandenen Interrupts. Also auch den WDT, wenn
vohanden.
Wenn nicht, bleibt nur in MCUSR die RESET-Auslösende Flags zu
detektieren und entsprechend zu reagieren.
MfG Spess
Spess53 schrieb:> Also auch den WDT, wenn vohanden.
Der ist vorhanden beim ATTiny13.
Warum glaubst Du, dass ich schreibe:
MWS schrieb:> Dietmar S. schrieb:>> On Wtd>> On Watchtimerdog würde ich auch nicht kennen. :D
Aber für solch' dezente Andeutungen ist das Forum nichts, da muss der
derbe Keil kommen.
Spess53 schrieb:> <Warum glaubst Du, dass ich schreibe:>> Warum glaubst du das ich alle AVRs nach WDT-Interrupt untersuche?
Die Pointe ist Dir wohl verborgen geblieben, da hat auch der derbe Keil
nichts geholfen.
Selbst wenn Du vermutest, dass Du irgendwas durchsuchen sollst, dann
sicher nicht "alle AVRs", denn um alle ging's nicht, sondern im
Speziellen um:
Dietmar S. schrieb:> mit Bascom einen ATtiny13
UDietmar S. schrieb:> Per Reset funktioniert es, aber per Interrupt> scheint das in Bascom nicht möglich zu sein.Uwe D. schrieb:> Geht simpel:
Uwe, ist deine Lösung wirklich per Interrupt und nicht per Reset?
Dietmar möchte ja zum Beispiel alle 60 Sekunden blinken, das heisst es
muss über mehrere Watchdog-Unterbrechungen gezählt werden.
Könnte man natürlich über Eeprom machen, das kostet aber wiederum Strom
...
LG, Sebastian
Einfach Kopieren und im Simulator ausführen...
Eine ISR kann man machen, wer das unbedingt braucht. Der Tiny pennt beim
Powerdown ein, der WDT weckt ihn wieder und läuft da weiter wo er
eingepennt ist. Benutze ich für kleine SOLAR-Module und ein paar LEDs
und illuminiere damit den Garten im Winter.
Leider habe ich jetzt erst entdeckt, dass ich noch viele Antworten
bekam. Hatte mich damals im Forum abgemeldet und hier nicht mehr rein
gesehen. Also erst mal ein großes Danke für die vielen Infos! Ich werde
die Tage versuchen die Ratschläge umzusetzen bzw. auszuprobieren.