So sollte es aussehen ...
.. obs funktioniert hab ich nicht geprüft, nur lesbar geordnet und syntax korrigiert ...
Code:
#define F_CPU 8000000L // Systemtakt in Hz
#include <stdint.h>
#include <string.h>
#include <avr/io.h>
#include <avr/interrupt.h>
volatile uint8_t takt = 0; // Grundinitinalisierung nie vergessen
void AVRinit(void)
{
// DDRD &= (~ (1<<PD2)); // Pin D2 als Eingang -- unnötig
// wenn schon, dann:
DDRD = 0;
PORTD |= (1<<PD2); // Pull Up von PIN D2 aktivieren
DDRD |= (1<<PD3); // PortD3 wird Ausgang
TCCR0 = 0 | (1<<CS00); //kein Prescaler
TIMSK |= (1<<TOIE0); // Overflow Interrupt en
}
SIGNAL(TIMER0_OVF_vect)
{
takt++;
}
int main(void)
{
AVRinit();
// wo war denn die MainLoop ?
for(;;)
{
if(takt >= 10)
{ //Takt bis 10 zählen
PORTD ^= (1<<PD3); //PortD3 toggelt 50% PWM
// ist das absicht, hier takt nicht wieder auf 0
// zu setzen ?
// ohne das, ist fortan true für die restlichen 244 schritte
}
if (!( PIND & (1 << PIND2)))
{ // mache was wenn PinD2 low ist
// Hier: der Getriebemotor an L293D soll mit 50% laufen
}
}
return(0); // damit der compiler keine Warnungen ausgibt ...
}
Jetzt dürfte der compiler jedenfalls keinen Fehler mehr melden ...
Lesezeichen