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






Hoffentlich liegt das Ziel auch am Weg
Zitieren

Lesezeichen