ATtiny45 timer0 PWM

#2357707
Lesenswert?

Hallo MC Freunde,


ich raffs mal wieder net.

ich hab hier ein Tiny 45 und wollte timer0  als PWM ( phase correct 
mode)

initialisieren.


wenn ich das ganze dann Simuliere in Bascom wird TCNT0 nicht 
hochgezählt.
Liegt das an Bascom oder hab ich irgendwo ein Bit vergessen zu setzen???
Q-Code:


Dim Pwmvar As Byte


Config Pinb.3 = Input
Config Pinb.0 = Output




'Timer0 Initialisierung
Gtccr = &B00000000
Tccr0a = &B11000001
Tccr0b = &B00001101

Timsk = &B00000000

'======================================================================= 
===

Do

        If Pinb.3 = 1 Then          ' wenn Pinb.3 = 1 dann OCR0A mit
          Pwmvar = 254              'PWMvar laden
          Ocr0A = Pwmvar
        Else
         Pwmvar = Pwmvar - 1        ' ansonsten OCR0A -1
         Ocr0a = Pwmvar
        End If

Loop
End

Vielen Dank schon mal im vorraus
#2357821
Lesenswert?

...hier mal der "Header"

$regfile = "ATtiny45.DAT"         ' specify the used micro
$crystal = 8000000                ' used crystal frequency
$hwstack = 32                     ' default use 32 for the hardware 
stack
$swstack = 10                     ' default use 10 for the SW stack
$framesize = 40




...sollte eigentlich schnell genug sein..oder...???
Gast #2357831
Lesenswert?

Prescaler 1024 ist schon derb.

Die hohe Taktrate arbeitet in der Simulation sogar gegen dich.

Je Befehlszeile braucht eine gewisse Anzahl Takte. Du musst also so 
viele Befehlszeilen abarbeiten (durchklicken) bis insgesamt 8000000/1024 
Takte vergangen sind, damit TCNT0 um eins erhöht wird.

Je schneller der AVR getaktet wird, desto mehr kann er in einer 
Zeiteinheit schaffen, desto mehr Einzelschritte musst du in der 
Simulation abarbeiten.
Gast #2357837
Lesenswert?

Oder auch nicht, bin schon zu müde und jetzt beim Wiederlesen kommen 
Zweifel an dem 2. Teil.

Setz einfach mal den Prescaler auf 1 (Tccr0b = &Bxxxxx001) und simuliere 
wieder. TCNT0 wird dann relativ rasch erhöht und zeigt, dass der 
Restcode funktioniert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren