Forum: Mikrocontroller und Digitale Elektronik ATTiny45 GuitarTuner


von Denis F. (tech09)


Angehängte Dateien:

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

von faul (Gast)


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.

von faul (Gast)


Lesenswert?

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

von faul (Gast)


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

von Denis F. (tech09)


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

von faul (Gast)


Lesenswert?


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.