Welke timer gebruikt PWM ? is dat timer0 ?
bron: Pic basic projecten.
De PWM frequentie is bij de instructie PWM dus niet apart in te stellen.
Kristal: PWM frequentie:
4MHz 200Hz
10MHz 500Hz
20MHz 1000Hz
PWM
Softwarematige Pulse Width Modulation
De syntaxis:
PWM Pin, Duty, Cycles
PWM schakelt de opgegeven poort Pin automatisch om als uitgang, voert een opgegeven aantal Cycles pulsen uit van een opgegeven Duty lengte en schakelt de poort Pin daarna om als ingang (= hoog-ohmig).
Pin - Is een Poort . Pin constante waarop het PWM signaal komt.
Na uitvoering van de PWM instructie blijft de pin als ingang achter(!)
Duty - Is een 8-bit (0 ... 255) waarde die de verhouding van het hoog/laag niveau van de puls aangeeft.
Dit wordt de puls-pauze verhouding genoemd.
Dit hoeft geen vast getal (constante) te zijn, maar mag ook de waarde van een variabele of een berekening zijn (zie zodadelijk voorbeelden).
Cycles - Is een 16-bit (0 ... 65535) waarde die het aantal pulsen aangeeft.
Dit hoeft geen vast getal (constante) te zijn, maar mag ook de waarde van een variabele of een berekening zijn.
De cyclus tijd is afhankelijk van de oscillator frequentie.
Als een 4MHz kristal wordt gebruikt dan duurt 1 volledige cyclus 5 milliseconden, bij een 10MHz kristal 2 mSec en bij een 20MHz kristal duurt dat 1 mSec.
Aangezien de voorbeelden in de cursus met de inwendige oscillator werken en de oscillator van een PIC16F628A 4MHz is, duurt een cycle in de voorbeelden dus ook 5 mSec (zie tekening).