alternative Pin-Funktionen

Gast #3151586
Lesenswert?

Hallo nochmals,
mal eine kurze Frage zu alternativen Pin-Funktionen.
Angenommen ich möchte die Input-Capture-Funktion des Timers 1 benutzen, 
wie mache ich das?
Im Datenblatt meines Controllers steht das der PE0 als alternative 
Funktion auch als ICP (Input-Capture-Pin) für den Timer verwendet werden 
kann. Dann steht dort noch etwas von Override Signals, allerdings komme 
ich damit nicht ganz zurecht und das AVR-Tut. hilft mir in dieser 
Hinsicht irgendwie auch nicht.

MfG
Gast #3151664
Lesenswert?

Hi

> Dann steht dort noch etwas von Override Signals, allerdings komme
>ich damit nicht ganz zurecht und das AVR-Tut. hilft mir in dieser
>Hinsicht irgendwie auch nicht.

Das bezieht sich auf das Verhalten des PINs im Normal- bzw. den 
verschiedenen Sleep-Modes.

ICP habe ich noch nicht gebraucht, aber wenn ich das richtig sehe 
brauchst du nur den Interrupt aktivieren und eine passende ISR zu 
schreiben.

MfG Spess
Gast #3151988
Lesenswert?

Hmm, ich habe mal probiert mit dem Timer1 ein PWM-Signal eines 
Empfängers auszuwerten. Signallänge die üblichen 20ms, 1ms=-100% und 
2ms=+100%. Mit dem Programm wollte ich einfach nur ein- oder 
ausschalten, also bei Signal<1,5ms auf aus und bei Signal>1,5ms auf ein. 
Wenn ich den Timer mit 3,686MHz Taktfrequenz laufen lasse entsprächen 
1,5ms in etwa einer 5529. Als Eingang habe ich PE0 genommen (laut 
Datenblatt alternative Funktion ICP). Das Programm ist mal im Anhang, 
funktioniert aber nicht...
Liegt das daran dass das Programm eh murks ist oder womöglich daran dass 
da was mit dem ICP nicht hin kommt?

MfG
Angehängte Dateien:
#3152235
Lesenswert?

Hallo,

das kann nichts werden ...
1
  TCCR1B=(1<<ICES1);    //ICES1=1 => Reaktion auf steigende 
2
  TCCR1B=(1<<CS10);    //Takt auf CPU-Takt gesetzt
die zweite Zeile überschreibt den Zustand der ersten Zeile!
nimm das richtige Register.
1
if(ICES1==1)
ICES1 ist eine definierte Konstante und verändert ihren Wert nie!

Sascha

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren