Forum: Mikrocontroller und Digitale Elektronik atmega8 und ein paar fragen


von Hans (Gast)


Lesenswert?

hey leute
bin gerade dabei das erste mal nen atmega 8 zu programmieren. bei
diesem kann man die eingaenge des externen oscillators ja auch als
eingang nutzen.
frage: wenn ich den externen osci nutzen will, wie initialisiert man
dann die pins fuer den oscillators?? muss man dem erst noch beibringen
das er den externen osci nutzen soll oder initialisiert man die ports
nur wenn man diese als eingang benutzt??? der port b soll bei mir also
aus 6b eingangsbits und dem osci bestehen..hoffe das war jetzt nicht
altzu undeutlich...
weitere fragen folgen bestimmt :)
gruss hans

von Vitali (Gast)


Lesenswert?

du stellst bei fuse-bits auf internen takt und dann behandelst du die
pins für den ext.osci wie ganz normale i/o.

von Hans (Gast)


Lesenswert?

fuer nen externen takt stell ich die fuses auf intern?!?

von Khani (Gast)


Lesenswert?

Hallo Hans,

natürlich nicht. Du stellst mit einem Programm zum Fuse-setzen Deiner
Wahl die Fuses auf externen Takt (Achtung: unterscheide Quarz und
Quarzoszillator). Dann kann man auf die beiden XTAL- Pins nicht mehr
zugreifen (das heißt man kann schon, aber man bekommt nichts heraus
;-)).

Beachte : Die Fuses sind im Datenblatt zum ATmega8 mit 1 als ungesetzt
und 0 als gesetzt markiert.

MfG, Khani

von Thorsten (Gast)


Lesenswert?

Du mußt die Fuse-Bits gemäß Datenblatt Seite 24, Tabelle 2
programmieren.

von Hans (Gast)


Lesenswert?

ah ja..es läuft..danke jungs :)

von Tim (Gast)


Lesenswert?

ich bin neu hier und wollte nicht gleich nen neuen beitrag starten...
also ich habe gerade angefangen mit assembler und habe ein problem.
ich habe auch einen atmega8 und möchte in diesem den timer 0 benutzen
der alle 10ms eine abfrage der ports b und d macht. der timer soll also
in der main schleife den timer schon loszählen lassen. um zu wissen was
sich geändert hat an den beiden ports muss ich irgendwie rausfinden
welche der eingänge sich geändert haben. die änderungen sind dann
beispielsweise 1en..alles was gleich bleibt 0en. das fragt er dann halt
nach jedem interrupt des timer0 ab und geht in unterprogramme rein,
jenachdem was er machen soll. zusätzlich möchte ich den timer eins
schonmal im main initialsisieren. wie bekommt man es hin das der ne
sekunde braucht bis zum überlauf?? die frequenz muss also für timer 0
und timer 1 passen. der timer soll aber nur in unterprogrammen gesetzt
oder gelöscht werden konnen..also nicht im main. noch ne frage zum
sleep mode, laut datenblatt hat der ne gewisse ansprechzeit wenn ich
das richtig verstanden hab. wenn jetzt beispielsweise keine änderungen
auftreten, könnte der prozessor schlafen...aber wie ist das mit dem
interrupt...die schlafzeit wäre ja länger als jeder interrupt..bekommt
er dann überhaupt alles mit??
achja..die 1en die dann halt oben abgearbeitet sind lösch ich in de
subroutine :)

so..und jetzt meine bitte an die erfahrenen leute hier...ich wäre
dankbar wenn man einem neuling auf dem gebiet mal ein bisschen
schützenhilfe leisten könnte. die lernprogramme hier haben mir zwar
geholfen, aber so wie es etwas komplizierter ist hörts dann auch
auf...dazu die sache das es ein anderer chip ist..naja..vielleicht kann
sich ja jemand dran erinnern aus eigener zeit :)
also könnte mir jemand zeigen wie man diese main methode definieren
kann...oder macht sowas zuviel aufwand?? :(
ohne das kann ich die simulation schliesslich nichtmal starten und
probieren..also leute..bin euch schon jetzt dankbar
gruss tim

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.