Code:
#include <avr/io.h>
#include <stdint.h>
#include <avr/interrupt.h>
volatile uint16_t *s; /*Externe veränderliche Pointervariable S=Schritt im 16bit register! 65530Zeichen!*/
void auffuellen (void)
{
volatile int i=0; /*Counter Variable*/
unsigned int zaehler=0;
*s=0;
PORTD |= (1<<PD1); /*Drehrichtung*/
/*Taktgebung*/
TCCR0 |= (1<<CS02); /* CPU Takt / 256*/
TIMSK |= (1<<OCIE0);
OCR0=8; /*Bei 8 wird das Interrupt ausgelöst! Counter beginnt bei 0*/
for(*s=0;*s<=552;*s++) /*Schrittmotor soll 552 einzelne Schritte tun*/
{
PORTD &= ~(1<<PD0); /*PIN 1 wird auf Low gesetzt,Motor dreht sich noch nicht!*/
sei();
if (i==4)
{zaehler++;
i=0;}
/*Motor bewegt sich um einen Schritt*/
if(zaehler==1)
{
PORTD |=(1<<PD0);}
if(zaehler==2)
{
PORTD &= ~(1<<PD0);
zaehler=0;
}
}
ISR (TIMER0_COMP_vect)
{
i++;
}
}
Compiler gibt mir noch immer ein Fehler bei der ISR aus! Was mach ich falsch??
Grüsse
Lesezeichen