PULLUP beim Tiny13

OP #2461428
Lesenswert?
• ▲
▼
so sieht der Quelltext aus:

        .INCLUDE  "tn13def.inc"  ; Deklarationen für Tiny13
        .EQU    takt = 1000000  ; Systemtakt 1 MHz
        .DEF    akku = r16      ; Arbeitsregister r16 in akku benannt
        .CSEG                   ; Programm-Flash
        rjmp    start           ; Reset-Einsprung
        .ORG    $6              ; Interrupt-Einsprünge übergehen
start:  ldi     akku,LOW(RAMEND); Stapel anlegen
        out     SPL,akku        ;

        ldi     akku,0b00000111       ; Bitmuster 0000 0111
         out     DDRB,akku       ; PortB (PB0-PB2) ist Ausgang
                                 ;PB3-PB7 ist Input
        sbi     PORTB, 3



loop:  nop
sw1:  sbic  PINB,PB3
    rjmp  sw1
    ldi     akku,$07        ; Bitmuster 0000 0111
        out     PORTB,akku      ; Ausgabe Anschluss Port

        rjmp    loop            ; Schleife
        .EXIT                   ; Ende des Quelltextes


Der Befehl sbic wird einfach ignoriert!
#2461437
Lesenswert?
• ▲
▼
Rolf Hegewald schrieb:

> Der Befehl sbic wird einfach ignoriert!

Der wird mit SIcherheit nicht ignoriert.

Diese Attitüde kannst du dir gleich wieder abschminken. Wenn dein 
Progrmm nicht so funktioniert, wie du dir das vorstellst, dann liegt es 
immer am Programmierer. Entweder ist seine Vorstellung falsch oder er 
hat nicht das programmiert, was er eigentlich programmieren wollte.


Woran erkennst du denn, dass nichts geht?
Was sollte denn passieren und was passiert statt dessen?
OP #2461765
Lesenswert?
• ▲
▼
Hallo Karl Heinz,
 "Was sollte denn passieren, und was passiert stattdessen"

loop:  nop
sw1:   sbic  PINB,PB3
       rjmp  sw1
       ldi     akku,$07        ; Bitmuster 0000 0111
       out     PORTB,akku      ; Ausgabe Anschluss Port

       rjmp    loop            ; Schleife
       .EXIT                   ; Ende des Quelltextes

wenn ich ändere:

       ldi     akku,$00
       out     PORTB,akku
       rjmp    loop
dann dürften PB0-PB2 erst dann zu LOW gehen, wenn ich die
Taste sw1 drücke, oder? wo ist denn hier mein Denkfehler!
Tut der Tiny aber nicht und alle 3 Pins haben LOW

Grüße

Rolf
OP #2461851
Lesenswert?
• ▲
▼
sorry Walter,
jetzt haut es hin.
Nochmals den Quelltext:

       .INCLUDE  "tn13def.inc"  ; Deklarationen für Tiny13
        .EQU    takt = 1000000  ; Systemtakt 1 MHz
        .DEF    akku = r16      ; Arbeitsregister r16 in akku benannt
        .CSEG                   ; Programm-Flash
        rjmp    start           ; Reset-Einsprung
        .ORG    $6              ; Interrupt-Einsprünge übergehen

start:  ldi     akku,LOW(RAMEND); Stapel anlegen
        out     SPL,akku        ;
        ldi     akku,0b00000111       ; Bitmuster 0000 0111
        out     DDRB,akku       ; PortB (PB0-PB2) ist Ausgang
        sbi     PORTB,PB3


loop:  nop

sw1:  sbic   PINB,PB3
      rjmp   sw1
      ldi    akku,7        ; Bitmuster 0000 0111
      out    PORTB,akku    ; PB0-PB2 = High
      rjmp   loop            ; Schleife
       .EXIT                   ; Ende des Quelltextes
bei Änderung von akku wird der neue Wert erst dann übernommen,
wenn die Taste sw1 gedrückt wird.

Danke nochmals an Alle für Eure Hilfe.

Grüße

Rolf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.