Hallo zusammen! Ich habe vor kurzen eine erste Schaltung mit einem Mikrocontroller aufgebaut. Es handelt sich dabei im einen ATtiny2313. Prinzipell handelt es sich bei der Schaltung um ein einfaches Tastenaggregat. Für die benötigte Entprellung der Taster habe ich die Entprellroutine von Peter Dannegger verwendet. Grundlegen funktioniert das Programm auch. Es gibt nur ein Problem das denke ich mit der Entprellung zusammenhängt. Man muss jeden Taster einen kurzen Moment festhalten damit der Wert angenommen wird. Mit kurz meine ich schon eine merkliche Zeit. Normalerweis tippt man einen Taster an und der Wert wird übernommen. Ich denke das ich irgendwo einen Programmierfehler gemacht habe, welchen ich nicht als solchen erkenne. Ich kenne mich bis jetzt nur grundlegend mit der Programmierung aus. Es war schon ein ganzen Stück Arbeit sich erstmal einzuarbeiten. Es währe sehr nett wenn mir jemand helfen könnte. Es ist wahrscheinlich nur ein kleiner Fehler der behoben werden muss. Gruß Matthias
Stimmt die Taktfrequenz? Ist vielleicht die CKDIV8-Fuse gesetzt (das ist sie nämlich im Auslieferungszustand des Controllers, siehe Datenblatt)? Dann ist f_Takt = 1/8 f_Quarz. Testmöglichkeit: Eine der LEDs mit z. B. 1 Hz blinken lassen und checken, wie schnell sie wirklich blinkt.
Unfassbar genau das war es. Dieses Fuse-Bit ist mir entgangen. Da bin ich wohl in ein typische Anfägerfalle getappt. Vielen Dank für die Hilfe, jetzt funktioniert alles so wie es soll. Ich hab auch gleich einen Kommentar in die Programmierung gesetzt, damit das in Zukunft nicht mehr passiert. Gruß Matthias
Matthias schrieb: > Dieses Fuse-Bit ist mir entgangen. Dieses Fusebit brauchst Du aber nicht zu deaktivieren. Du kannst nämlich per Programmcode den System-Taktvorteiler auf jeden von Dir gewünschten Wert setzen. Suche mal im Datenblatt nach CLKPR. ...
Hmm, ich hab einfach das Fusebit CKDIV8 deaktiviert. Hat das irgendwelche Nachteile?
>Hmm, ich hab einfach das Fusebit CKDIV8 deaktiviert. Allright. >Hat das irgendwelche Nachteile? Es kann durchaus vorteilhaft sein, einen Controller mit niedriger Frequenz zu takten, vorausgesetzt natürlich, er erfüllt seine Aufgaben. Z. B. entstehen alle "langsamen" Outputs eines Controllers letztlich durch mehrstufiges Herunterteilen seiner Taktfrequenz, und wenn die schon niedrig ist, kann man sich vielleicht eine Teilerstufe sparen, oder kommt mit weniger künstlichen Verlangsamungsmaßnahmen in der Software aus. Ein weiterer Punkt: Die Stromaufnahme eines Controllers im Active-Modus steigt deutlich überproportional mit der Taktfrequenz. Deshalb ist es bei batteriebetriebenen Geräten sinnvoll, den Controller nur so hoch wie nötig zu takten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.