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
Hi , Welcher AVR ? sind nur die Frequenzen zu ändern, od. das Puls-Pausen Verhältnis auch (PWM). Ansonsten einfach 2 Timer verwenden. Gruss Gerhard
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
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
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.