|
Aktivierung von PB5 am AtTiny13 mittels Fusebits
... am Beispiel eines 6-Kanal-Lauflichtes
Der Pin1 am Attiny13 ist im Auslieferungszustand der RESET-Eingang,
der beim Programmrüberschieben benutzt wird.
Soll statt dessen Pin1 als PB5 benutzt werden, muß eines der
sogenannten FUSE BITs gesetzt werden.
Damit verbauen wir uns jedoch die
Möglichkeit des weiteren Programmierens unseres Attiny13!
Mit anderen Worten: dieses Bit darfst Du erst setzen, nachdem
Dein
Programm im Attiny drin ist.
In dem Code-Ordner hier findest Du
ein 6-Kanal-Lauflicht und ein neues Makefile.
Nachdem Du in den entpackten Code-Ordner hineingewechselt bist,
solltest Du mal eingeben: make
help
Es erscheint folgender Hilfetext:
Moegliche Befehle:
make all - compiliert Dein
Programm und erzeugt die .hex-Datei
make load - compiliert Dein
Programm und schiebt es in den Attiny13
make clean - loescht die beim
Compilieren erzeugten Dateien
make rdfuses - gibt Dir
Informationen ueber die gesetzten Fusebits und mehr
make wrfuse4.8mhz - setzt Fusebit
fuer 4.8 MHz intern
make wrfuse9.6mhz - setzt Fusebit
fuer 9.6 MHz intern
make wrfusecrystal - setzt
Fusebit fuer externen Quarz / Crystal (Achtung!)
make wrfusenoreset - setzt
Fusebit fuer PB5 (Achtung!)
make help - zeigt diesen Hilfetext
Achtung: ohne Quarz hast Du keine Chance, wrfusecrystal rueckgaengig zu
machen!
Achtung: wrfusenoreset schaltet PB5 frei und deaktiviert RESET!
(Erläuterung: In den Befehlen steht das rd für read und das wr für write. Der Befehl wrfusenoreset steht für: wr_fuse_no_reset.)
Das in der Datei test.c
enthaltene Lauflicht ist nicht gerade aufregend.
Beweist aber, daß es geklappt hat, wenn Du wie folgt vorgehst:
- Bau Dir eine Schaltung mit LEDs an PB0 bis PB5, z. B. diese hier:
- Verändere das in test.c
enthaltene Lauflichtprogramm nach Deinen Wünschen oder laß es, wie es
ist.
- Schiebe es in den Attiny13 mit:
make load
Schaue Dir an, wie's blinkt (noch ohne PB5).
Passe das Programm noch weiter Deinen Wünschen an oder nicht.
- Setze das Fusebit für "Pin1 = nicht mehr RESET, sondern PB5" mit:
make wrfusenoreset
Wie Du siehst: die LED an PB5 blinkt jetzt mit.
Anmerkungen:
- Nicht vergessen: Dein
Attiny13
kann jetzt nicht weiter programmiert werden, denn er wird das beim
Programmrüberschieben benötigte RESET nicht ausführen.
- Du kannst dieses Makefile auch in den Code-Ordnern der anderen Attiny13-Projekte und -Experimente
der Mikrocontrollerspielwiese
benutzen. Kopiere es einfach in den entsprechenden Ordner und
überschreibe so das alte Makefile.
- Du hast sicher auch bemerkt, daß dieses Makefile auf Wunsch die
Arbeitsfrequenz Deines Attiny13 verändern kann. Probier es!
- Für gleichzeitiges Leuchten mehrerer LEDs solltest Du jeder LED
einen Widerstand verpassen (Knotensatz!)
- Wenn es hier zu Problemen beim
Programmrüberschieben kommen
sollte:
Die an PB5 (=RESET) angesteckte LED kann das Reset-Signal
stören.
Abhilfe: erst Programm rüber schieben, dann LED an PB5 anstecken.
- Was man noch alles mit Fusebits bewirken kann, findest Du z. B. hier.
Und natürlich auch
im Datenblatt des Attiny13.
|