Hallo, ich hab jetzt schon einiges im Forum nachgeschlagen komme aber nicht so recht weiter. Kann ich mit einem Tiny13 bei 4MHz Takt eine Hardwaremäßig ohne irgendwelche Interrupts FastPWM mit 125kHz erzeugen? Wenn nein geht dann folgender Gedanke Softwaremäßig. 1. Timer Interrupt alle 32 Takte und Pin auf 0 2. In der Main-Schleife Timer-Zähler mit Wert (zwischen 0 und 32) vergleichen bei Gleichstand Pin auf 1 Gruß Jörg
Im Datenblatt des Tiny13 habe ich auf die Schnelle nix zum Thema Fast-PWM gefunden (jedenfalls nix, was auf Erhöhung des Timertaktes mittels PLL hinweist). Der Tiny15 bietet aber Fast-PWM in Hardware (Timertakt wird per PLL hochgeschraubt). Die Software-Version mit Timer lässt sich ja ausrechnen: Tiny13 mit 9,6MHz internem RC-Oszillator: Bei 9,6MHz Takt und Int alle 32 Takte ergibt sich 300kHz Timertakt. Bei Zählumfang 32 ergibt sich 9,375kHz PWM-Frequenz. ...
Ich glaube ich hab's. Zumindest im AVR-Studio sieht es gut aus. ;********************************************************** start: ; FastPWM einstellen ; Lösche OC0B bei Compare Match und setze OC0B by TOP ldi tmp, (1<<COM0B1)|(1<<WGM00)|(1<<WGM01) out TCCR0A, tmp ; Kein Vorteiler und TOP = OCR0A ldi tmp, (1<<CS00)|(1<<WGM02) out TCCR0B, tmp ; OCR0A setzen für TOP 4MHz/32 125kHz PMW an OC0B ldi tmp, 0x1F out OCR0A, tmp ; OCR0B mit Vergleichswert laden ldi tmp, 0x4 out OCR0B, tmp ; Port B als Ausgang definieren ser tmp out DDRB, tmp loop: rjmp loop ;********************************************************** Läuft die PWM komplett in Hardware? Oder wird diese durch den normalen Programmablauf oder durch Interrupts gestört? Wie schließe ich denn einen Quarz an den Tiny13 an. Bei den anderen gibt es XTAL1/2 aber hier nur einen Eingang CLKI? Gruß Jörg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.