Forum: Projekte & Code Melodieklingel mit PIC


von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

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

von Peter D. (peda)


Lesenswert?

Das geht auch mit nem billigen 8-Pinner, z.B. ACE1202:

http://www.fairchildsemi.com/an/AN/AN-2006.pdf


Peter

von Steffen (Gast)


Lesenswert?

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

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

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

von Steffen (Gast)


Lesenswert?

Mist, den Code kann man ja fast nicht mehr lesen.
Genau ist es Zeile 138
    movlw     57.
Die muss raus.

MfG
Steffen

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

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

von uwe (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

Sagt mal kann man mit so einem PIC eigentlich auch polyphone Töne
erzeugen, so wie bei neueren Handys?? Ideen?

MfG Martin

von Sascha (Gast)


Lesenswert?

Hallo,

ist die Theorie nicht so, das man die Frequenzteile einfach addieren
kann?

Sascha

von Tobias Breckle (Gast)


Lesenswert?

im aktuellen elektor ist ne polyphone klingel drin.

von Martin (Gast)


Lesenswert?

Welche Ausgabe? Das Doppelheft oder die daruaf folgende? (die hab ich
nämlich noch net...)

von Tobias Breckle (Gast)


Lesenswert?

das nach dem doppelheft. also die aktuelle.

von Reiner Fritzsche (Gast)


Lesenswert?

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

von Steffen (Gast)


Lesenswert?

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.

von Aicke (Gast)


Lesenswert?

Hallo Reiner,

Mit dem Beitrag aus dem FA 4/86 kann ich dienen.
Mail ist unterwegs.


Aicke

von Horst Wilhelm (Gast)


Lesenswert?

Als Bausatz gab es eigentlich den "Melo 4". Wenn die schaltung gesucht
wird, scanne ich mal das kleine Heftchen. Bitte E-Mail bei Bedarf.
Horst

von Horst Wilhelm (Gast)


Lesenswert?

Vergessen: Dafür hab ich auch noch einen EPROM 2716 (gebrannt).
Horst

von Thorsten Pottiez (Gast)


Lesenswert?

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

von Vendor X. (vendor)


Lesenswert?

*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)

von Schoasch (Gast)


Lesenswert?

Ich hätte interesse. Kannst du mir Dateien bitte schicken oder hier 
posten?

schoasch123(ät)yahoo(punkt)de

mfg Schoasch

von Vendor X. (vendor)


Lesenswert?

Wie ist das mit Copyright?
Sind halt ein paar Funktionen (HEXtoBIN, etc...) aus dem Internet 
drin...

von Neophyte84 (Gast)


Lesenswert?

ich hätt auch interesse an dem code für den 8 pinner^^ wär nett wenn du 
ihn posten könntest

von Neophyte84 (Gast)


Lesenswert?

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?

von Vendor (Gast)


Lesenswert?

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...

von txsta (Gast)


Lesenswert?

@ 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

von txsta (Gast)


Lesenswert?

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

von Neophyte84 (Gast)


Lesenswert?

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

von Neophyte84 (Gast)


Lesenswert?

ähm sry hatte mich verschrieben, hab es in einen 648a gebrannt

von Vendor X. (vendor)


Lesenswert?

Passt das mit den Melodie- Adressen?
Hast das Projekt im MPLAB geduggt?

von Neophyte84 (Gast)


Lesenswert?

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

von Vendor X. (vendor)


Lesenswert?

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...

von Neophyte84 (Gast)


Lesenswert?

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

von Steffen Barth (Gast)


Lesenswert?

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

von Vendor Xaver (Gast)


Lesenswert?

Respekt!

Sehr gute Seite!!!

von zwoemti (Gast)


Lesenswert?

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

von Mario R. (zwoemti)


Lesenswert?

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

von Jürgen Furtmann (Gast)


Lesenswert?

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?

von Axel S. (a-za-z0-9)


Lesenswert?

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

von Vendor (Gast)


Lesenswert?

Die Website ist noch im Cache.

Dort ist folgende Adresse hinterlegt
dg0mg at t mi.nus online pu-nkt de

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.