Was muss ich denn machen, damit ich PB5(Reset) vom ATTiny als Output verwenden kann? Habe momentan kleine Denkblockade. Mein kleines Lauflichtprogramm geht nur bis PB4. Habe schon probiert "Serial High Voltage programming" und Fuse gesetzt "disable external reset" Ich sehe das doch richtig, das ich wenn ich mich mit der Fuse "disable external reset" ausgesperrt habe, ich immer noch mit "Serial High Voltage programming" reinkomme? Habe übrigens STK500-Board und AVRstudio 3.2
Peter X. wrote: > Ich sehe das doch richtig, das ich wenn ich mich mit der Fuse "disable > external reset" ausgesperrt habe, ich immer noch mit "Serial High > Voltage programming" reinkomme? ja.
Oder den Nachfolger ATtiny25 nehmen und nen Bootloader reinbrennen. Peter
Habe hier mal mein kleines Lauflichtprogramm, leider lässt sich damit PB5 bein ATTiny15 nicht ansteuern. Währe schön, wenn mir mal jemand einen Tip geben könnte, wie das geht.
1 | ;**************************************************************************** |
2 | ; Lauflichtdemo |
3 | ;**************************************************************************** |
4 | .include "C:\programme\atmel\avr studio\appnotes\TN15def.inc" |
5 | |
6 | .def Temp =r16 |
7 | .def Delay1 =r19 |
8 | .def Delay2 =r20 |
9 | .def Delay3 =r21 |
10 | Start: |
11 | ser Temp |
12 | out DDRB,Temp ;PB0-7 Output |
13 | ldi Temp,$FE |
14 | |
15 | Loop: |
16 | out PORTB,Temp |
17 | sec ;SET Carry |
18 | rol Temp |
19 | sbrs Temp,6 |
20 | ldi Temp,$FE |
21 | |
22 | |
23 | ldi Delay3,2 |
24 | Delay: |
25 | dec Delay1 |
26 | brne Delay |
27 | dec Delay2 |
28 | brne Delay |
29 | dec Delay3 |
30 | brne Delay |
31 | |
32 | rjmp Loop |
33 | ;**************************************************************************** |
Wie hast du die LEDs denn angeschlossen? PB5 ist als Ausgang ein Open-Drain-Ausgang. Damit da überhaupt was leuchten kann, muss die LED zwischen VCC und Pin geschaltet sein.
Erik S. wrote: > Wie hast du die LEDs denn angeschlossen? PB5 ist als Ausgang ein > Open-Drain-Ausgang. Damit da überhaupt was leuchten kann, muss die LED > zwischen VCC und Pin geschaltet sein. Hat er doch: > ldi Temp,$FE setzt Bit 0 auf L und alle anderen Bits auf H, was darauf schließen lässt, dass die LEDs L-aktiv angeschlossen sind. ...
Ok, das ist ein Argument, das ich so nicht bedacht hatte. Aber wer weiß, vielleicht ist es ja ein invertiertes Lauflicht? ;-D Nebenbei: PB5 ist mit 12mA Strombelastbarkeit angegeben, das sollte eventuell in die Überlegungen zur Dimensionierung mit einbezogen werden.
Habe das STK500-Board. Die Led's gehen nach Plus 5V. Jetzt leuchtet LED5 dauernd und geht nicht mehr aus. Ob ich PB5 geschossen beim "high voltage seriell prog" ?
Peter X. wrote: > Habe das STK500-Board. Die Led's gehen nach Plus 5V. > Jetzt leuchtet LED5 dauernd und geht nicht mehr aus. Ob ich PB5 > geschossen beim "high voltage seriell prog" ? Nein, hast Du nicht... Schau mal ins Datenblatt auf Seite 51. Da wirst Du entdecken, dass es in PORTB kein Bit 5 gibt. Du kannst den Port also nur über das Bit 5 im DDRB steuern. Das macht Dein Programm aber nicht... ...
@ Hannes Lux >Schau mal ins Datenblatt auf Seite 51. Da wirst Du entdecken, dass es in >PORTB kein Bit 5 gibt. Du kannst den Port also nur über das Bit 5 im >DDRB steuern. Das macht Dein Programm aber nicht... Habe ich jetzt mal geändert...funktioniert...fetten Dank :-)
1 | ;**************************************************************************** |
2 | ; Lauflichtdemo |
3 | ;**************************************************************************** |
4 | .include "E:\C\programme\atmel\avr studio\appnotes\TN15def.inc" |
5 | |
6 | .def Temp =r16 |
7 | .def Loopcounter =r17 |
8 | .def Bitcounter =r18 |
9 | .def Delay1 =r19 |
10 | .def Delay2 =r20 |
11 | .def Delay3 =r21 |
12 | Start: |
13 | ser Temp |
14 | out DDRB,Temp ;PB0-7 Output |
15 | ldi Temp,24 |
16 | out PORTB,Temp |
17 | |
18 | ldi Temp,$FE |
19 | |
20 | Loop: |
21 | out PORTB,Temp |
22 | sbrs Temp,5 |
23 | sbi DDRB,5 |
24 | sbrc Temp,5 |
25 | cbi DDRB,5 |
26 | |
27 | sec ;SET Carry |
28 | rol Temp |
29 | sbrs Temp,6 |
30 | ldi Temp,$FE |
31 | |
32 | |
33 | ldi Delay3,2 |
34 | Delay: |
35 | dec Delay1 |
36 | brne Delay |
37 | dec Delay2 |
38 | brne Delay |
39 | dec Delay3 |
40 | brne Delay |
41 | |
42 | rjmp Loop |
43 | ;**************************************************************************** |
Du kannst auch PortB auf 0 lassen und nur mit DDRB arbeiten. Dann hast Du an allen Pins Open-Drain-Ausgänge. Der nächste Schritt dürfte dann sein, das Lauflicht hinundher laufen zu lassen. Danach könnte man über Aufdimmen und Abdimmen nachdenken. Es gibt viel zu tun, schauen wir weg... ;-) ...
Achja, vielleicht solltest Du Dir auch mal die Timer ansehen, das macht sich (wenn man es erstmal begriffen hat) besser als eine Warteschleife. ...
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.