Hi,
ich versuch's mal auf die Schnelle im Groben und ohne Gewähr. Zum Testen die wait Zeiten auf einstellige Sekundenzeiten begrenzen 
PRG ist sehr einfach aufgebaut, sicher verbesserungswürdig und Du hast auch noch was zu tun; während die Zeiten laufen kann man nur die RESET Taste drücken um alles abzuschalten.
Der Summer braucht nach Datenblatt nur 2mA. Spannung paßt auch und kann direkt an PB3 und GND angeschlossen werden. Sobald PB3 auf high geht sollte der schon einen ca 4kHz Ton ausgeben.
Tasten prellen beim Drücken. Hier ist im Kapitel 21 etwas dazu: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/ Sollte hier aber zunächst nichts machen.
Code:
Bascom Header
dim S1 as byte
dim s2 as byte
s1 = 0 'variable initialisieren, eigentlich nicht notwendig jedoch sicher
s2 = 0
config PORTB.0 (für S1) = input
config PORTB.1 (für S2) = input
PORTB.0 (für S1) = 1 'Pullup Widerstand ein - PIN ist high (S1 schaltet GND bei Drücken)
PORTB.1 (für s2) = 1 'Pullup Widerstand ein - PIN ist high (S2 schaltet GND bei Drücken)
config PORTB.2 (Schaltausgang 1) = output
config PORTB.4 (schaltausgang 2) = output
config PORTB.3 (schaltausgang 3) = output 'Summer
PORTB.2 = 0 'Schaltausgang 1 auf low
PORTB.4 = 0 'Schaltausgang 2 auf low
PORTB.3 = 0 'Schaltausgang 3 auf low '(Summer)
DO
s1 = PINB.0 'Einlesen Zustand von Schalter 1 an PORTxn
S2 = PINB.1 'Einlesen Zustand von Schalter 2 an PORTxn
if S1 = 0 then
PORTB2 = 1 'Schaltausgang 1 schalten
PORTB4 = 1 'Schaltausgang 2 schalten
wait 300
PORTB.2 = 0 'Schaltausgang 1 abschalten
PORTB.4 = 0 'Schaltausgang 2 abschalten
PORTB.3 = 1 'Summer ein
wait 2
PORTB.3 = 0 'Summer aus
endif
if S2 = 0 then
PORTB.2 = 1 'Schaltausgang 1 schalten
PORTB.4 = 1 'Schaltausgang 2 schalten
wait 600
PORTB.2 = 0 'Schaltausgang 1 abschalten
PORTB.4 = 0 'Schaltausgang 2 abschalten
PORTB.3 = 1 'Summer ein
wait 2
PORTB.3 = 0 'Summer aus
endif
LOOP
Lesezeichen