Forum: Mikrocontroller und Digitale Elektronik Timer programieren?


von Thomas L. (feuerwehr)


Lesenswert?

Hallo zusammen,

ich möchte einfach nur eine LED an Port D eines ATmega16 zum Blinken 
bringen.

Mit der Manual komm ich nicht zurecht...

Welche Interrupts muß ich freigeben?
Wie Programmier ich den Timer?

Ich programmier in C und will kein Delay-Blinken.

Über eure Hilfe würd ich mich sehr freuen.

Gruß
Thomas

von johnny.m (Gast)


Lesenswert?

Wenn Du mit "Manual" das Datenblatt meinst, dann solltest Du Dir 
vielleicht mal die Tutorials auf dieser Seite (v.a. das 
AVR-GCC-Tutorial) anschauen. Da wirst Du behutsam in die Programmierung 
der AVRs mit all ihren Tücken eingeführt.

von Jörn P. (jonnyp)


Lesenswert?

Vielleicht kannst du dazu mal ein paar Zahlen rüberwachsen lassen.
Welchen Timer willst du benutzen? Welche Frequenz hat dein Takt? Welche 
Blinkfrequenz wünscht du?? Ahem.. und folge den Vorschlägen von johnny.m

von Thomas L. (feuerwehr)


Lesenswert?

Danke für die Hilfe,

hab im Tutorial geschaut, und nehm nun Timer0.

Schönen Gruß aus Freiburg
Thomas

von AVRja (Gast)


Lesenswert?

So, wieder was gelernt....;-)
Erst informieren, dann probieren, dann Fragen stellen!
Mann o Mann!

von Exodus155 (Gast)


Lesenswert?

hi!

ahja hab auf meinem pc was gefunden:

.include <m8535def.inc>




sbi DDRA, 7


;ZEITSCHLEIFE
ldi R24, 255
ldi R25, 255
ldi R26, 15


;1sek verzögerung:
Zeit1:
inc R16
cp R16, R24
breq Zeit2
rjmp Zeit1

Zeit2:
inc R17
cp R17, R25
breq Zeit3
rjmp Zeit1

Zeit3:
inc R18
cp R18, R26
breq loop
rjmp Zeit1

loop:
clr R16
clr R17
clr R18
sbis DDRA, 7
rjmp ein
rjmp aus


ein:
sbi DDRA, 7
rjmp Zeit1


aus:
cbi DDRA, 7
rjmp Zeit1





FÜR ATMEGA8535 müsste glaub ich auch mit atmega16 gehn probiers mal!

MFG
Exodus

von Exodus155 (Gast)


Lesenswert?

ah sorry alle DDRA werden DDRD bitte ändern! willst ja an portd ausgeben 
undnich a!

;-)

von johnny.m (Gast)


Lesenswert?

@Exodus:
Postest Du alles, was Du so auf Deinem PC findest hier? Schau mal in den 
Betreff. Da geht es um einen Timer und nicht um irgendwelche 
Zeitschleifen. Dein Codeschnipsel hat nichts mit nem Timer zu tun.

von johnny.m (Gast)


Lesenswert?

Ach ja, noch was: Wenn Du schon solchen Code postest (auch wenn der OP 
extra darauf hinweist, dass er keine Delay-Schleifen will und außerdem 
in C programmiert), dann schreib doch bitte dabei, mit welcher 
Taktfrequenz das ganze laufen soll. Ohne die Info ist der Code nämlich 
doppelt unsinnig!

von Exodus155 (Gast)


Lesenswert?

ok sorry leute hab nur mal rumgeschnüffelt! ;-)

MFG Exodus

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.