Forum: Mikrocontroller und Digitale Elektronik ATmega16 summer problem


von Marc H. (flashinthegas)


Lesenswert?

Hallo,

bin im Moment drann mich in die Materie AVR einzuarbeiten, habe hierzu 
das Pollin-Eval.-Board erworben.

Das mit den LEDs und den Taster funktioniert schon ganz gut, also hab 
ich mich mal drann gemacht, den Summer zu testen.
Allerdings gibt er nur ein kurzes "Klack" von sich... egal welche 
Frequenz ich einzeugen lasse...


Vielleicht hat wer ne Idee woarn es liegen könnte, hier mal ein 
Codeauszug als Beispiel:
1
 .nolist
2
 .include "m16def.inc"
3
 .list
4
5
 sbi DDRD, PD5
6
 sbi DDRD, PD6
7
 sbi DDRD, PD7
8
9
summer:
10
 sbi PORTD, PD7
11
ldi R16, 200
12
13
verzoegerung:
14
 dec R16
15
brne verzoegerung
16
17
 cbi PORTD, PD7
18
rjmp summer

Edit: Mein Code wird ausgeführt, wenn ich bei Ponyprog auf "write 
device" klicke, also kurz bevor er neu beschrieben wird... das versteh 
ich nicht :(

Wenn ich ein LED zum blinken anregen will, ist es das selbe...

von (c)chrizz (Gast)


Lesenswert?

summer:
 sbi PORTD, PD7
...
<<Verzögerung>>
...
cbi PORTD, PD7
rjmp summer

Du schaltest den Summer aus und 2Takte Später wieder ein. Verhältnis ein 
: aus ist in Deinem Beispiel ca. 200:1.

Bau nach dem Ausschalten nochmal eine Verzögerung ein, um auf ein 50:50 
Verhältnis zu kommen.

von Marco (Gast)


Lesenswert?

So wie ich das sehe "löschst" Du den Pin nach dem abgelaufenen Loop von 
200 DEC's und dann setzt Du den Eingang sofort nach einem oder 2 Takten 
direkt wieder. Mach doch mal eine verzoegerung2 mit rein, oder google 
mal nach "duty cycle"...

von Marco (Gast)


Lesenswert?

Da war wer schneller ;-)

von (c)chrizz (Gast)


Lesenswert?

Aber mal nach Duty-Cycle zu Googeln war noch ein guter Hinweis!
...und auf den Systemtakt achten. Bei 8MHz Systemtakt und etwas über 200 
Takten Wartezeit kannst Du höchstens Fledermäuse verwirren ;)

von Marc H. (flashinthegas)


Lesenswert?

Ok, hab die Drakula-Abwehr mit weiteren schleifen entschärft, jetzt 
gibts schöne ohrenbetäubende Töne von sich... vielen Dank!

Ich unterschätze einfach noch die ausführungsgeschwindigkeit der kleinen 
AVR's... wahnsinn was man da alles zum Verzögern reinschaufeln muss!

Vielen Dank für die schnell Hilfe!! :)

von Carsten R. (kaffeetante)


Lesenswert?

Hab das gleiche Board und bin auf ähnliche Art reingefallen. Ich wollte 
auch ein 50% PWM-Signal draufgeben. Nun, es ist ein Summer und kein 
Lautsprecher. Brücke mal mit einem Kabel von Vcc nach Jumper 8, dann 
weißt du Bescheid. Er summt ähm piept selbstständig. Du mußt also den 
Port nur einmal setzen.

Willst du mit Frequenzen und Tönen Spielen kannst Du so etwas hier an 
den Jumperblock anschließen:

http://www.mikrocontroller.net/articles/Klangerzeugung

Das benutze ich.

Ich habe allerdings auch nicht weiter versucht dem Summer andere 
Frequenzen beizubringen. Vielleicht geht es ja doch.

mfG

Carsten

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.