Forum: Mikrocontroller und Digitale Elektronik 8 Bit Timer 125kHz welchen Vorteiler


von Chris (Gast)


Lesenswert?

Hi Leute,

ich habe eine "Vorlage" für einen RFID Reader mit einem ATMega8 
gefunden. Dieser ist mit 8MHz getaktet. Dort wird ein Teiler für den 
Timer von 64 genutzt, um die 125kHz Frequenz zu erhalten.

Ich möchte das ganze mit einem ATMega16 machen. Leider habe ich einen 
16MHz Quarz an dem Mega16 hängen. Also bräuchte ich einen Vorteiler von 
128. Leider gibts den nicht... Man kann laut Datenblatt nur durch 
8/64/256/... teilen.

Hab ich ne andere Möglichkeit, als mir nen 8MHz Quarz zu besorgen?

von holger (Gast)


Lesenswert?

>Hab ich ne andere Möglichkeit, als mir nen 8MHz Quarz zu besorgen?

Ja, du musst nur bis zwei zählen können.

von Spess53 (Gast)


Lesenswert?

Hi

>Hab ich ne andere Möglichkeit, als mir nen 8MHz Quarz zu besorgen?

Schon mal was von CTC gehört?

MfG Spess

von Chris L. (chk1987) Benutzerseite


Lesenswert?

Spess53 schrieb:
> Schon mal was von CTC gehört?

Nein!?!? Sorry, ich bin wirklich Anfänger

von holger (Gast)


Lesenswert?

>Schon mal was von CTC gehört?

Der läuft doch vermutlich sowieso schon.
Bei 16MHz muss man halt ne 1 ins Compare Register schreiben.

von Spess53 (Gast)


Lesenswert?

Hi

>Nein!?!? Sorry, ich bin wirklich Anfänger

Was wird denn mit den 125kHz gemacht. Soll ein Pin mit der Frequenz 
wackeln?

MfG Spess

von Chris L. (chk1987) Benutzerseite


Lesenswert?

Die 125kHz brauche ich (soweit ich das verstanden habe) um das vom 
EM4095 empfangene ManchesterSignal decodieren zu können

Vielleicht könnt ihr ja damit mehr anfangen. Vielleicht versteh ich das 
völlig falsch

Beitrag "USB RFID Tag Leser"

von holger (Gast)


Lesenswert?

>Beitrag "USB RFID Tag Leser"

Oha, besorg dir einen 8MHZ Quarz;)

von Spess53 (Gast)


Lesenswert?

Hi

C ist zwar nicht meine Programmiersprache, aber in diesen Zeilen wird 
das meines Wissens automatisch angepasst:

#define MANCHESTER_LONG (F_CPU / F_RFID * 64 / TIMER0_PRESCALER)
#define MANCHESTER_SHORT (F_CPU / F_RFID * 64  TIMER0_PRESCALER  2)

Du musst nur F_CPU richtig definieren.

MfG Spess

von chris (Gast)


Lesenswert?

Ja, aber in der mein muss der vorteiler eingestellt werden. da hab ich 
dann schin mal nicht die moeglichkeit den eigentlich richtigen teiler zu 
waehlen...

@holger

meinst du das ernst, oder ironisch weil ich zu doof bin?

von chris (Gast)


Lesenswert?

Main meinte ich ;)

von Spess53 (Gast)


Lesenswert?

Hi

>Ja, aber in der mein muss der vorteiler eingestellt werden. da hab ich
>dann schin mal nicht die moeglichkeit den eigentlich richtigen teiler zu
>waehlen...

Quatsch. Lass den bei 64 und stell deine 16MHz als Takt ein. Fertig.

MfG Spess

von chris (Gast)


Lesenswert?

Das komische ist ja auch, dass fcpu nirgens definiert wure...

von holger (Gast)


Lesenswert?

>@holger
>
>meinst du das ernst, oder ironisch weil ich zu doof bin?

Nö, du bist nicht zu doof. Ich wollte mir den Megathread
nur nicht antun. Folge einfach spess oder versuchs mal mit
dem internen RC Osci bei 8MHz. Könnte auch gehen.

von Chris L. (chk1987) Benutzerseite


Lesenswert?

@holger

im zweiten Post des Threads sind bereits die Quelldateien zu finden. Ist 
es nicht komisch, dass F_CPU nirgends definiert wird? Bei mir bringts 
zumindest sofort ne Fehlermeldung beim Kompilieren... Ach stimmt... es 
gibt ja auch noch den internen RC OSzi... Das werd ich probieren... 
Danke

von Spess53 (Gast)


Lesenswert?

Hi

>Das komische ist ja auch, dass fcpu nirgens definiert wure...

Dann sieh mal in deinen Projekteinstellungen nach. Auch als Anfänger 
solltest du dein Werkzeug kennen.

MfG Spess

von holger (Gast)


Lesenswert?

>Ist es nicht komisch, dass F_CPU nirgends definiert wird? Bei mir bringts
>zumindest sofort ne Fehlermeldung beim Kompilieren.

Im makefile steht F_CPU drin, in Firmware\usb_rfid_reader_II.aps auch.

Und es sind nicht 8MHz:

-DF_CPU=7372800UL

Muss wohl nicht so genau sein;)

von asdf (Gast)


Lesenswert?


von holger (Gast)


Lesenswert?

@asdf

>Baudratenquarz

Du hättest auch Gurkensalat schreiben können.
Bringt genauso viel weiter.

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
Noch kein Account? Hier anmelden.