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.