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

[Asembler] Świecenie diody.

kondzio98 21 Wrz 2011 15:12 2163 4
REKLAMA
  • #1 9949232
    kondzio98
    Poziom 13  
    Witam.
    Niedawno kupiłem książkę Pawła Borkowskiego "AVR & ARM7-programowanie mikrokontrolerów dla każdego "

    Pierwszy program jest w języku asemblera i ma za zadanie zaświecić diodę led (sch1), pokazuje też w jaki sposób określać porty uC jako wyjścia itp.
    Zgodnie z tym co było w tekście (programator SI prog) zaprogramowałem tym uC. Po włączeniu zasilnia wszystko w porządku, dioda świeci na odpowiednich pinach.

    Problem pojawił się przy drugim ćwiczeniu (sch2), tu tak samo dioda ma świecić, tylko piny są inne. Napisałem taki program, skompilował się prawidłowo. Podczas programowania też nie było żadnych problemów. Dioda świeci ale na pinach, które określał pierwszy program. Czy ma to coś wspólnego z fusebitami ?
    (uC to atmega8)

    1 Cwiczenie :



    Kod: text
    Zaloguj się, aby zobaczyć kod




    2 Ćwiczenie :


    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 9950370
    rrata
    Poziom 19  
    Podłączyłeś anodę do PB4, czyli do pinu, którego twój program wogóle nie uwzgłędnia. Działa na pinach z ćw1 ponieważ na nich jest taki sam stan jak w ćw2. Program uwzgłędnia tylko pin PC1, oraz trzy wogóle nieużywane piny PC0, PB0 oraz PB1. Zobacz w dokumentacji jak się steruje portami. Gdzie jest rezystor do tej diody? Dziwne, że jeszcze się coś nie spaliło (dioda, albo uC). Pozdrawiam.
  • REKLAMA
  • #3 9953597
    kondzio98
    Poziom 13  
    W książce pisze ,że atmega posiada na tych pinach wewnętrzne rezystory .
    Co do sterowania portami to sprawdze w dokumentacji .
  • REKLAMA
  • #4 9954449
    xury
    Specjalista automatyka domowa
    Tak Atmega posiada wewnętrzne rezystory, ale nie połączone w szereg z pinem tylko podciągające dany pin do VCC. Ty potrzebujesz rezystor by ograniczyć prąd płynący przez pin tak by nie przekroczył dozwolonej wartości tj. około 20mA.
    Co do sprawdzenia proponuję lekturę datasheet.
  • #5 9961577
    kondzio98
    Poziom 13  
    Przejrzałem datasheet ,napisałem nowy program. Tak jak kol. rrata pisał ,źle określiłem porty .
REKLAMA