Forum: Mikrocontroller und Digitale Elektronik quarz für attiny2313


von Markus M. (seeadler78)


Lesenswert?

hallo
ich habe einen attiny2313 den ich mit einem 4mhz quarz betreibe.das
problem das ich habe,wenn ich etwas mit dem timer programmieren will
und es dann in den uc überspiele macht er nicht das was ich wollte.die
zeiten stimmen nie.eine lampe blinkt nur mal kurz,ändere ich die zeit
nur ein klein wenig geht sie dann nicht mehr aus.kann es sein das ich
dem uc sagen muss das da noch ein externer quarz angeschlossen ist.
bin über jede hilfe dankbar
seeadler

von Karl heinz B. (kbucheg)


Lesenswert?

Das was du da beschreibst klingt eher nach
einem Bug in der Software.

Was ist 'ein klein wenig'?

von Markus M. (seeadler78)


Lesenswert?

hi
das ist so.ich habe eine schleife die bestimmt wie oft der timer
durchlaufen wird.im simulatorr funktioniert es.ändere ich die umläufe
nach oben,brennt die lampe nicht länger,sondern blinkt nur mal kurz
auf.
ab einem bestimmten wert(anzahl der durrchläufe) geht sie dann aberr
nicht mehr aus.jetzt habe ich was den fuses bits gelesen.kann das sein
das ich da noch was einstellen muss.

seeadler

von Karl heinz B. (kbucheg)


Lesenswert?

ok.
dann im Klartext:

Zeige das Programm!

von Markus M. (seeadler78)


Lesenswert?

problem
bin nicht zu hause,kann es aber später mal einstellen.
seeadler

von Rolf Magnus (Gast)


Lesenswert?

Du solltest auf jeden Fall mal die Shift-Taste reparieren. Die brauchst
du nämlich beim Programmieren auch öfters. Vielleicht ist das ja der
Fehler im Code :-)

von Magnus Müller (Magnetus) (Gast)


Lesenswert?

"ich habe einen attiny2313 den ich mit einem 4mhz quarz betreibe."
...
"kann es sein das ich dem uc sagen muss das da noch ein externer quarz
angeschlossen ist."

Klare Antwort: JA

Gruß,
Magnetus

von Markus M. (seeadler78)


Lesenswert?

hi
und wie

von Karl heinz B. (kbucheg)


Lesenswert?

Indem die Fusebits umgebrannt werden.
Wie das genau geht, hängt von deinem Brennprogramm
ab, aber dort gibt es auf jeden Fall einen Einstellmöglichkeit
dafür.
Dann noch: Datenblatt besorgen und nachlesen, welches
Fusebit wie gestellt werden muss.

Aber: Wenn du das nicht machst, dann läuft der Tiny mit
einer anderen Taktfrequenz (1Mhz). D.h. alle
Vorgänge sind einfach um den Faktor 1/4 langsamer. Das
erklärt aber nicht das Verhalten, dass du ganz am Anfang
beschrieben hast.

von Markus M. (seeadler78)


Lesenswert?

hi
danke für die antworten.ich benutze ponyprog und das avr studio 4.wie
kann ich denn jetzt am einfachsten die fusebits auslesen und ändern.ich
habe auch gelesen das man irgenwie die bits im datenblatt invertieren
muss stimmt das.werde mal versuchen heute abend von zu hause aus mein
assambler code einzustellen.müsste klappen wenn nichts dazwischen
kommt.aber die fusebits muss ich ja so oder so ändern.
seeadler78

von Markus M. (seeadler78)


Angehängte Dateien:

Lesenswert?

hi
habe jetzt mal meinen programmcode eingestellt
vieleicht könnt ihr mir jetzt helfen
seeadler78

von johnny.m (Gast)


Lesenswert?

> push sregsave
> in sregsave ,SREG
...
> out SREG, sregsave
> pop sregsave

Eher andersrum, gell? So machts jedenfalls wenig Sinn.

von johnny.m (Gast)


Lesenswert?

Ach ja, wenn Deine Interrupt-Subroutine bei 'Licht_80s' startet,
solltest Du vielleicht auch dort die entsprechenden pushs und am Ende
pops machen und nicht im 'normalen' Unterprogramm 'Licht'. Da
bringts nämlich nicht die Masse...

von Markus M. (seeadler78)


Lesenswert?

hi
könnste wohl recht haben.jetzt habe ich nur noch eine dummheit
gemacht.
habe die refuse bits chsel geändert.jetzt sagt der tiny wenn ich
programmieren will gar nicht mehr,nur das das devise fehlt.
bin ein trottel hätte lieber auf eure antwort warten sollen
gibts da noch rettung
seeadler

von johnny.m (Gast)


Lesenswert?

Gib Dir doch bitte ein bisschen mehr Mühe beim Schreiben. Ist echt ne
Tortur das zu lesen. Rolf hat Dich doch bereits darauf hingewiesen,
dass es auch eine Shift-Taste (auf deutsch 'GROSSBUCHSTABENTASTE')
gibt. Macht echt keinen Spaß auf so ein Posting zu antworten...

Rettung gibts dann, wenn Du weißt, wie die Fusebits (und nicht
REFuse...) gesetzt sind. Dann im Datenblatt nachsehen, was der mit den
Einstellungen für einen Takt erwartet und ihm dann den gewünschten Takt
geben.

von Markus M. (seeadler78)


Lesenswert?

Hallo

Schreibe jetzt gross.Das heisst ich müsste den entpsprechenden Quarz
einsetzen.Im Datenblatt stand bei 3MHz-8MHz 110.Invertiert wäre das
dann 001 in Ponyprog.
Seeadler78

von Philipp B. (philipp_burch)


Lesenswert?

Hi,

versuch's einfach mal mit einem externen Takt am XTAL1-Pin (KEIN
Quarz). Z.B. ein 1MHz Quarzoszillator oder irgendwas in der Richtung.
Einfach nicht unbedingt über 20MHz gehen und auch nicht allzu tief (Ein
Taster reicht nicht ;)).

von Markus M. (seeadler78)


Angehängte Dateien:

Lesenswert?

Hallo
Habe jemanden gefunden der mir den Tiny wieder ans laufen bringen
kann.
jetzt habe ich den Programmablauf nochmal überarbeitet.leider wird der
Interrupt beim Zählerüberlauf jetzt nicht ausgelöst.Habe ich irgendwo
vergessen ein Register zu setzen.Oder spinnt nur der Simulator.
bis dann seeadler78

von Markus M. (seeadler78)


Angehängte Dateien:

Lesenswert?

Hallo
Oder besser so

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.