mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny45 GuitarTuner


Autor: Denis Fricke (tech09)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Grüße Euch Community,

ich hab den Gitarren Tuner von Jesper nachgebaut mit einem ATTiny45. 
Leider musste der C-Code in vielerlei angepasst werden, da z.B. einige 
Befehle wie OUTP(x, y) nicht mehr existent sind usw.

Hab im Internet auch Ersetzungen dafür gefunden.
AVR hab ich programmiert mit WinAVR und klappte alles wunderbar mit 
einer SP12 Schaltung, die ich gefunden habe, am LPT1.

Allerdings bin ich ein kleiner Neueinsteiger was die Befehle der 
Mikrocontroller angeht. Hab mich im Datenblatt des ATTiny45 auch schon 
durchgelesen und wollte nun den Prescaler anpassen an 4 MHz, womit der 
GitarrenTuner nun laufen soll.

Zu Beginn leuchten auch beide LED's und erlischen dann und nichts weiter 
passiert. Was ich mir nur vorstellen kann, dass die Counts für die 
Frequenz nicht stimmen. Ich komme aber einfach nicht dahinter, wie ich 
die Zähler setzen muss bzw. die Interrupts genau benutzen soll.

Hat jemand vielleicht weitere Tipps für mich ? Ich will ja auch keine 
Komplettlösung haben. :)

Die Datei gtuner.c hab ich angehängt. Laut Datenblatt des ATTiny45 muss 
ich den Prescaler mit 0x07 auf 64 einstellen. Ist das korrekt ?
Aber wie passe ich dann die Counts an ?

Oder weiß jemand eine ganz andere einfachere Idee ?

Hier ist auch der Link zu Jesper : 
http://www.myplace.nu/avr/gtuner/index.htm

vielen Dank,
Gruß Tech09

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würde

1 copyright ändern, da nicht mehr original! bzw. hinweis auf deine 
änderung einbauen. hr hansen hat mit deinen änderngen nichts am hut!
2 standard typendeklaration übernehmen (uint8_t etc)
3 makros zum bit setzen etc.. ersetzen
4 interruptvektoren haben sich geändert (entweder auf der hp der 
avr-libc nachsehen, oder in winavr/avr/.. in der interrupt.h 
durchhangeln und die datei für tiny25/45/48 ansehen.

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
misst du überhaupt signale am eingang?
wo ist   loop_until_bit_is_set(PINB,1);    // wait for something to 
happen

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl. kann man sich den transistorverstärker sparen, es kann sein, dass 
der tiny einen komparator mit 20x gain hat. vielleicht klappt das.

anderes prinzip: http://www.das-labor.org/wiki/Stimmmopped

Autor: Denis Fricke (tech09)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
faul schrieb:
> ich würde
>
> 1 copyright ändern, da nicht mehr original! bzw. hinweis auf deine
> änderung einbauen. hr hansen hat mit deinen änderngen nichts am hut!
> 2 standard typendeklaration übernehmen (uint8_t etc)
> 3 makros zum bit setzen etc.. ersetzen
> 4 interruptvektoren haben sich geändert (entweder auf der hp der
> avr-libc nachsehen, oder in winavr/avr/.. in der interrupt.h
> durchhangeln und die datei für tiny25/45/48 ansehen.

1 stimmt ! Ist ja wegen der GNU. Werde ich dann ändern.
2 uint8 ist dann ein unshorted Integer oder wie ist das gemeint ?
3
4 Oh, da kann schon mal ein Fehler liegen ! Danke.

>misst du überhaupt signale am eingang?
>wo ist   loop_until_bit_is_set(PINB,1);    // wait for something to
>happen

Hab mich auch schon gefragt, was oder wo der Funktionsaufruf zu finden 
ist. Ist der überhaupt von Bedeutung ? Auf der Jesper Seite steht nichts 
davon.
Aber wenn es das nicht geben würde, würde der Compiler meckern. Macht er 
komischerweise aber nicht.

> evtl. kann man sich den transistorverstärker sparen, es kann sein, dass
> der tiny einen komparator mit 20x gain hat. vielleicht klappt das.
> anderes prinzip: http://www.das-labor.org/wiki/Stimmmopped

Ich hab den Transistorverstärker mal simuliert für alle Frequenzen und 
schmeißt Signale zwischen 0V-4V raus in den gängigsten 
Gitarrensaiten-Frequenzen. Was ein Problem war, war das benutzte 
Mikrofon.
Das hat nur 5 mV rausgeschmissen. Es müssen mindestens 50 mV sein.
Hab nun das Ding vorsichtig mit der Soundkarte über Klinkenstecker 
angeschlossen und schmeiße die Frequenzen mittels Sinusgenerator auf die 
Boxen (Klinke) um die Frequenzen zu simulieren und einzustellen.
Spannungsmäßig kann ich das einstellen. Hab noch so ein extra externen 
Lautstärkerregler auf dem Tisch stehen.

Werde auch mal die Interrupts anpassen und morgen austesten.

Vielen Dank soweit,
Gruß Tech09 :)

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.