Hallo Leute,
anbei findet ihr eine kleine Applikation zum spielen.
Die Grundidee stammt von einer Schaltung aus dem Funkamateur. Das war
übrigens meine erste Schaltung mit Mikroprozessor.
Die Frequenzen der Tonleiter und die Melodien sind einem Beispiel
entnommen, welches ich irgendwo im Netz gefunden habe. Da ich meine
Suche aber nicht mehr nachvollziehen kann (soll heißen ich finds nicht
mehr) habe ich das Beispiel im Ordner \Vorlage mit rein gepackt.
Falls jemand damit rumspielt und andere Melodien implementiert währe es
schön, wenn diese hier zur Verfügung gestellt würden.
Ich habe den PIC16F628 verwendet, da ich davon genug rumliegen habe. Der
Code sollte aber mit geringfügigen Änderungen auf allen anderen PIC´s
lauffähig sein.
MfG
Steffen
Klar geht das. Auch mit einem PIC der 12er Reihe. Bei dehnen muss mann
nur aufpassen, dass der Inhalt des PCLATH nach der Routine Get_Ton
wieder auf den ursprünglichen Wert gesetzt wird, sonst geht der nächste
goto oder call Befehl ins Nirvana.
MfG
Steffen
ich habe gerade gemerkt, das ich vergessen hatte eine Zeile Code, welche
ich zum Testen eingefügt hatte zu löschen.
Resultat ist, das nur die erste Melodie gespielt wird.
Es betrifft folgenden teil des Hauptprogrammes:
M_Nummer_OK movf MelodieNummer,0
movlw 57 ; !!! Diese Zeile muss raus
call Get_Mel_Adr
; dieser Programmteil dürfte nicht durchlaufen werden, wenn
; die Überprüfung der Melodie-Nummer OK ist
iorlw 0
btfsc STATUS,Z
goto Adr_OK
; falls doch Fehler, dann wird erste Melodie gespielt
Im Anhang findet Ihr auch gleich den korrigierten Code.
MfG
Steffen
Hallo Leute,
ich hab das ganze nochmal als Version für den AMTEL 4433. In den
Data-Zeilen sind 68 Lieder gespeichert, also 30 mehr als im PIC-Code
von Steffen.
Anlage:
Quellcode für BASCOM
Schaltplan
in dem UP "100ms" fehlte noch eine Zeile, um den Lautsprecher ganz
sicher nach dem Lied stromlos zu bekommen. (SET SPEAKER)
'***********************************************************************
*****
100ms:
'***********************************************************************
*****
' --- Zähler für Tondauer handeln ----------------------
If Zeit > 0 Then
Zeit = Zeit - 1
Else
Disable Timer0 ' wenn abgelaufen dann Ton aus durch
Timer0 aus
Set Speaker
End If
' --- Zähler für Sperrzeit von INT1 handeln ------------
If Sperre > 0 Then
Sperre = Sperre - 1
Else
Set Led_sperre ' LED Sperre aus
Enable Int1 ' INT1 wieder freigeben
End If
Gosub Blink_led ' Takt-LED blinken lassen
Return
Gruß Uwe
Suche Schaltplan einer Melodieklingel, welche es als Bausatz mitte der
80iger Jahre in der DDR gab. Wer kann helfen? Oder war diese Schaltung
im Funkamateur veröffendlicht?
Für die Hilfe Danke.
Mit freundlichem Gruß
Reiner
Den Schaltplan hab ich leider nicht mehr. Es war aber eine Schaltung aus
dem Funkamateur.
Ich hab allerdings noch eine voll bestückte und eine kaum bestückte
Platine liegen, wo ich damals die Bauelemente schon aufgezeichnet
hatte. Daraus könnte man problemlos den Schaltplan wieder
zusammensetzen.
Steffen
PS: Das Melodieformat des Programmes aus dem Originalbeitrag ist mit
dem damals verwendeten identisch.
Hat jemand eine Melodie für den AT90S1200-12PI in Assembler Code oder
geht das überhaupt mit diesem. Und wie müßte ich das dann anschließen.
Sorry habe erst damit anefangen.
mfg Thorsten
*Staub vom Thread pust
Hab den Code für den "kleinen" 12F683 umgeschrieben, also wer Intresse
hat soll sich melden.
Müsste auf allen 8pinnern mit 4MHz laufen...
Weiter habe ich in Excel eine Tabelle erstellt, in dieser können die ASM
Melodiecodes abgespielt und geändert werden (Copy&Paste aus/in MPLAB)
Naja und hab jetzt dran rumgebastelt und versucht ihn in einen lf84a zu
brennen, naja probs ohne ende:
Error[113] F:\KLINGEL.ASM 175 : Symbol not previously defined (PIE1)
Error[113] F:\KLINGEL.ASM 177 : Symbol not previously defined (VRCON)
Error[113] F:\KLINGEL.ASM 179 : Symbol not previously defined (TXSTA)
Error[113] F:\KLINGEL.ASM 180 : Symbol not previously defined (RCSTA)
Error[113] F:\KLINGEL.ASM 184 : Symbol not previously defined (T1CON)
Error[113] F:\KLINGEL.ASM 185 : Symbol not previously defined (T2CON)
Warning[202] F:\KLINGEL.ASM 187 : Argument out of range. Least
significant bits used.
Error[113] F:\KLINGEL.ASM 188 : Symbol not previously defined (CMCON)
Message[302] F:\KLINGEL.ASM 195 : Register in operand not in bank 0.
Ensure that bank bits are correct.
Message[302] F:\KLINGEL.ASM 198 : Register in operand not in bank 0.
Ensure that bank bits are correct.
Warning[220] F:\KLINGEL.ASM 1264 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1265 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1266 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1267 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1268 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1269 : Address exceeds maximum range for
this processor.
Warning[220] F:\KLINGEL.ASM 1270 : Address exceeds maximum range for
this processor.
vll tipps was ich ändern muss?
Tja, sieht wohl so aus, als ob der µC ein Paar register nicht hat und
der Speicher nicht ausreicht.
Klingeladressen ändern und Zeug umschreiben etc...
Viel Arbeit.
Kannst das Resultat posten...
@ Neophyte84
Hast Du überhaupt das #include-file eingebunden? Ist eigentlich die
einzige Möglichkeit wenn der Assembler schon die Standardnamen nicht
erkennt (CMCON, PIE1,...)
Gruss
Nee, tschuldigung. Der 16lf84 kennt kein CMCON, PIE1, VRCON, usw. die
Zeilen kannst Du so rausschmeissen. TXSTA, RCSTA gehören zur UART. Sowas
hat der 84er auch nicht und deshalb kann der ganze Code entfernt werden.
Ich denke es wäre am wenigsten Arbeit wenn Du nur die Programmteile des
Melodieprogramms in ein Template für den 84er reinkopierst.
Gruss
naja hab das ganze jetzt in einen 16f628A gebrannt aber es tut sich
genau GAR NICHTS wenn ich auf den taster drück. Mein Aufbau:
+5v auf vdd, masse auf vss einen 4mhz Quarz(hab den ja wegen dem 84a
draufgelötet) auf osc1 u osc2. taster geht auf rb0 und auf masse. so
einen kleinen piepslautsprecher da was auch in grusskarten zu finden ist
auf masse u. rb7
hab ich da was falsch gemacht? leider gab es kaum erklärung zum aufbau
Configuration Bits im MPLAB IDE eingestellt:
OSCILLATOR: XT
Watchdog Timer: On(Hab irgendwo im programmcode clrwdt gelesen also
vermute ich mal das der code dafür geschrieben ist)
Power UP Timer: Enabled
Brownout Disabled: Disabled
Master Clear Enable: Enabled
Low Voltage Program: Disabled
Data EE Protect: Disabled
Code Protect: Disabled
Findet ihr da vll irgendeinen fehler?
Achja und die include zeile sieht natürlich so aus:
include p16f648a.inc
hab ich natürlich angepasst^^
MFG
hm warum sollten die adressen nicht stimmen?
aber mpsim zeigt das an:
CORE-E0001: Stack over flow error occurred from instruction at 0x000021
sry hatte vorhin nicht dran gedacht, danke für den tipp mit mpsim^^
aber wirklich was sagen tut mir der error trotzdem nicht lol
Das sieht halt so aus, dass die Speicherorganisation im Controller
gleich sein muss (Bankgröße) da das Melodie-Programm den PC direkt
verändert, um auf die Melodieadresse zu kommen, wenn hier ein Fehler
passiert sprint der Controller in Nirvana! (Oh ich wäre gerne im Nivana,
was dort alles sein muss....)
Da hilft, wenn man nicht weis wo ansetzen, nur debuggen und kleine
Brücken einbauen...
Sorry bin nicht sehr hilfreich...
hm naja thx fürn versuch aber wie du sagtest, war nicht wirklich
hilfreich gg
wundert mich nur das der "originale" code von steffen nicht geht, das is
eh fast der gleiche pic wie der von ihm verwendete... kann nur etwas
mehr
das einzige was ich verändert habe war das include am anfang
Hallo alle Melodieklingelinteressierten,
meine Melodieklingel ist zwar im Tonbyteformat nicht ganz kompatibel zum
Original im Funkamateur verwendeten, dafür passen aber dann mehr
Melodien in den Chip (PIC 12F683) - mittlerweile sinds 96 Melodien.
http://sbarth.dyndns.org/seiten/rahmen.php?nav=klingel#v3
Wer den Originalbeitrag FA 4/86 und die zugehörigen EPROM-Inhalte sucht,
wird ebenfalls fündig.
Grüße Steffen
Hallo,
Ich würde gerne so eine Klingel nachbauen , bin aber leider blutiger
Anfänger.
Einen Eeprom Brenner hab ich Lötkolben ist auch vorhanden.
Was ich brauche ist eine Liste mit allen Bauteilen (wirklich allen)
und eine kleine Anleitung wie ich das ganze über die Bühne bringe.
Ich wäre über antworten sehr erfreut
zwoemti at web de
Hallo,
Ich würde gerne so eine Klingel nachbauen , bin aber leider blutiger
Anfänger.
Einen Eeprom Brenner hab ich Lötkolben ist auch vorhanden.
Was ich brauche ist eine Liste mit allen Bauteilen (wirklich allen)
und eine kleine Anleitung wie ich das ganze über die Bühne bringe.
Ich wäre über antworten sehr erfreut
zwoemti at web de
Hallo
Ich habe noch Interesse an der Seite mit der Melodieklingel.
Leider ist die Seite gelöscht.
Kann mir Jemand den Kontakt zu dem Besitzer Steffen Barth aufbauen?
Jürgen Furtmann schrieb:> Ich habe noch Interesse an der Seite mit der Melodieklingel.> Leider ist die Seite gelöscht.
Wenn es um das Original geht, das ist auch anderswo dokumentiert.
Guckstu z.B. hier: Beitrag "Re: Zilog Z80 CPU"
(weiter unten im Thread ist auch die Firmware zu finden)
XL
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang