Stimmt! Habe das nun geändert und es tut sich leider jetzt gar nichts mehr der Motor zuckt anfangs nichtmals.
Das Delay hatte ich so extrem lang gemacht um besser per LED sehen zu können was passiert.
hier der aktuelle Code:
Code:
#define F_CPU 11059000 // Clock Speed
#include <avr/io.h>
#include <util/delay.h>
#define LED1_Pin1 6
#define LED1_Pin2 7
#define LED1_Pin1_Port PORTD
#define LED1_Pin2_Port PORTD
#define MOTOR_CcW 5
#define MOTOR_Clock 7
#define MOTOR_Enable 6
#define MOTOR_PORT PORTA
void Port_Init(void)
{
DDRA = 0b11111111;
DDRD = 0b11111100;
}
void LED1(char option) //Duo LED r/g
{
if(option == 'r')
{LED1_Pin1_Port |= (1 << LED1_Pin1); LED1_Pin2_Port &= ~(1 << LED1_Pin2);}
else if(option == 'g')
{LED1_Pin2_Port |= (1 << LED1_Pin2); LED1_Pin1_Port &= ~(1 << LED1_Pin1);}
else
{LED1_Pin1_Port |= (1 << LED1_Pin1); LED1_Pin2_Port |= (1 << LED1_Pin2);}
}
void DELAY(int w)
{
int p;
for(p=0;p<=w;p++)
{
_delay_ms(10);
}
}
void pulseMOTOR(void)
{
LED1('r');
MOTOR_PORT |= (1 << MOTOR_Clock);
DELAY(1);
MOTOR_PORT &= ~(1 << MOTOR_Clock);
LED1('g');
DELAY(1);
} --- Hauptprogramm ---
int main(void)
{
Port_Init();
LED1('g');
MOTOR_PORT |= (1 << MOTOR_CcW);
MOTOR_PORT &= ~(1 << MOTOR_Enable);
while(1)
{
pulseMOTOR();
DELAY(100);
}
}
Lesezeichen