So sollte es aussehen ...
.. obs funktioniert hab ich nicht geprüft, nur lesbar geordnet und syntax korrigiert ...
Jetzt dürfte der compiler jedenfalls keinen Fehler mehr melden ...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 ... }







Zitieren

Lesezeichen