ATmega16 summer problem

Gast #2846670
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...
Gast #2846678
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.
Gast #2846682
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"...
Gast #2846695
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 ;)
Gast #2846700
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!! :)
#2846703
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren