Synchronisationsprobleme mit PWM Takt bei atmega16

OP #1594889
Lesenswert?
• ▲
▼
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!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.