Gast
#1262848
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