mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frequenz mit Mega32 erzeugen (Anfängerfrage)


Autor: Anthrax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche mit Bascom eine Frequenz zwischen 0 und 313 Herz mit einem 
Mega32 zu erzeugen, allerdings weiß ich noch nicht genau, wie ich das 
angehen soll.

Folgendes soll mein Programm machen:
Wert (Drehzahl zwischen 0 und 9000 Rpm) von RS232 Schnittstelle einlesen 
und aus dem Wert an einem bestimmten Port die Frequenz erzeugen.
Hierbei entsprechen 0 Umdrehungen = 0 Hz und 9000 Umdrehungen = 313 Hz.

Die Einleseprozedur funktioniert soweit schon super. Nur das Erzeugen 
der notwendigen Frequenz klappt noch nicht.

Nehme ich nun ein Tool zur Timer-/Frequenzberechnung zur Hilfe, bekomme 
ich im Ergebnis mal einen Prescaler von 1, 8, 64 oder 256. Zur Laufzeit 
kann ich diesen Wert allerdings nicht ändern. Mit nur einem festen 
Prescaler werde ich sicherlich einige Ungenauigkeiten bekommen. Dies ist 
aber nicht so schlimm.

Ich hoffe Ihr könnt mir weiter helfen.

MfG

Anthrax

Autor: Jörn A. (joern_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also entweder per software oder hardware PWM ist das einfachste...

falls das das einzige ist was du machen willst einfach

While(1)

PORTAx = 0x01;
_delay _ms(.....)
PORTAx = 0x00;
_delay _ms(.....)

Autor: Anthrax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörn,

PWM benutze ich schon für Tank- und Temperaturanzeige. Für Drehzahl und 
Geschwindigkeit brauche ich 2x Frequenz (0 - 313 Hz).

MfG

Anthrax

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anthrax schrieb:

> Nehme ich nun ein Tool zur Timer-/Frequenzberechnung zur Hilfe, bekomme
> ich im Ergebnis mal einen Prescaler von 1, 8, 64 oder 256. Zur Laufzeit
> kann ich diesen Wert allerdings nicht ändern.

Warum nicht?

Klar kann man den ändern. Nur nicht mit dem BASCOM Config Statement. 
Aber auch in BASCOM kann man jederzeit an die Register der Timer direkt 
ran und die verändern. Man muss nur das Datenblatt des Prozessors 
studieren und sich raussuchen welche Bits in welchem Register gesetzt 
werden müssen.

Also: Verlasse den ausgetreteten BASCOM Pfad und schau dir einmal an, 
was dein Prozessor alles kann, was dir BASCOM nicht als fertiges Element 
zur Verfügung steht. Das Datenblatt ist dein Freund. Nutze es!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.