www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mit Multitasking?


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Bin noch Anfänger in sachen Mikrocontroller und Programmieren.
Nun habe ich es geschafft,
ein Display anzusteuern.
Nach drücken einer Taste erscheint ein Text für 3s,
und dann wird das Display gelöscht.
Diese Zeitverzögerung habe ich in C mit delay programmiert.

Nun mein Problem: Der Kontroller soll ständig kurze Impulse ausgeben.
Wenn ich das nun mit dem Display einbinden möchte,
geht das natürlich nicht, da das ganze Programm dann für die 3s steht.
Wie kann ich das Problem lösen, dass sowohl Impulse ausgegeben werden,
als auch die Zeitverzögerung funktioniert?
Mit einem Timer und und einer Schleife die hochzählt?
Ein kurzes Codebeispiel in C wäre echt super,
da ich noch nie einen timer benutzt habe.
Habt schonmal vielen Dank!
mfG
Jens

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

elegant könntest du das mit einem timer-interrupt lösen.
der timer sprint immer bei einem überlauf in die von dir anzugebende
routine und führt den code aus, der hinterlegt ist. den timer kannst du
aus der betriebsfrequenz des avr speisen oder durch ein externes
clock-signal, muss dann in der configuration festgelegt werden.

wenn du sysclock (= quarz oder interner oszillator) verwendest, kannst
du die intervalle mit dem prescaler und dem 'vorladewert' des timers
festlegen.
da der timer (8bit bei 256, 16bit bei 16536) überläuft und der
interrupt ausgelöst wird, kannst du z.b. 'timer0 = 240' vorgeben,
dann sind es nur 16 ticks bis zum nächsten überlauf -> interrupt.
must nur aufpassen, dass der code innerhalb dieser zeitspanne
abgearbeitet werden kann.

gruss, harry

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.