Hallo zusammen,
ich habe ein RN-Mega2560 http://www.robotikhardware.de/download/rnmega2560.pdf und möchte in Bascom ein ca. 2 kHz starkes PWM Signal erzeugen. Dazu wollte ich den Timer1 benutzen.
Die Quarzfrequenz liegt bei 16000000
Der Timer1 ist ein 16 Bit Timer. Soviel ich weiß, kann man den 16 Bit Timer auch mit weniger Bit betreiben, um dass mal laienhaft auszudrücken.
Wenn ich den Prescaler auf 256 setzte und den Timer auf 14 Bit setze, erhalte ich 1,9 kHz. Allerdings bekomme ich beim komiplieren einen Fehler: Invalid parameter for config parameter or value [14]
Mein Programm:
Hat jemand eine Idee, ich muss ein ca. 2 kHz starkes PWM-Signal erzeugen. Nicht unbedingt mit Timer1.Code:' PWM Testprogram'''''$prog , 255 , &B11011100, $prog , 255 , &B11011001, $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 68 '44 $crystal = 16000000 'Quarzfrequenz $baud = 19200 Config Pind.5 = Output Led Alias Portd.5 Config Pinc.0 = Output ' Stiftleiste JP 2; Pin 3; PC0 Motor1_reset Alias Portc.0 Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1 Motor1_rotational_direction Alias Portc.1 Dim Motor1_speed As Integer Echo Off Config Timer1 = Pwm , Pwm = 14 , Compare A Pwm = Clear Up , Prescale = 256 ' Stiftleiste JP 1; Pin 24 Led = 0 ' LED einschalten Motor1_reset = 1 Waitms 1 Motor1_reset = 0 Waitms 1 Motor1_reset = 1 Motor1_rotational_direction = 1 Motor1_speed = 127 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Do ' Der max. Wert von Compare1a liegt bei 2 hoch Bit-Wert => 2 hoch 8 = 256. Da ab 0 gezählt wird, ist der max. Wert für einen 8 Bit-Timer 255 Compare1a = Motor1_speed ' Stiftleiste JP 1; Pin 24 Loop '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End
Vielen Dank.
Grüße
datatom







Zitieren

Lesezeichen