Alarmton/Buzzer-Dreiklang erzeugen

Moderator (Firma: Titel) Persönliche Seite #7963909
Lesenswert?

Sicher passen die Töne alle in den selben Tiny, Aber nochmal: es ist mir völlig unklar, welche Aktion an welchem Eingang welchen Ton bewirken soll.

Mach eine Tabelle, in der vorn die Töne stehen und hinten, was es an welchem Pin braucht, damit sie ausgelöst werden.

Und es braucht sicher keinen "Low-Impuls mit 100ms", denn genau 100,000ms gibt es nicht. Sondern es braucht einen "Low-Impuls mit mindestens 70us bis maximal 130us".

Das Ganze sieht also etwa so aus:

1
Ton    -->   was ist dafür nötig?
2
Beep1        ???
3
Beep2        ???
4
Beep3        ???
5
Beep4        PB2 low für 100us..150us
6
Beep5        PB2 low für 150us..230us
OP #7963963
Lesenswert?

Alarm wenn PB2 ca. 250ms low

Beep1 PB4 high PB3 high

Beep2 PB4 high PB3 low

Beep3 PB4 low PB3 high

Beep3 PB4 low PB3 low

Tastenton

Beep4 PB2 low für 100us..150us

Stundenton

Beep5 PB2 low für 150us..230us

Passt das so? Beep6 war ein Missverständnis, wenn die Bedingung PB2= ca.250ms low erfüllt ist, soll einer der ausgewählten Alarmtöne (Beep1-3) ertönen.

: Bearbeitet durch User
Moderator (Firma: Titel) Persönliche Seite #7963967
Lesenswert?

Alexander H. schrieb:

1
Beep1    PB4 high  PB3 high
2
Beep2    PB4 high  PB3 low
3
Beep3    PB4 low   PB3 high
4
Beep3    PB4 low   PB3 low

Nach kurzem Blick: wenn für diese 3 Töne sonst keine Bedingungen nötig sind, dann ertönt immer irgendein Ton Beep1..3, denn es gibt je keine Startbedingung für diese 3 Töne. Denn PB4 und PB3 haben ja immer einen Pegel von high oder low.

Fazit: die PB3+4 wählen einen Ton aus, aber da fehlt noch was, was diese 3 Töne auslöst.

Alexander H. schrieb:

1
Tastenton
2
Beep4        PB2 low für 100us..150us
3
Stundenton
4
Beep5        PB2 low für 150us..230us

Passt das so?

Wirklich us?

Du siehst: wenn das Lastenheft (und sei es auch noch so kurz) nicht gut geschrieben ist, dann kommt nur Käse raus.

Moderator (Firma: Titel) Persönliche Seite #7964326
Lesenswert?

Mein Tipp: haltet euch doch einfach raus aus dem Thread, wenn ihr so absolut nichts ZUR SACHE zu sagen habt. Und wer sagt, dass sachlich verlaufende Threads nach spätestens 207 Beiträgen beendet sein müssen?

Alexander H. schrieb:

PB2= ca.250ms low

Das kann man nicht programmieren. Gib einen Bereich an.

: Bearbeitet durch Moderator
OP #7979501
Lesenswert?

Hallo nochmal,

ich bin erst jetzt zum Testen gekommen. Die Timings passen noch nicht so ganz, aber das lässt sich durch Probieren herausfinden.

Mir ist aufgefallen, dass ich den Transistor Q20, der das Signal (als low side Schalter) invertiert, weglassen kann. Der Atmega gibt bei Alarm ein HI aus. Was müsste ich in der Hauptfunktion noch ändern, dass ein HI an PB2 einen Ton auslöst?

Testweise hab ich folgendes probiert: „while ((PINB&0b00000) == 0b00000)“ (Warten, solange PB2 =low), damit benötigt das Programm aber nur noch 1% Speicher, das kann wohl nicht sein.

Vielleicht kann jemand nochmal die Hauptfunktion erklären?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren