www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Synchronisationsprobleme mit PWM Takt bei atmega16


Autor: Daniel G. (dcg)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> while(PIND7==0){;}
Mit welchem Compiler willst du das übersetzen?
Wie ist das Makro PIND7 definiert?

Autor: Daniel G. (dcg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Compilieren möchte ich das mit avr gcc.

PIND7 bezeichnet das Register, das den Wert von PortD Pin7 enthält.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.