atmega256rfr2 externen Pulsgeber zählen

Gast #4366065
Lesenswert?
• ▲
▼
Hallo,
ich habe eine Frage und zwar habe ich einen externen Pulsgeber an dem 
Port PE3 angeschlossen. Ich möchte nun messen/zählen wie oft ein Puls 
gegeben wurde.
Kann mir jemand vielleicht helfen bitte?

Ich habe auch schon etwas ausprobiert aber da passiert nichts.

TCCR1A = 0;
TCCR1B= (1<<PE3);
_delay_ms(100);
z= TCNT1
return z;


Vielen Dank schonmal
#4366070
Lesenswert?
• ▲
▼
Wittich schrieb:
> Hallo,
> ich habe eine Frage und zwar habe ich einen externen Pulsgeber an dem
> Port PE3 angeschlossen. Ich möchte nun messen/zählen wie oft ein Puls
> gegeben wurde.
> Kann mir jemand vielleicht helfen bitte?
>
> Ich habe auch schon etwas ausprobiert aber da passiert nichts.
>
> TCCR1A = 0;
> TCCR1B= (1<<PE3);

Äh. Nein.
So geht das nicht.
Du kannst nicht einfach irgendeinen Pin nehmen und dann wild einem 
Register zuweisen. Du wirst schon im Datenblatt nachlesen müssen, an 
welchem Pin du einen externen Takt für den Timer 1 zuführen kannst.
Und dann stellst du für diesen Timer bei den Prescaler Eigenschaften 
ein, dass du auf diesen externen Takt zurückgreifen möchtest.

Hilft nichts. Du wirst dich wohl oder übel mit den Timern beschäftigen 
müssen.
Gast #4366089
Lesenswert?
• ▲
▼
Könnte ich vielleicht einen Tipp bekommen, weil ich bin komplett neu 
hier und weiß nicht einmal, wie man am besten vorgehen soll. :/

Also im Datenblatt steht, bei PE3 wo der Pulsgeber angeschlossen ist 
folgendes:
PE3:OC3A:AIN1.

Desweiteren steht dort:
AIN1/OC3A (Analog Comparator Negative Input or Output Compare and PWM 
Output A
for Timer/Counter3) zu dem Pin PE3.


Was muss ich jetzt noch angucken?
Also muss ich den Timer3 benutzen oder verstehe ich das falsch?

Vielen Dank für Ihre Hilfe
#4366097
Lesenswert?
• ▲
▼
Wittich schrieb:
> Könnte ich vielleicht einen Tipp bekommen, weil ich bin komplett neu
> hier und weiß nicht einmal, wie man am besten vorgehen soll. :/
>
> Also im Datenblatt steht, bei PE3 wo der Pulsgeber angeschlossen ist
> folgendes:
> PE3:OC3A:AIN1.

Das interessiert aber keinen.
Wenn du den Timer 1 benutzen willst, dann musst du beim Timer nachsehen 
an welchem Pin der seinen externen Takt erwartet!

Du kannst bei AVRs nicht einfach irgendeinen Pin benutzen. Was ein Pin 
kann ist dir vorgegeben. Und du brauchst den Pin, an dem du dem Timer 
einen externen Takt vorgeben kannst.

Mal kurz nachdenken. Beim Pin PE3 steht also

* AIN1/OC3A (Analog Comparator Negative Input

Hat der Timer irgendwas mit dem Analog Comperator (der Spannungen 
miteinander vergleicht) zu tun? Wohl eher nicht.

* or Output Compare and PWM Output A for Timer/Counter3)

Da steht klar und deutlich Output. Ist ein Takteingang für einen Timer 
als Output zu klassifizieren? Nicht wirklich. Ich benutz ja schon die 
ganze Zeit das Wort 'Takteingang'. Output ist das genau Gegenteil von 
'Eingang'. Output bedeutet: da kommt etwas heraus. Du willst aber das 
genaue Gegenteil: du willst etwas in den µC hineinbringen. Also wird 
wohl ein Output Pin nicht das sein was du suchst.
#4366111
Lesenswert?
• ▲
▼
Hinweis.
Das 'n' in der Timer bzw. in der Prescalerbeschreibung wie zb hier
1
18.3 External Clock Source
2
An external clock source applied to the Tn pin can be used as
3
                                       ****
4
Timer/Counter clock (clkTn). ....
steht für die Nummer der Timers. Wenn du also den Clock Eingang für den 
Timer 1 suchst, dann brauchst du den Pin, bei dem T1 dabei steht. Der 
Clock Eingang für den Timer 3 wäre der Pin, bei dem T3 dabei steht usw. 
usw.

Für den Timer 1 wäre das der Pin PD1. Von dort und nur von dort kannst 
du den Timer mit einem externen Takt versorgen und ihn so als Pulszähler 
benutzen.
#4366120
Lesenswert?
• ▲
▼
Und dann studierst du noch die Tabelle 17-6 auf Seite 157 des 
Datenblattes. Das sagt dir, welche CS-Bits du im Register TCCR1B wie 
setzen musst, damit der Timer seinen Zähltakt nicht vom interenen 
Systemtakt sondern eben genau von diesem Pin für den externen Takt 
bezieht.

Antwort schreiben

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.

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.