Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zapalanie diody przez naciśnięcie guzika. Asembler

27 Mar 2012 15:35 1678 3
  • Poziom 11  
    Witam
    Pracuję na zestawie EvB 4.3. Chciałem napisać program, który działa następująco:
    Wciskam przycisk S1 zapala się dioda D1, wciskam S2 zapala się D2 itd. Poniżej zamieszczam program, który niestety nie działa jak należy. Jeżeli ktoś mógłby powiedzieć gdzie tkwi błąd będę wdzięczny.
    .INCLUDE "M32DEF.INC"

    LDI R16,LOW(RAMEND)
    OUT SPL,R16
    LDI R16,0XFF
    OUT DDRC,R16
    OUT PORTC,R16
    LDI R16,0X00
    OUT DDRD,R16
    OUT PIND,R16
    RJMP START

    START:
    IN R16,PIND
    CPI R16,0XFE
    BREQ LED1
    CPI R16,0XFD
    BREQ LED2
    CPI R16,0XFB
    BREQ LED3
    RJMP START
    LED1:
    CBI PORTC,0
    RJMP START
    LED2:
    CBI PORTC,1
    RJMP START
    LED3:
    CBI PORTC,2
    RJMP START
  • Poziom 26  
    Błąd jest tutaj przy konfiguracji wejść:
    Kod: asm
    Zaloguj się, aby zobaczyć kod

    W atmega 32 rejestr PIND jest tylko do odczytu, powinno być PORTD. Nie włączyłeś podciągania poprzez wpisanie 1 na odpowiednie pozycje PORTD.
  • Poziom 39  
    Zamiast BREQ użyłbym BRNE i stworzył coś takiego:
    Kod: asm
    Zaloguj się, aby zobaczyć kod

    Niemniej to kolega Krauser wskazał Ci podstawowy błąd w Twoim kodzie.
  • Poziom 11  
    dzięki za pomoc