Hoi
ik ben bezig met een project met 18 pwm kanalen op een atmega8515, maar weet iemand hoe ik 18 pwm kanalen kan maken. ik heb die nodig op heel porta, portd.3 tot portd.7 en nog portb.0 tot portb.4. ik wil dit omdat ik 6 rgb leds appart wil aansturen.
Robojan
Kijk eens naar application note 136 van atmel. Code die er bij hoort staat op de atmel site. Link naar pdf: http://www.atmel.com/dyn/resources/prod_documents/doc8020.pdf
Dit is echter niet in bascom maar c, maar aangezien de code compleet is hoeft dit geen probleem te zijn.
[Bericht gewijzigd door RvdW op (24%)]
plantrekker
True story bro!
Timer laten lopen en in de main loop steeds alle 18 variabelen vergelijken met de timer. Is de waarde kleiner of gelijk aan de timer, dan clear je de overeenkomstige poort pin.
Om redelijk juist te kunnen werken zorg je er best voor dat de main loop volledig kan afgehandeld worden voordat de timer met 1 verhoogt.
Laat de AVR bvb op 8Mhz werken. Gebruik voor je timer een prescaler van 256 (op die manier kan je AVR 256 instructies uitvoeren voordat de timer weer verhoogd wordt). Je krijgt dan een pwm frequentie van 122Hz.
Wat je voor de rest nog met de AVR wilt doen heb je niet gezegd. Als het veel is dan kan het redelijk lastig worden.
edit/ Hehe, bestaat daar nu ook al een app note voor 
ik wil de rest van de avr gebruiken om het dmx signaal te ontvangen. dit heb ik al werkend. alleen dat werkt met een interrupt volgens de helpfile van bascom. ik heb nog bijna niet met timers gewerkt dus een klein voorbeeldje zou handig zijn
Jeroen Boere
IF you can't convince them, then confuse them!
is het niet slimmer om voor het pwm gedeelte een seperate PWM chip te nemen omdat je controller als druk is met de DMX stroom?
die chip doe je dan van i2c controllen.
Je zou ook de code uit de application note in een avr kunnen zetten, en dan via de seriele poort met deze avr communiceren. Dit zit al in de code. Al is een losse pwm chip misschien wel wat netter.
Een andere atmel geconfigureerd als pwm chip? Dan ben je voor een euro klaar.
TLC5940 kan ook, heb je meteen 16 bits.