www.mikrocontroller.net

Forum: Projekte & Code Melodieklingel mit PIC


Autor: Steffen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht auch mit nem billigen 8-Pinner, z.B. ACE1202:

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


Peter

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

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

MfG
Steffen

Autor: Uwe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

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

MfG Martin

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Sascha

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im aktuellen elektor ist ne polyphone klingel drin.

Autor: Martin (Gast)
Datum:

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

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das nach dem doppelheft. also die aktuelle.

Autor: Reiner Fritzsche (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Aicke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Reiner,

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


Aicke

Autor: Horst Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Horst Wilhelm (Gast)
Datum:

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

Autor: Thorsten Pottiez (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vendor Xaver (vendor)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Schoasch (Gast)
Datum:

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

schoasch123(ät)yahoo(punkt)de

mfg Schoasch

Autor: Vendor Xaver (vendor)
Datum:

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

Autor: Neophyte84 (Gast)
Datum:

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

Autor: Neophyte84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Vendor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: txsta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: txsta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Neophyte84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Neophyte84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm sry hatte mich verschrieben, hab es in einen 648a gebrannt

Autor: Vendor Xaver (vendor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Passt das mit den Melodie- Adressen?
Hast das Projekt im MPLAB geduggt?

Autor: Neophyte84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vendor Xaver (vendor)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Neophyte84 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen Barth (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vendor Xaver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Respekt!

Sehr gute Seite!!!

Autor: zwoemti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mario R. (zwoemti)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Furtmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Axel Schwenke (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vendor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Website ist noch im Cache.

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

Antwort schreiben

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

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.