Hallo zusammen,

ich versuche mit einem ATMEGA2561 http://www.atmel.com/Images/doc2549.pdf in Bascom ein PWM-Signal zu erzeugen. An dem ATMEGA habe ich die Pololu Motorsteuerung http://www.pololu.com/catalog/product/755 angeschlossen, klappt leider nicht.

Zuerst habe ich versucht die Frequenz zu berechnen: (Frequenz des Quartz 16000000/Prescaler 1024)/(2^16Bit*2) = 119 Hz
Dann habe ich in Bascom die Register des ATMEGA2561 eingestellt auf Fast PWM, Prescaler, usw.
Tccr1a = &B11000011
Tccr1b = &B00011101

Hat jemand vielleicht einen Tipp? Mich interessiert als erstes:
Habe ich die Frequenz richtig berechnet?
Habe ich die Register richtig belegt?

Vielen Dank für die Hilfe im Voraus.

Grüße

datatom

Das Bascom-Programm sieht so aus:
Code:

 ' 

$regfile = "m2561def.dat"
$hwstack = 82                 '80
$framesize = 68               ' 64
$swstack = 68                 '44




$crystal = 16000000           'Quarzfrequenz
$baud = 19200


' Portbelegung Seite 3 in der ATMEL-DOKU - Pinbelegung siehe Alvidi Doku


Config Pinb.5 = Output        ' Pin 22; PB5 für Timer1/ OC1A im FAST PWM-Modus




Config Pinf.0 = Output
Led0 Alias Portf.0
Config Pinf.1 = Output
Led1 Alias Portf.1
Config Pinf.2 = Output
Led2 Alias Portf.2
Config Pinf.3 = Output
Led3 Alias Portf.3


Config Pinc.0 = Output        ' Pin 45; PC0
Motor1_reset Alias Portc.0


Config Pinc.1 = Output        ' Pin 46; PC1
Motor1_direction Alias Portc.1




Dim I1 As Integer
Dim I2 As Integer
Dim Takt_hz As Long


Echo Off


Led0 = 1                      ' LEDs einschalten
Led1 = 1
Led2 = 1
Led3 = 1

' reset Motortreiber
Motor1_reset = 1
Waitms 500

Motor1_reset = 0
Waitms 500

Motor1_reset = 1


Motor1_direction = 1


I1 = 1
I2 = 50

On Compare1a Timer1_isr
Tccr1a = &B11000011          
Tccr1b = &B00011101           '
Enable Compare1a
Enable Interrupts


Compare1a = 30                ' Frequenz Hz für die Drehgeschwindigkeit


Loop


End


Timer1_isr:


I1 = I1 + 1


If I1 = 1025 Then


   'Tccr1b = &B00001000                                      ' Timer/ Counter stopped, no clock source


End If


Return