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]wysyłanie informacji jedną instrukcją na kilka pinów różnych portów uC

domija 18 Kwi 2011 21:23 1122 4
REKLAMA
  • #1 9415977
    domija
    Poziom 11  
    witam szanownych forumowiczów. Ze względów, że większość wyjść mikrokontrolera atmega 8535 mam już zajęte, a musze jeszcze podłączyć LCD oczywiście w trybie 4 bitowym, mam problem jak wysyłać dane do LCD w przypadku gdy 3 piny będą na porcie A a jeden na porcie B. Czy można tak zakombinować żeby nie odnosić się do każdego pinu oddzielnie tylko wklepać dane do jednego rejestru. Jak to zdefiniować? Oczywiście assembler.
  • REKLAMA
  • #2 9416733
    Seba319
    Poziom 24  
    bity spokojnie możesz upchać razem w jeden rejestr, a potem napisać procedurę, która wyodrębni poszczególne bity i wyśle je na odpowiednie porty. Jeśli zmienisz konfiguracje to zmieniasz tylko procedurę, a reszta zostaje tak jak była.

    Tak na marginesie, to nie uważasz, że w C/C++ zrobisz to znacznie szybciej?
  • REKLAMA
  • #3 9417140
    domija
    Poziom 11  
    Jeżeli chodzi o język programowania, na razie u mnie na tapecie jest asembler i dlatego też o niego pytania. Czy ktoś ma pomysł jak taka procedura mogła by wyglądać już w asemblerze, tak żeby np. ostatnie 4 bity rejestru r16 były PA0, PA1 PA2 i PB3. hmmm dobra, procedurka właśnie wpadła mi do głowy, więc już sobie jakoś poradzę, ale pytanie jest jeszcze takie : czy można zdefiniować na początku programu taką zależność instrukcjami definiującymi, żeby nie pisać oddzielnej procedury? Czy jest taka możliwość?
  • REKLAMA
  • Pomocny post
    #4 9417331
    Seba319
    Poziom 24  
    Powinno dać się to zrobić za pomocą definicji i makr, ale już dawno nie korzystałem z asemblera w pełnym wymiarze. Obecnie w momentach krytycznych stosuje tylko wstawki asemblerowe w postaci kilku poleceń lub procedur napisanych w ASM, resztę pisze w C. Jednak ten dokument powinien Ci pomóc.
  • #5 9417374
    domija
    Poziom 11  
    Dziękuje za podpowiedź chyba już sobie coś z tego wykombinuje.
REKLAMA