Gast
#264048
Hallo, ich bin erst seit kurzem mit einem Mega8 angefangen zu programmieren. Habe nun folgendes Problem: Habe meinen Empfänger an den Mega8 gehängt und will bei einer bestimmten Knüppelstellung eine LED zum Leuchten bringen. Will das wenn man Spannung anlegt das Board die Neutralposition lernt. Folgendes ist auszuwerten: es gibt einen Puls der 1-2 ms lang ist. 1,5ms entsprechen Neutralstellung. Hier mein Ansatz: #include <avr/io.h> void init(void); int main(void) { unsigned int count=0; unsigned int offset=0; init(); // Ports deklarieren loop_until_bit_is_set(PINC,0); // Warten bis Signal Anfängt while (PINC & (1<<PIN0)) // Zählschleife für Neutralstellung { offset++; } while(1) // Endlosschleife { while (PINC & (1<<PIN0)) // Zählschleife für Pulslänge { count++; } if (count>offset)// Wenn Knüppel nach oben bewegt wird LEDs an { PORTB = 0xff; count=0; } else { PORTB = 0x00; count=0; } } } // Initialisierung void init(void) { DDRB = 0xff; // PortB als Ausgang deklarieren PORTB = 0x00; // Ports auf LOW schalten DDRC = 0x00; // PortC als Eingang deklarieren PORTC = 0x00; // ohne Pull-Up-Widerstände }