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

Re: Messung niedriger Frequenzen & 3 Fragen Kategorie: Programmierung Basic (von Peter W. - 14.08.2007 8:47)
Als Antwort auf Messung niedriger Frequenzen & 3 Fragen von Mike - 13.08.2007 14:53
Ich nutze:
C-Control Pro Mega32

Zu1. Die Idee, über Interrupt die Periodendauer des Signals zu messen, ist gut! Du könntest
Counter0 zum Zählen der eingegangenen positiven Signalflanken und Timer1, mit 16Bit Aulösung,
zur Messung der Periodendauer nehmen, um durch eine Mittelwertbildung über n Signalflanken
die Periodendauer des Eingangssignals zu berechnen.

Zu2. Das ist in C der s.g. cast-Operator zur expliziten Umandlung eines Datentyps:

float f;
int i;
int funktion( int );

   i = funktion( (int) f );

Zu3. Du kannst Daten auch im Flash speichern, wie es z.B. ein Bootloader oder ein Datenlogger
macht, aber in den Libraries der C-Control Pro gibt es dazu keine Funktionen. Da der Compiler der
C-Control Pro einen speziellen Byte-Code aus deinem Programm erzeugt und keinen OP-Code
für den Mikrocontroller, bist du, wenn du deine Programme mit diesem Compiler erzeugst, auf
die Funktionen in den Libraries beschränkt.

zu4. Wenn du die Dokumentation aufmerksam gelesen hättest, wäre dir aufgefallen, dass man den
Spannungsregler ohne Kühlkörper nur mit maximal 200mA belasten kann! Lösung: Kühlkörper für
den Spannungsregler kaufen!

Peter W.

> Hallo, ich bin Mega32-Neuling und habe 4 Fragen:
>
> 1) Ich möchte die (niedrige) Pulsfrequenz zweier digitalen Signale messen.  Das eine Signal läuft
> normalerweise zwischen ca. 7 und 21 Hz, das andere zwischen 0 und 130 Hz.  Wenn ich das mit Counter
> mache, die ich einmal pro Sekunde auslese, ist der Rundungsfehler gro� (schlechte Auflösung z.B. wenn
> ich 8 statt 7 Pulse zähle ist das schon 14% Fehler! Au�erdem ist eine Update-Rate von 1 Sekunde etwas
> zu langsam.  Wie könnte ich das genauer und mit schnellerer Update-Rate machen?  Ich überlege, einen
> Timer mit z.B. ca. 1000 Hz laufen zu lassen, über Interrupts die Flanken meiner Signale zu überwachen
> und die verstrichene Timerzahl als Periode verwenden.  Geht das?  Habt Ihr andere Ideen?
>
> 2) Ich möchte ein Float (Single-) Wert an eine Sub senden, die Integer erwartet.  Gibt es eine Art int(x)
> Funktion, um von Single nach Integer umzurechnen, d.h. Nachkommastellen verwerfen?
>
> 3) Ich möchte nach jeder Nutzung meines Programms einige Daten für's nächste Mal sowie für's spätere
> Downloaden ablegen.  Geht das nur im EEPROM oder kann ich auch z.B. im Flash ablegen?  Wenn ja, wie?
>
> 4) Der Spannungsregler 7805 auf dem Evaluation Board wird verdammt warm! (Bestimmt mindestens 70 Grad
> am Metallteil.)  Ist das normal?  
> Ich habe noch nichts an die Ein- oder Ausgänge gelegt. Liegt das daran, da� die Hintergrundbeleuchtung
> des LCD soviel Strom zieht?  Als Versorgung verwende ich ein Steckernetzteil mit 9V DC und 600 mA.
>
> Vielen Dank! -- Mike


    Antwort schreiben


Antworten:

Re: Messung niedriger Frequenzen & 3 Fragen (von Mike - 14.08.2007 16:03)
    Re: Messung niedriger Frequenzen & 3 Fragen (von PeterS - 15.08.2007 14:54)