Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Periodenmessung; Anfängerfragen Kategorie: Programmierung C (von PeterS - 30.12.2009 21:54)
Als Antwort auf Periodenmessung; Anfängerfragen von mat - 29.12.2009 22:54


Hallo mat,

>Andere Fragen: Ist es möglich, die zweite Hälfte des 128K-RAMs zu nutzen, wenn man PD4 per Programm
>bedient? Es ist nicht befriedigend, die Hälfte das RAMs brach liegen zu lassen.
Nein.

>Gibt es Schlüsselwörter, die nirgends erklärt sind? In manchen Beispielen wird z. B. 'LED1'
>verwendet, ohne dass zuvor eine entsprechende Initialisierung erfolgt wäre. In anderen Programmen
>hingegen sind die Ports sehr wohl im Programmkopf zugewiesen worden.
Das sind keine Schlüsselwörter. Es gibt #defines die in IntFunc_Lib.cc schon vordefiniert sind.

Gruss Peter



> Hallo!
> Die Messaufgabe, die sich mir stellt, besteht darin, eine Folge von Rechteckimpulsen mit variablem
> Tastverhältnis mit möglichst hoher Auflösung zu messen, in einem Array abzuspeichern und gleich-
> zeitig einfache arithmetische Berechnungen mit den erhaltenen Werten durchzufĂĽhren. Die Impulse
> bewegen sich in einem Bereich von 2 ms bis 100 ms Dauer. Wegen der viel versprechenden technischen
> Daten und hier besonders der Funktion der Periodenmessung fiel meine Wahl auf die C-Control Pro
> Mega 128. Leider funktioniert die Periodenmessung nicht wie erhofft. Wegen unplausibler Ergebnisse
> habe ich mich etwas genauer damit befassen mĂĽssen und gefunden, dass nur jeder zweite Impuls
> gemessen wird! Die mitgelieferten Programmierbeispiele fĂĽhren in die Irre, da nur von der Mega128
> selbst erzeugte Impulse ausgewertet werden, die wegen der konstanten Länge nicht unterscheidbar
> sind. Wenn ich hingegen eine Folge individueller Impulse mit einem Funktionsgenerator erzeuge,
> ist das Phänomen sofort erkennbar. Es liegt offenbar daran, dass jede neue Periodenmessung mit dem
> Befehl Timer_T3PM(1,PS_64); eingeleitet werden muss. Da das erst geschehen kann, wenn zuvor der
> dazugehörige Interrupt ausgewertet worden ist, hat natürlich die nächste Periode bereits begonnen,
> und die Messung kann erst mit der steigenden Flanke der darauf folgenden Periode beginnen. Der
> Beweis ist, dass bei der Pulsweitenmessung jeder Impuls ausgewertet wird, weil die
> Initialisierung des Zählers ja in der nachfolgenden low-Phase erfolgt. Die schöne Erklärung der
> Capture-Funktion in der Datei 'ATmega128.pdf' Seite 116 ff. geht darauf leider nicht ein. Sinn
> würde die Funktion machen, wenn der Zähler bei jedem Interrupt sofort auf Null gesetzt würde! Wei�
> jemand eine Lösung? Oder habe ich mich verkauft mit dem Produkt?
>
> Andere Fragen: Ist es möglich, die zweite Hälfte des 128K-RAMs zu nutzen, wenn man PD4 per Programm
> bedient? Es ist nicht befriedigend, die Hälfte das RAMs brach liegen zu lassen.
>
> Gibt es Schlüsselwörter, die nirgends erklärt sind? In manchen Beispielen wird z. B. 'LED1'
> verwendet, ohne dass zuvor eine entsprechende Initialisierung erfolgt wäre. In anderen Programmen
> hingegen sind die Ports sehr wohl im Programmkopf zugewiesen worden.
>
> Gibt es eine Systematik in der an sich sehr schönen Tabelle 'Pinzuordnung', was die Inhalte der
> Spalten 'Name1', 'Name2' und 'Intern' betrifft?
>
> Ich wünsche allen Elektronikfreunden ein schönes neues Jahr!
>
> mat


    Antwort schreiben


Antworten: