BASCOM: Interrupt während waitms-Befehl

Gast #1190297
Guten Morgen,

ich habe eine Uhr mit einem 2313 und einem 8MHz Quarz gebaut.
Der Timer läuft quasi nach einem Minute immer über und führt die Befehle 
in der Int-Routine aus, welche natürlich kürzer als eine Sekunde sind.

Nun eine Verständnisfrage, auch wenn waitms verpönt ist:
Wenn sind ein waitms 5000 Befehl (nur fürs Verständnis!) innerhalb des 
Codes befindet, führt der Timer trotzdem den Interrupt jede Sunde aus 
und somit die Befehle aus der Interruptroutine?? Oder wird das durch das 
waitms unterbunden???

Danke schon mal

marc
Gast
Ein Interruptroutine wird immer ausgeführt, ausser, der Prozessor führt 
gerade eine andere Interruptroutine aus. DAnn wird die zweite ISR erst 
nach Ende der ertsen ausgeführt. Ob dein waitms (BASCOM?) intern in 
einer ISR läuft, musst du selber rausfinden. Das ist zwar sehr 
unwahrscheinlich, aber ...

Oliver
marc wrote:

> Nun eine Verständnisfrage, auch wenn waitms verpönt ist:
> Wenn sind ein waitms 5000 Befehl (nur fürs Verständnis!) innerhalb des
> Codes befindet, führt der Timer trotzdem den Interrupt jede Sunde aus
> und somit die Befehle aus der Interruptroutine?? Oder wird das durch das
> waitms unterbunden???

Ich sach mal, das muß in der Bascom-Hilfe/Doku stehen.

Beim AVR-GCC wird Delay mit Zählschleifen gemacht, d.h. alle Interrupts 
werden ausgeführt und das Delay verlängert sich um diese 
Ausführungszeit.
Ein Delay wird daher immer nur dann benutzt, wenn ein minimales Timing 
einzuhalten ist.


Ein "waitms 5000" ist natürlich der Tod jeglicher Benutzerführung, kein 
Mensch ist bereit, immer 5s lang auf ne Taste zu drücken.
Außer in wenigen Spezialfällen ist daher ein "waitms 5000" vollkommen 
sinnfrei.
Waitms sollte generell sehr sparsam und überlegt verwendet werden, es 
vernichtet ja wertvolle CPU-Zeit.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.