freq. Ausgabe Bascom

Gast #206927
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
Gast #206929
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
Gast #206930
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
Gast #206931
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
Gast #206932
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.