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

[Rozwiązano] [BASCOM] Jak naprawić komunikację shiftin/out między 2xATmega?

1bcz 28 Lut 2019 19:19 762 2
REKLAMA
  • #1 17811115
    1bcz
    Poziom 5  
    Posty: 22
    Ocena: 1
    Witam

    Potrzeba mi kodu dla komunikacji 2 x atmega z poleceniem shiftin i shiftout .
    Robiłem transmisję jednego byte ale nic z tego nie idzie . Nadajnik nadaje sygnał zegarowy i dane (na oscyloskopie widać ładnie) ale odbiornik zawsze wyświetla 0 lub 255 . Zmieniałem piny na porty ale nic .Pewnie jakiś banał ale mam zaćmienie umysłu :)

    Nadajnik :
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Odbiornik:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 17811527
    LChucki
    Poziom 31  
    Posty: 1940
    Pomógł: 104
    Ocena: 379
    Nie definiujesz opóźnienia, pewnie odbiornik nie wyrabia.
    Jak chcesz przesyłać szybko, użyj SPI.
  • #3 17812056
    1bcz
    Poziom 5  
    Posty: 22
    Ocena: 1
    Nie chodzi o opóźnienie (bez niego też śmiga) . Ważne by zdefiniować w nadajniku i odbiorniku zbocze na jakim odbiera i co odbiera .

    dla shiftin :

    0 – MS bit shifted in first when clock goes low
    1 – MS bit shifted in first when clock goes high
    2 – LS bit shifted in first when clock goes low
    3 – LS bit shifted in first when clock goes high

    Adding 4 to the parameter indicates that an external clock signal is used for the clock. In this case the clock will not be generated. So using 4 will be the same a 0 (MSB shifted in first when clock goes low) but the clock must be generated by an external signal.

    4 – MSB shifted in first when clock goes high with ext. clock
    5 – MSB shifted in first when clock goes low with ext. clock
    6 – LSB shifted in first when clock goes high with ext. clock
    7 – LSB shifted in first when clock goes low with ext. clock

    dla shiftout :

    0 – MSB shifted out first when clock goes low
    1 – MSB shifted out first when clock goes high
    2 – LSB shifted out first when clock goes low
    3 – LSB shifted out first when clock goes high

    W moim przypadku dodałem

    SHIFTOUT portb.0, portb.1,a,1 oraz shiftin pinb.0 , pinb.1,a,4

    wszystko śmiga :) , wiedziałem że banał i zaćmienie.
REKLAMA