mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PB5 beim ATTINY 15 verwenden


Autor: Peter X. (vielfrass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder den Nachfolger ATtiny25 nehmen und nen Bootloader reinbrennen.


Peter

Autor: Peter X. (vielfrass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.
;****************************************************************************
; Lauflichtdemo 
;****************************************************************************
.include "C:\programme\atmel\avr studio\appnotes\TN15def.inc"

.def    Temp            =r16
.def    Delay1          =r19
.def    Delay2          =r20
.def    Delay3    =r21
Start:
        ser     Temp
        out     DDRB,Temp       ;PB0-7 Output
        ldi  Temp,$FE

Loop:
  out  PORTB,Temp
  sec      ;SET Carry
  rol  Temp
  sbrs  Temp,6
  ldi  Temp,$FE
  

  ldi  Delay3,2
Delay:
        dec     Delay1
        brne    Delay
        dec     Delay2
        brne    Delay
        dec  Delay3
        brne  Delay

        rjmp    Loop
;****************************************************************************

Autor: Erik S. (erik_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: Erik S. (erik_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter X. (vielfrass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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" ?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

...

Autor: Peter X. (vielfrass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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  :-)
;****************************************************************************
; Lauflichtdemo 
;****************************************************************************
.include "E:\C\programme\atmel\avr studio\appnotes\TN15def.inc"

.def    Temp            =r16
.def    Loopcounter     =r17
.def    Bitcounter      =r18
.def    Delay1          =r19
.def    Delay2          =r20
.def  Delay3    =r21
Start:
        ser     Temp
        out     DDRB,Temp       ;PB0-7 Output
        ldi     Temp,24
        out     PORTB,Temp
        
        ldi  Temp,$FE

Loop:
  out  PORTB,Temp
  sbrs  Temp,5
  sbi  DDRB,5
  sbrc  Temp,5
  cbi  DDRB,5
  
  sec      ;SET Carry
  rol  Temp
  sbrs  Temp,6
  ldi  Temp,$FE
  

  ldi  Delay3,2
Delay:
        dec     Delay1
        brne    Delay
        dec     Delay2
        brne    Delay
        dec  Delay3
        brne  Delay

        rjmp    Loop
;****************************************************************************

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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... ;-)

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, vielleicht solltest Du Dir auch mal die Timer ansehen, das macht 
sich (wenn man es erstmal begriffen hat) besser als eine Warteschleife.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.