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
Hi
>Aber sowas wie OCF2A oder OCF2B finde ich bei den Pins nicht...
Die heißen auch OC0A, OC1A, OC2A ... .
MfG Spess
Okay, danke. Ich finde die Datenblätter manchmal etwas verwirrend!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.