Hallo zusammen,
ich komme mir so langsam echt blöd vor. ich möchte eine
Drehrichtungsumschaltung mittels H-Bridge realisieren eher gesagt will
ich nur die vorhandene H-Bridge meines RN DualMotor mit meinem Atmega8
ansteuern. Immer wenn ich 4 Ausgänge des selben Ports verwende
funktioniert das ganze nicht, wenn ich 2 von Port B und z.B. 2 von Port
D benutze funktioniert es. Ich blicke da echt nicht durch. Anbei mal der
code der nicht funktioniert aber die Pins benutzt die ich später gerne
hätte.
1 | DDRD =(1 <<PD0)|(1 <<PD1)|(1 <<PD2)|(1 <<PD3);
|
2 | PORTD = (1 << PD0)|(1 << PD1)|(1 << PD2)|(1 << PD3);
|
3 | while(1)
|
4 | {
|
5 | switch (rxbuffer[2])
|
6 | {
|
7 | case 1 :
|
8 | PORTD = (1 << PD0);
|
9 | PORTD &=~ (1 << PD1);
|
10 | break;
|
11 |
|
12 | case 2 :
|
13 | PORTD = (1 << PD1);
|
14 | PORTD &=~ (1 << PD0);
|
15 | break;
|
16 | default:
|
17 | PORTD = (1 << PD0)|(1 << PD1);
|
18 | }
|
19 |
|
20 | switch (rxbuffer[3])
|
21 | {
|
22 | case 1 :
|
23 | PORTD = (1 << PD2);
|
24 | PORTD &=~ (1 << PD3);
|
25 | break;
|
26 |
|
27 | case 2 :
|
28 | PORTD = (1 << PD3);
|
29 | PORTB &=~ (1 << PD2);
|
30 | break;
|
31 | default:
|
32 | PORTD = (1 << PD2)|(1 << PD3);
|
33 | }
|
34 | }
|
Die variablen rxbuffer2 & 3 lese ich per I²C ein das funktioniert auch.
Wenn ich jetzt einen der beiden motoren von Port D an z.b. Port B hänge
funktioniert das ganze. Nur so wie es hier ist und ich es auch gerne
hätte bekomme ich einfach nie einen High Pegel auf den Ausgängen. habe
die Schaltung momentan auf einem Pollin Evaluationsboard das mit einem
breadboard verbunden ist.
Bin für jede Hilfe dankbar.
MfG
Striker1985