mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR_Programmierung eines uController


Autor: Marcus Nippi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich hab gestern in der Schule eine Aufgabenstellung für ein 
Microcontrollerboard bekommen, programmiert wird im AVR, und weis nicht 
wie ich anfangen soll?

Die Software ist für einen ATmega16

Hier die Aufgabenstellung:

Ein uController Programm ist zu erstellen, dass die Frequenz eines 
ADC-Port des uControllers angelegten Signals misst und über die 
7-Segment-Anzeige ausgibt.
Alternative erfolgt die Anzeige der Signalamplitude, wenn Port C, Pin4 
auf Masse gelegt ist
Das Programme ist so ausführlich mit Kommentaren zu versehen, dass ein 
HTL-Absolvent dieses vollständig verstehen kann.

Teil 1
Programmieren sie eine Funktion ausgabe(unsigned int wert) die den 
inhalt der Variablen werte an der 7-Segment-Anzeige ausgibt.
Programmieren Sie eine Funktion readADC(void), die den Wert des ADC 
einliest und zurückgibt.

Teil2
Programmieren Sie die Funktion get_signal_period(int threshold, die den 
16-Bit-Timer
startet, soblad der ADC-Wert kleiner als -threshold und diesen wieder 
stoppt,
sobald der ADC-Wert kleiner als -threshold ist. Die Funktion gibt den 
Timer-Inhalt zurück.
Konfigurieren sie de Prescaler des Timers dazu so, dass er fmin nicht 
überläuft und bei fmax mindestens einen Wert von 2 erreicht.

Teil3
Programmieren Sie die Funktion get_signal_amplitude(int threshold), die 
innerhalb einer Periodendauer des Eingangssignals den Maximalwert 
ermittelt und zurückgibt.
Ist Port C, Pin 4 auf Masse gelegt, dann geben Sie die Amplitude an der 
7-Segment-Anzeige aus.

Teil4
Verknüpfen Sie die erstellten Funktionen, um die Frequenz bzw. die 
Amplitude des am ADC angelegten Signals an der 7-Segment-Anzeige.

Ich hoffe ihr könnt mir helfen

MFG Marc

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Programme ist so ausführlich mit Kommentaren zu versehen, dass ein
> HTL-Absolvent dieses vollständig verstehen kann.

oje, die aufgabe ist unlösbar!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verschoben, da kein Bezug zu "PC-Programmierung" erkennbar.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du bist nicht, rein zufällig, an derselben HTL wie Thomas Adam 
(=>Beitrag "Software Akku - Ladeschaltung ATmega")?

So, mit welchem Teil der Aufgabe hast du dein Problem? Wo hängts?

Eine komplett vorgekaute Lösung für Punkt 1…4 wird dir hier niemand 
schreiben, bei konkreten Problemen wird dir aber sicher schnell 
geholfen.

Autor: Marcus Nippi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja bei der Teilaufgabe 2 henge ich?

Wie funktioniert das mit dem ADC wert, mit fmin und fmax?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcus Nippi schrieb:
> Ja bei der Teilaufgabe 2 henge ich?
>
> Wie funktioniert das mit dem ADC wert, mit fmin und fmax?

ADC-Wert einlesen geht schon? (⇒ 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...)
dann, fmin und fmax sind vorgegeben, oder?
Aus der Frequenz die Periodendauer ausrechnen, der Timer muss dann so 
schnell laufen, dass er innerhalb der minimalen Periodendauer (ergibt 
sich aus fmax) mindestens zweimal zählt, in der maximalen Periodendauer 
(aus fmin) aber nicht öfter als 2^16 mal zuschlägt.
Nun aus dem Datenblatt geeignete Timer-Settings suchen.
♨

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fmin und fmax sollten wohl von der Aufgabenstellung vorgegeben werden.

Ausserdem muss ein "kleiner" durch "groesser" ersetzt werden.

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.