PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASCOM Fehler ATmega168 ! Timer0 kann nicht PWM sein!



EDatabaseError
31.10.2006, 22:16
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?

linux_80
31.10.2006, 22:56
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 !

EDatabaseError
01.11.2006, 07:42
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

EDatabaseError
01.11.2006, 17:50
Ich hab das ganze jetzt direkt in die Register gewurschtelt *g*

Hat beim 1. Versuch einwandfrei funktioniert!

Danke.

Mfg

Bluesmash
17.11.2006, 17:30
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

EDatabaseError
17.11.2006, 19:14
$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

jo hier hab ich mal ein Testprog.

mfg
tobi

timmy83
19.03.2008, 14:50
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:



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




Leider bin ich bisher zu keiner Lösung gekommen.

Vielen Dank und schönen Gruß

Timo