Hallo!

Zum Thema Sirenenfunktion (Doppelton)
Leider ist es nicht möglich mit dem PIC einen Doppelton mit entsprechender Genauigkeit zu programmieren.

Begründung:
Durch die Frequenzen 1240 und 675 Hz ergibt sich keine (vielleicht nach X-Perioden) Wiederholung des Signals, weshalb die Werte nicht in einer Tabelle abgelegt werden können.
Also müssen die Werte Berechnet werden.
Für die einzelnen Wartezeiten wurden je Frequenz Timerfunktionen verwendet und entsprechende Interrupts angesteuert.
Nun kommt es vor das ein Interruptprogramm gerade abgearbeitet wird und während dieser Zeit der zweite Interrupt zuschlägt. Der zweite wird natürlich zu Spät bearbeitet.
Als Ergebnis kommt zwar ein Sinus mit entsprechender Frequenz heraus, allerdings stark Verjittert.
Das Jittern wird natürlich geringer, je schneller der PIC, bzw. je größer die Periodenabschnitte sind.

Hab mal die Sirenenfunktion implementiert, allerdings nicht getestet und werd sie auch nicht testen.
Sollte sie funktionier ist GUT, wenn nicht, dann halt nicht.

Gruß
cockpit