Heeft iemand toevallig een programma'tje ( source code) voor de PIC18F452 om PWM uit te sturen?
Lijkt mij beetje achterhaald om het wiel weer opnieuw uit te vinden (a)
Alvast bedankt!
Achterhaald of gemakzuchtig?
En..wil je de hardwarePWM gebruiken of wil je software PWM..?
Ga eens naar de piclist of naar de site van microchip. Dat zijn de plekken waar je sourcecode vandaan haalt.
bedoelingis om software matig met de PIC18F452 PWM temaken dus via TImer2 en CPP1 lijkt mij
Verder ben ik een drama een proggen dus vandaar devraag
Groeten
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
"bedoelingis om software matig met de PIC18F452 PWM temaken dus via TImer2 en CPP1 lijkt mij"
Dat noemen we dus hardwarematig 
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Softwarematig is als je PWM opwekt zonder de PWM hardware in een MCU te gebruiken. (Dus met een normale I/O pin)
Aha ok dan bedankt voor die opheldering
op die microchip site kan ik niet super veel samples vinden over PWM voor mijn controllertje of zieik dat gewoon verkeerd
Jochem
If you want to succeed, double your failure rate.
Bedenk dat de PIC18 CPP1 implementaties eigenlijk voor de hele reeks hetzelfde zijn, ik kan me niet voorstellen dat daar geen voorbeeldcode voor is.
Ok ik kan nu beetjePWM doen nu nogkwestie van juiste getallen invoeren
Ben met de SIM van MPLAP C18 aan het testen Toch wil de periode en duty cycle niet helemaal zoals ik verwacht.
Er staat wel formule in datasheet maar daar kom ik niet echt uit
void OpenPWM1 (char period)
Formule:
PWM period = [period+1]x4xTosc x TMR2 prescaler
in mijn code prescaler op 1:1
kristalfreq=20MHz (gebruikt de SIM) dus Tosc=1/20MHz, toch?
wat ik ook invul er komt nooit de waarde uit die ik verwacht. enik wil liefst een 1 ms puls eruit hebben
enige tipsof hulp?
Jasper91
'The purpose of my life, is to invent warp drive'
http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calcula…, simpeler kan niet 
HAd in gedachten
period is getal vanuit je c code en PWMperiode is de periode diejij wil instellen ik wil dat die 100ms is met een prescale van 1:1 en eenkristalosc van 20MHZ
(PWM period/ (4xToscxTprescale))-1=period
(100ms/(4*(1/20MHz)*1))-1=499999
Lijkt mij een beetje teveel????
Jochem
If you want to succeed, double your failure rate.
100ms?? Dat is dus 10 keer per seconde knipperen, is dat niet een beetje te langzaam?
Had je ook niet iets van een BRGH register ofzo?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ter verduidelijking ik wil 1ms lang iets aansturen m.b.v. PWM.
Dusdacht eroverom dan een periode van 2ms te doen en dan 50% duty cycle
is dit goeie gedachte gang?
Of heeft eriemand een uitgewerkt voorbeeld?
En dat register zit niet in een 18F pic.
De laagst haalbare hardware PWM frequentie is trouwens 1220 Hz met een 20MHz kristal.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik denk dat het in dit geval simpeler is om met bv. Timer 1 iedere ms een interrupt te genereren en dan een gewone output pin te togglen bij iedere interrupt...
Op 21 april 2008 14:34:14 schreef erwin156:
waar wordt de 1220Hz dan vermeld?
Ik heb hem uitgerekend, maar hij staat ook in het datasheet, in het PWM hoofdstuk.
Nou ik heb een bril nodig dan denkik 
Maar julliezeggen dus datik naar de software PWMmoet overstappen gezien de frequentie van 1220hz
Het is de bodoeling te puls te verieren tussen 0 en 1ms
Jochem
If you want to succeed, double your failure rate.
Op 21 april 2008 14:18:57 schreef Arco:
BRGH heeft hier niets mee te maken. Is voor de Baudrate generator van de USART...
My bad, ik zal voortaan effe iets langer kijken voor ik iets roep. Ik meende de formule te herkennen en hoewel die er misschien op lijkt gaat het hier niet om SPBRG danwel BRGH.
Sorry voor de eventuele verwarring...
