logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Prosty programik asembler zaświecanie diód LED

Bartek47 16 Lis 2009 20:47 1300 4
REKLAMA
  • #1 7269950
    Bartek47
    Poziom 11  
    .include "tn2313def.inc"
                  
           .org       0
           
                  ldi              r24,LOW(RAMEND)       
                  out              SPL,r24
                   ser                      r24                         
                  out              DDRB,r24       ; port B - wyjscia           
                  ldi 	r24,0
    			  out              DDRD,r24       ; port D - wejscia
    			     ser                      r24 
    				  out 			PORTD,r24
    
    			  start:
    			in  	r16,PIND
    			cpi r16,16
    			breq czerwona
    			cpi r16,32
    			breq zielona
    			rjmp start
    			czerwona:
    			ldi r24,64
    			out PORTB,r24
    			ret
    			zielona:
    			ldi r24,128
    			out PORTB,r24
    			ret


    Przycisi podpięte pod PD4 i PD5 a diody pod PB7 i PB6. Jak naciskam przyciski nic się niestety nie dzieje. Przyciski zwierają poszczególne piny do masy.
  • REKLAMA
  • REKLAMA
  • #3 7270151
    Bartek47
    Poziom 11  
    Diody działają poprawnie, Jest to Attiny2313 tylko z przyciskami nie chce działać. Sprawdzałem woltomierzem to na porcie jest 5V po naciśnięciu przycisku 0 więc od strony mechanicznej wszystko ok.

    .include "tn2313def.inc"
                 
           .org       0
           
                  ldi              r24,LOW(RAMEND)       
                  out              SPL,r24
                   ser                      r24                         
                  out              DDRB,r24       ; port B - wyjscia  
    			  out PORTB,r24         
                  ldi    r24,0
               out              DDRD,r24       ; port D - wejscia
                  ser                      r24
                  out          PORTD,r24
    
               start:
             in     r16,PIND
             cpi r16,16
             breq czerwona
             cpi r16,32
             breq zielona
             rjmp start
             czerwona:
             ldi r24,64
             out PORTB,r24
             ret
             zielona:
             ldi r24,128
             out PORTB,r24
             ret
    
    [code]

    Dałem na początku programu PORTB jako same jedynki i diody świecą.
  • REKLAMA
  • #5 7270405
    Bartek47
    Poziom 11  
    Próbowałem ale już rozwiązałem problem inaczej. Nie podłączyłem wszystkich pinów z PORTD i dodałem linijkę
    andi r16,48
    żeby wykluczyć błędy i działa :]
REKLAMA