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: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum