Hallo,
Bin am C erlernen. Einen kleinen Einblick habe ich mit Asuro bekommen. Nun wollte ich es einmal ohne der asuro.c und asuro.h Dateien probieren.
Bis jetzt habe ich mir erst das ein und ausschalten der Ports beigebracht.
Jetzt wollte ich mit dieser Funktion die H-Brücke ansteuern. So wie ich es verstanden kann ich PB1 und PB5 auf +5v stellen um den Motor mit voller Geschwindigkeit laufen zu lassen. Habe dies versucht, jedoch ohne Erfolg. Ich denke der Fehler liegt an der PWM Leitung. Muss PB1 immer ein PWM Signal senden. Theoretisch nicht und das bedeutet Vollgas.
Habe auch das Asuro-Wiki konsultiert, jedoch ohne erfolg.
Wo Liegt der Fehler?
Hier der Code:
Code:
#include <avr/io.h>
#define FRONT_LED (1<<PD6)
#define STATUS_LED_GRUN (1<<PB0)
#define STATUS_LED_ROT (1<<PD2)
#define BACK_LED_RECHTS (1<<PC0)
#define BACK_LED_LINKS (1<<PC1)
#define PORT_B5 (1<<PB5)
#define PORT_D5 (1<<PD5)
#define MOTOR_PWM_B (1<<PB1)
#define Motor_PWM_D (1<<PD1)
int main (void) {
DDRB |= STATUS_LED_GRUN | PORT_B5 | MOTOR_PWM_B;
DDRC |= BACK_LED_RECHTS | BACK_LED_LINKS;
DDRD |= FRONT_LED | STATUS_LED_ROT | PORT_D5 | Motor_PWM_D;
PORTB |= STATUS_LED_GRUN | PORT_B5 | MOTOR_PWM_B;
PORTC |= BACK_LED_RECHTS | BACK_LED_LINKS;
PORTD |= FRONT_LED | STATUS_LED_ROT | PORT_D5 | Motor_PWM_D;
return 1;
}
Lesezeichen