Goeiemorgen, ik ben bezig met een project om infrarood uit te zenden. Hiervoor maak ik gebruik van de atmega32. Om infrarood uit te zenden maak je onder andere gebruik van een carrierfrequentie. Nu is het zo dat ik een carrierfrequentie gemaakt heb (die werkt) met delay loops, maar als je dan van kristal verandert, zit je in de problemen. Dus wou ik met timers of met pwm werken. Ik schrijf in assembler en heb de datasheet gelezen, eveneens de tutorial op avrbeginners.net, maar weet nog niet echt hoe ik een 40kHz carrier met duty-cycle 50% kan opbouwen. Kan iemand me op weg helpen?
elektron_
beetje gek
Je zet toch de frequentie, of een afgeide ervan helemaal bovenaan in je programma.
Dan moet je toch maar één lijn aanpassen.
dat is heel éénvoudig om dan later aan te passen indien je een andere carrier wilt, maar ik bedoelde de opbouw van dergelijke programmacode lukt me niet.
De frequentie van de (interne) timers wordt trouwens ook van je kristal afgeleid. Dus met een ander kristal heb je ook een andere PWM frequentie.
In feite ja... Dus in feite blijft het om het even of ik nu mijn carrier maak met een delay loop of met een pwm.
het is me gelukt om een carrierfrequentie met duty cycle 50% eruit te krijgen. Ik ben enkel niet 100% zeker over bepaald bits die ik heb ingesteld.