Als ich gerade mein Programm schrieb bekam ich einen Fehler.
Auf Timer1 funktionierte alles mit PWM. Timer0 als PWM lässt sich nicht compilieren!
Mein Chip Atmega168
(laut datenbatt timer0 PWM möglich)
an was liegt das?
Druckbare Version
Als ich gerade mein Programm schrieb bekam ich einen Fehler.
Auf Timer1 funktionierte alles mit PWM. Timer0 als PWM lässt sich nicht compilieren!
Mein Chip Atmega168
(laut datenbatt timer0 PWM möglich)
an was liegt das?
Hallo,
Das liegt sehr wahrscheinlich am Bascom, denn Timer0 wird oft von internen Funktionen benutzt, und da braucht man kein PWM, auch wenn man das zwar eingeben kann, macht der Timer0 kein PWM, wenn er das Hardwaremässig zwar könnte, Bascom will nicht !
Da kann man nur das DB herausholen und die Register von Hand setzen, aber aufpassen, das man nicht eine Basom-Funktion benutzt, die den Timer0 auch verwendet, das wirft wieder alles durcheinander !
Sobald ich den Timer0 oder den Timer2 als PWM dekariere meckert mich der compiler an (ungütige config).
Ich benötige den Timer1 leider für etwas anderes, da dies der einzigste 16 Bit Timer ist.
Also register selber setzen :-(
Ich schreib mal noch ne mail an MCSelec.
Mfg
Tobi
Ich hab das ganze jetzt direkt in die Register gewurschtelt *g*
Hat beim 1. Versuch einwandfrei funktioniert!
Danke.
Mfg
wollte auch gerade den timer 0 als pwm proggen.... leider nix mit bascom :( könntest du so nett sein und den ausschnitt hier posten wie man den timer 0 configurieren muss?
gruss bluesmash
jo hier hab ich mal ein Testprog.Code:$regfile = "m168def.dat"
$crystal = 16000000
$baud = 9600
$framesize = 32
$swstack = 32
$hwstack = 32
Config Pind.6 = Output
'Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
Tccr0a = &B11000001
Tccr0b = &B00000001
Tcnt0 = &B00000000
Timsk0 = &B00000000
Tifr0 = &B00000000
Dim I As Byte
Mop:
For I = 0 To 140
Ocr0a = I
Waitms 100
Next I
Goto Mop
End
mfg
tobi
Hallo!
Ich möchte bei einen Atmega168 den Timer2 verwenden. Scheinbar habe ich ein ähnliches Problem. Der Ausgang ist immer auf 5V. Habe folgendes nacheinander Versucht:
Leider bin ich bisher zu keiner Lösung gekommen.Code:Config Timer2 = Pwm , Pwm = On , Compare A Pwm = Clear Up , Prescale = 1
und:
Tccr2a = &B11000001
Tccr2b = &B00000001
Tcnt2 = &B00000000
Timsk2 = &B00000000
Tifr2 = &B00000000
Ocr2a = Variable
Vielen Dank und schönen Gruß
Timo