Hallo Zusammen ! Ich möchte über einen atmega16 gerne einen CMOS Sensor ansteuern. Als Clock bekommt der CMOS ein Rechteckt aus einem PWM (8bit,Timer/counter2) von ca 59kHz. Das Auslesen des CMOS soll über ein High an PIN3 am Port A gestartet werden. Ich möchte gerne diesen Puls mit dem PWM Clock synchronisieren, d.h. er soll dann ausgelöst werden wenn der Clock gerade eine fallende Flanke hat. Leider habe ich noch nicht so viel Erfahrung beim Umgang mit Mikrocontrollern. Meine Idee war jetzt über eine while-Schleife den PIN des PWM Ausgangs(PIND7) zubeobachten und wenn er wechselt den Startpuls einzuschalten. Hier der Codeausschnitt: while(1) { ... // Auf fallende Flanke warten while(PIND7==0){;} while(PIND7){;} //Start Puls PORTA |= (1 <<PA3); _delay_us(60); PORT A &=~(1 <<PA3); ..A/D-Wandlung.. ..USART-Ubertragung.. } Jedoch bekomme ich keine stablies Timing hin. Wenn ich auf den Startpuls des CMOS triggere,wandert der PWM Puls immer stark hin und her. Vielleicht hat ja jemand Erfahrung bei dem Thema und kann mir einen Tipp geben. Vielen Dank!
> while(PIND7==0){;}
Mit welchem Compiler willst du das übersetzen?
Wie ist das Makro PIND7 definiert?
Compilieren möchte ich das mit avr gcc. PIND7 bezeichnet das Register, das den Wert von PortD Pin7 enthält.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.