mikron
31.07.2011, 13:37
Hallo!
Ich bin AVR-Einsteiger und habe folgendes Problem:
Mit dem unten aufgeführten Programm erzeuge ich einen Dauerton.
Durch die Verwendung von Timer1 wird dazu kein weiterer Programmschritt
benötigt, der AVR ist arbeitslos (siehe Roland Walters Lehrbuch S.114).
Nun möchte ich aber den Ton im weiteren Programm ein- und ausschalten
können, z.B. im Takte von Morsezeichen. Bis jetzt habe ich noch keine
saubere Lösung gefunden, wie ich dies realisieren kann.
Habe bisher versucht, zum ausschalten den PIN PB1 zum ausschalten als
Eingang zu definieren, aber das funktioniert leider nicht so wie
gewünscht.
Frage an die Freaks: Wie kann ich das lösen?
Danke im voraus,
Bernd
'================================================= ===================
' BASCOM - ATMega 8-16 - Tonausgabe mit Timer 1 (1,0017391 ... kHz)
' Speaker an Pin PB1
'================================================= ===================
$Refile = "m8def.dat"
$Crystal = 3686400
DDRB.1 = 1 ' Pin PB1 auf Ausgang
TCCR1A = &B01000000 ' Pin PB1 togglen, Kein PWM
TCCR1B = &B00001010 ' Timer-Reset bei Compare, Clock/8
Compare 1A = 230 ´ Vergleichswert setzen
Do 'Der AVR ist vorerst arbeitslos
nop 'hier soll später der Ton
Loop 'ein-aus getastet werden
End
Ich bin AVR-Einsteiger und habe folgendes Problem:
Mit dem unten aufgeführten Programm erzeuge ich einen Dauerton.
Durch die Verwendung von Timer1 wird dazu kein weiterer Programmschritt
benötigt, der AVR ist arbeitslos (siehe Roland Walters Lehrbuch S.114).
Nun möchte ich aber den Ton im weiteren Programm ein- und ausschalten
können, z.B. im Takte von Morsezeichen. Bis jetzt habe ich noch keine
saubere Lösung gefunden, wie ich dies realisieren kann.
Habe bisher versucht, zum ausschalten den PIN PB1 zum ausschalten als
Eingang zu definieren, aber das funktioniert leider nicht so wie
gewünscht.
Frage an die Freaks: Wie kann ich das lösen?
Danke im voraus,
Bernd
'================================================= ===================
' BASCOM - ATMega 8-16 - Tonausgabe mit Timer 1 (1,0017391 ... kHz)
' Speaker an Pin PB1
'================================================= ===================
$Refile = "m8def.dat"
$Crystal = 3686400
DDRB.1 = 1 ' Pin PB1 auf Ausgang
TCCR1A = &B01000000 ' Pin PB1 togglen, Kein PWM
TCCR1B = &B00001010 ' Timer-Reset bei Compare, Clock/8
Compare 1A = 230 ´ Vergleichswert setzen
Do 'Der AVR ist vorerst arbeitslos
nop 'hier soll später der Ton
Loop 'ein-aus getastet werden
End