HILFE - ATmega16

Gast #1154931
Lesenswert?
• ▲
▼
Hallo,

ich versuche grade auf einer selbst zusammengelöteten Platine
(Schaltplan siehe Anhang) eine Aufgabe zu lösen, komme allerdings
überhaupt nicht voran, da ich keine Ahnung von C-Programmierung oder
auch von Mikrocontrollern habe. Vielleicht kann mir ja jemand helfen -
habe auch schon mal ein Probeprogramm (Lauflich mit AD-Wandler) laufen
lassen, verstehe dabei aber auch schon (mangels Kenntnissen) wie das
genau arbeitet.

Die beiden angegebenen Funktionen sollen gemeinsam im Atmega16 des
Demo-Boards realisiert werden! Die Beschreibung der Funktionalität soll
in der Programmiersprache C erfolgen!

Realisieren eines Lauflichts:
Mit einem der beiden Potentiometer soll die Frequenz (Weiterschaltung
von einem Status in den folgenden Status) des Lauflichts im Bereich von
0Hz (Stillstand) bis 2Hz (Genauigkeit: +/-0,1Hz) möglichst fließend
einstellbar sein. Die Taktung soll mit Hilfe von einem der eingebauten
Timer realisiert werden und es soll mindestens eine zugehörige
Interruptserviceroutine sinnvoll verwendet werden! Hierzu soll
mindestens mit einer Genauigkeit von 10 Bit gearbeitet werden. Durch die
Schalter 1 (Bit 0) und 2 (Bit 1) (Beschriftung beachten!) sollen die
verschiedenen Darstellungen des Lauflichts ausgewählt werden können. Ist
ein weiterer Schalter aktiviert soll die Funktionalität des Lauflichts
deaktiviert sein um eine Nutzung der LED's für andere Aufgaben zu
ermöglichen. Bei
Umschaltung soll das nun ausgewählte Lauflicht, beginnend im ersten
Zustand, in der beschriebenen Abfolge mit der eingestellten Frequenz
durchlaufen werden.
Diese seien wie folgt belegt1 :
„00“: „+-------“ → „-+------“ → „--+-----“ → „---+----“ → „----+---“ →
„-----+--“ → „------+-“ → „-------+“ → usw. mit „+-------“
„01“: „+------+“ → „-+----+-“ → „--+--+--“ → „---++---“ → „--+--+--“ →
„-+----+-“ → „+------+“ → „--------“ → usw. mit „+------+“
„10“: „++------“ → „-++-----“ → „--++----“ → „---++---“ → „----++--“ →
„-----++-“ → „------++“ → „-----++-“ → „----++--“ → „---++---“ →
„--++----“ → „-++-----“ → usw. mit „++------“
„11“: „+-------“ → „++------“ → „+++-----“ → „++++----“ → „+++++---“ →
„++++++--“ → „+++++++-“ → „++++++++“ → „-+++++++“ → „--++++++“ →
„---+++++“ → „----++++“ → „-----+++“ → „------++“ → „-------+“ →
„--------“ → usw. mit „+-------“
Grundeinstellung: Zu Beginn sei die mit S7 gewählte Variante
voreingestellt!

Realisieren einer Addition:
Ist das Lauflicht nicht aktiv sollen die Stellungen beider Potentiometer
zyklisch, in der zugehörigen Interruptserviceroutine, mit einer
Genauigkeit von 7 Bit ermittelt werden. In der Hauptroutine der zu
entwickelnden Software sollen diese Werte nun addiert werden. Das
Ergebnis
der Addition dieser beiden 7-Bit-Zahlen soll über die 8 LED's ausgegeben
werden. Das Leuchten einer LED signalisiert dass dieses Bit gesetzt ist!
Angehängte Dateien:

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.