Forum: Mikrocontroller und Digitale Elektronik Atmega644-20AU /Timer /L293 /Pinbelegung


von Ch S. (spelli)


Lesenswert?

Hallo,

ich möchte über einen Atmega644-20AU (habe nur den auf einem 
Entwicklerboard mit 20 MHz) 2x L293D Motortreiber ansprechen (insgesamt 
4x 2polige DC Motoren mit Stromaufnahme ca. 100 mA).

Ich möchte die Geschwindigkeit per PWM ansprechen. Hierzu möchte ich die 
Hardware-PWM nutzen bei 20 MHz.

Ich kann aus den Datenblättern immer nie die Bezeichnungen der PWM-Pins 
herauslesen und welcher von den wieviel Bit kann.

1) 8Bit Timer0
2) 16Bit Timer1
3) 8Bit Timer2

Aber sowas wie OCF2A oder OCF2B finde ich bei den Pins nicht...

Danke für Hilfe,

Christoph

von Spess53 (Gast)


Lesenswert?

Hi

>Aber sowas wie OCF2A oder OCF2B finde ich bei den Pins nicht...

Die heißen auch OC0A, OC1A, OC2A ... .

MfG Spess

von Ch S. (spelli)


Lesenswert?

Okay, danke. Ich finde die Datenblätter manchmal etwas verwirrend!

von Ch S. (spelli)


Lesenswert?

Hallo,

leider startet mein Atmega644 nach dem Print "Ctrl v.0.1" immer wieder 
neu...

Ich möchte 4 DC Motoren in der Richtung und über 4x PWM in der 
Geschwindigkeit regeln - aber da stimmt was nicht!


1
'################################################################
2
'
3
' Control  v. 0.1
4
' -------------------------------------
5
'
6
' Stand: 21.02.2013, ATmega644
7
'
8
'
9
10
'################################################################
11
12
13
14
'--------------------------------------------------------------------------
15
' Compilerinstruktionen und Compilerdirektiven
16
'--------------------------------------------------------------------------
17
18
$regfile = "m644def.dat"
19
$crystal = 20000000
20
$hwstack = 64
21
$swstack = 64
22
$framesize = 64
23
$baud = 9600
24
25
'--------------------------------------------------------------------------
26
' Definition von Ressourcen
27
'--------------------------------------------------------------------------
28
29
Led Alias Portd.2                                           ' rote LED
30
31
32
'Treiber L293 oben (1) / Timer2
33
1_pwm1_z Alias Portd.7
34
1_m1a_z Alias Portc.3
35
1_m1b_z Alias Portc.4
36
37
1_pwm2_f Alias Portd.6
38
1_m2a_f Alias Portc.7
39
1_m2b_f Alias Portc.6
40
41
42
'Treiber L293 unten (2) / Timer0
43
2_pwm1_p Alias Portb.3
44
2_m1a_p Alias Portb.1
45
2_m1b_p Alias Portb.2
46
47
2_pwm2_t Alias Portb.4
48
2_m2a_t Alias Portb.0
49
2_m2b_t Alias Portc.5
50
51
52
53
54
'--------------------------------------------------------------------------
55
' Definition von Konstanten
56
'--------------------------------------------------------------------------
57
58
59
60
'--------------------------------------------------------------------------
61
' Definition von Variablen und Datentypen
62
'--------------------------------------------------------------------------
63
64
'---- PWM für A293D ----
65
Dim 1z As Integer
66
Dim 1f As Integer
67
Dim 2p As Integer
68
Dim 2t As Integer
69
70
71
72
'--------------------------------------------------------------------------
73
' Konfiguration und Basiseinstellungen
74
'--------------------------------------------------------------------------
75
76
77
' Timer2 für PWM 8Bit L293D (1) "oben"
78
Config Timer2 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
79
80
' Timer0 für PWM 8Bit L293D (2) "unten"
81
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
82
83
84
85
'---- Timer ----
86
87
88
'---- Outputs ----
89
Config Led = Output
90
91
92
'Treiber L293 oben (1) / Timer2
93
Config 1_pwm1_z = Output                                    'OC2A
94
Config 1_m1a_z = Output
95
Config 1_m1b_z = Output
96
97
Config 1_pwm2_f = Output                                    'OC2B
98
Config 1_m2a_f = Output
99
Config 1_m2b_f = Output
100
101
102
'Treiber L293 unten (2) / Timer0
103
Config 2_pwm1_p = Output                                    'OC0A
104
Config 2_m1a_p = Output
105
Config 2_m1b_p = Output
106
107
Config 2_pwm2_t = Output                                    'OC0B
108
Config 2_m2a_t = Output
109
Config 2_m2b_t = Output
110
111
112
113
114
'---- Interrupts ----
115
Enable Interrupts
116
Enable Timer0
117
Enable Timer2
118
119
120
121
'--------------------------------------------------------------------------
122
' Init
123
'--------------------------------------------------------------------------
124
125
1_m1a_z = 0                                                 ' L293D Zoom OFF
126
1_m1b_z = 0
127
'1z = 150                                                    ' Anfangsgeschwindigkeit für PWM L293D
128
'Ocr2a = 1z
129
130
1_m2a_f = 0                                                 ' L293D Focus OFF
131
1_m2b_f = 0
132
'1f = 150                                                    ' Anfangsgeschwindigkeit für PWM L293D
133
'Ocr2b = 1f
134
135
2_m1a_p = 0                                                 ' L293D PAN OFF
136
2_m1b_p = 0
137
'2p = 150                                                    ' Anfangsgeschwindigkeit für PWM L293D
138
'Ocr0a = 2p
139
140
2_m2a_t = 0                                                 ' L293D TILT OFF
141
2_m2b_t = 0
142
'2t = 150                                                    ' Anfangsgeschwindigkeit für PWM L293D
143
'Ocr0b = 2t
144
145
Led = 1
146
147
Print "Ctrl v.0.1"
148
149
150
'--------------------------------------------------------------------------
151
' Hauptprogramm
152
'--------------------------------------------------------------------------
153
154
155
Do
156
157
2_m2a_t = 1
158
2_m2b_t = 0
159
160
Ocr0b = 150
161
162
163
164
165
Loop
166
167
End

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
Noch kein Account? Hier anmelden.