mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik freq. Ausgabe Bascom


Autor: AVR Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich möchte gerne mit Bascom zwei frequenzen gleichzeitig ausgeben.
Ob an einem oder an zwei Pins ist egal. Die Freq liegen im Bereich von
600 - 1400 Hz.
DTMF Out geht nicht da ich die Freq. selbst festlegen muss.

eine freq. mit sound befehl ist ja kein Prob aber zweio?

hat jemand einen Lösungsansatz?

Vielen vielen Dank

Jürgen

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ,

Welcher AVR ?
sind nur die Frequenzen zu ändern,
od. das Puls-Pausen Verhältnis auch (PWM).
Ansonsten einfach 2 Timer verwenden.


Gruss Gerhard

Autor: AVR Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also das wär ein 90S8515.
Es geht nur darum zwei frequnezen zu erzeugen (also die DTMF Funktion
nur mit anderen Freq.) Das. P-P Verh. ist egal.

Wie kann man das mit Timern machen? Hab das bis jetzt nur mit dem
Soundbefehl getan. Evtl. ein kleines Beispiel?

Oder kannh man die DTMF funktion ändern?

Danke schonmal.
Jürgen

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
habs mal schnell an m8 probiert
Die Werte musst du dir noch anpassen

$regfile = "m8def.dat"
$crystal = 8000000

Dim Wert1 As Byte
Dim Wert2 As Byte
Wert1 = 20
Wert2 = 100

Config Portb = Output
Portb = 255

Config Timer0 = Timer , Prescale = 64
Config Timer2 = Timer , Prescale = 64

On Timer0 Timer1_isr
On Timer2 Timer2_isr

Enable Timer0
Enable Timer2
Enable Interrupts

Do
Loop
End

Timer0_isr:
    Portb.0 = Not Pinb.0
    Timer0 = 255 - Wert1
Return
Timer2_isr:
    Portb.1 = Not Pinb.1
    Timer0 = 255 - Wert2
Return


Gruss Gerhard

Autor: AVR Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank schonmal.
Kanns leider erst heut abend ausprobieren...

Noch eine "letzte" Frage eines Neulings:
- Wie kann ich die Werte für Wert1&2 um auf m,eine gew. Freq. zu kommen
berechnenn ??

Vielen Dannk
Gruß
Jürgen

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ,

AVR Takt (Quarz) ist bei mir 8000000 (8Mhz)
diese dividierst du durch den Wert bei Prescale
Bei mir 64  (Kann man auf 1, 8, 64, 256,1024 setzen)
Das heisst es dauert 64 Takte dass der Timer Wert um eins erhöht wird
Sind wir schon mal bei 125 khz.
Schau mal in die Bascomhilfe !

Mit "Timer0 = 255 - Wert1" gibst du dem Timer einen Startwert,
bei dem er zu zählen beginnt.
je grösser Wert1 ist (dieser wird ja von 255 abgezogen) um so länger
dauert es bis die der Timer überläuft.
Dieser läuft bei 255 über d.h. die Timer ISR wird ausgeführt.
und der Pin umgeschaltet.
Bei Wert 100 wird der Pin dann also 1/8000000 x 64 x 100 = 0.0008 s
umgeschaltet.

Bin mir jetzt nicht sicher ob der 8515 einen Timer2 besitzt.
Wenn nicht dann Timer1 verwenden, dieser ist aber 16Bit breit,
der zählt also bis 65536 !!!

Gruss Gerhard

Autor: AVR Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
 P E R F E K T 
Danke

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.