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
Du bist zu ungeduldig. Der große Prescaler bei Tccr0b = &Bxxxxx101 in Verbindung mit der nicht angegebenen Taktrate deines Attiny45 verlangt Geduld bis der erste Takt an TCNT ankommt :-)
...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...???
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.
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.
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.