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

Periodenmessung; Anfängerfragen Kategorie: Programmierung C (von mat - 29.12.2009 22:54)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
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:

Re: Periodenmessung; Anfängerfragen (von PeterS - 30.12.2009 21:54)