Hallo! Ich will ein RGB-Licht bauen und habe mich dabei für einen ATtiny13V entschieden. Da dieser nur über 6 Ports verfügt und ich die alle brauche würde ich gern wissen, wie man an die Tatsache herangeht, dass man dann auf den Reset verzichten muss. Sollte man die ganzen Initialisierungsriten in die Programmschleife mit einbauen? Sind die Register eigentlich flüchtig oder macht das Gerät einfach da weiter wo es beim Kappen der Spannungsversorgung unterbrochen wurde? Gruß
Zum Programmieren würde dann nur noch die HV-Programmierung übrig bleiben - es sei denn, Du hast einen Kommunikationsschnittstelle vorgesehen. Register sind nach dem Ausschalten futsch.
Das heisst Du musst einen Sockel benutzen oder mit Jumpern die Pins auf eine Pfostenleiste umlegen. Auf jeden Fall muss Du High-Voltage Serial Programming benutzen (zB mit dem STK 500), also keinen einfachen ISP Adapter. Alternative: den Reset Pin bei der Entwicklung erstmal nicht benutzen (zB indem Du deine Steuerung erstmal für nur R und G auslegst) und erst wenn Du sicher bist das alles funktioniert auch den Reset Pin benutzen. Dafür musst Du ja eine Fuse setzen, falls Du es noch nicht weisst. (siehe S104 im Datenblatt)
Wie ist das denn mit dem Power-On-Reset? Wird der Program Counter denn auch wieder null gesetzt, wenn die Versorgungsspannung aus bleibt oder muss man dann in der Programmschleife immer wieder das PORF checken und wenn es gesetzt ist entsprechende Maßnahmen einleiten, also wieder neu initialisieren?
Hallo, steht doch alles im Datenblatt, warum liest Du es nicht einfach dort nach? Gruß aus Berlin Michael
Tu ich. Soweit ich das bis jetzt 'verstanden' habe, löst ein Power-On den Reset aus. Um darauf hin auf den entsprechenden Interrupt Vektor zu spingen, muss jedoch zuerst der Global Interrupt Enable eine eins Beherbergen, was er laut Datenblatt erst tut, wenn man diese dort hineingeschrieben hat. Daher meine Frage, ob der PC nach dem power-On ebenfalls einen Anfangswert hat, 0 würde sich da anbieten, was wiederum zu Folge hätte, dass ich den Interrupt Vektor garnicht benötige.
Nach jedem Reset läuft der Controller automatisch bei Adresse $0000 los, welches nicht zufällig auch der RESET-Vektor ist.
Um es ganz klar zu sagen. Was verlierst du, wenn du den Reset Pin umprogrammierst? * Zum einen verlierst du die Möglichkeit den µC über ISP zu programmieren. Dazu gehört neben der reinen Übertragung eines neuen Programms die Möglichkeit die Fuse Bits noch einmal umzustellen * Du kannst den µC extern nicht mehr resetten (zb über einen Taster an der Reset Leitung). Die einzige Möglichkeit ist dann "Strom weg, Strom wieder anlegen" und der µC beginnt das Programm wieder von vorne weg abzuarbeiten. Letzteres ist normalerweise kein Problem. Ersteres kann ein Problem sein, vor allem wenn man keinen HV-Programmierer hat. Das Neuprogrammieren kann man noch mit einem Bootloader erledigen, aber an die Fuse Bits kommt man ohne HV Programmierer nicht mehr ran.
Hmm, R G B sind doch nur 3 Farben, da sollten auch 3 I/O-Leitungen reichen. Bleiben 2 übrig, die entweder zur seriellen Eingabe der Farbwerte dienen können oder über ein Tastenfeld, welches verschiedene Spannungsteilerabgriffe an einen ADC-Pin anlegt. Da würden dann sogar nur 4 I/Os reichen. Gruß Jadeclaw.
Ich will drei der ADC-Kanäle mit Potis bestücken. Potis sind viel besser fürs Look & Feel. ;)
ein einfacher HV Programmer ist AVRDoper. kann HVProg und ISP an USB. Hab mir den "auch mal schnell" gebaut, als ich bei einem Tiny den Reset umgewittmet habe. mfg GagoSoft ---------------------------------- wer Rechtschreibfehler findet, darf sie behalten, Inhaltliche Fehler nehme ich gerne zurück
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.