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

[ATmega16][C] Komunikacja miedzy dwoma atmegami-zmiana kodu na ciekawszy

marta1500 11 Maj 2011 22:15 1207 4
REKLAMA
  • #1 9496697
    marta1500
    Poziom 10  
    Czesc,

    wlasnie ucze sie SPI(i przy okazji C). Napisalam(z pomoca) krotki program do wymiany danych miedzy masterem i slavem: po nacisnieciu przycisku zostaje dodane 1 do licznika, stan licznika pokazywany jest na slavie. master pokazuje czy liczba w liczniku jest parzysta czy nieparzysta(wszystkie ledy sie swieca albo co 2.). Chcialabym ten kod urozmaicic, np zeby slave dodawal to, co wciskam na masterze. Przede wszystkim: czy taki kod byöby sensowny? Od czego zaczac? nie wiem jak przypisac poszczegolnym przyciskom inne wartosci i sprawic zeby slave je dodawal

    Pozdrawiam

    Marta
  • REKLAMA
  • #2 9496742
    GienekS
    Poziom 32  
    Jeżeli umiesz przesyłać wartość licznik to w ten sposób możesz przekazać każdą inną wartość, może to też być wartość klawisza.
  • REKLAMA
  • #3 9496796
    marta1500
    Poziom 10  
    no tak tylko, ze licznik jest 1 a klawiszy 8..i co z sumowaniem?? teraz mialam po porstu counter++ a potem slave to wyswietlal
  • REKLAMA
  • #4 9496842
    tadzik85
    Poziom 38  
    Oj martuniu martuniu. Załóżmy ze każdemu klawiszowi przypiszesz konkretną wartość i już po problemie. Wysyłasz tą wartość a slave na nią reaguje.
  • #5 9497067
    hotdog
    Poziom 26  
    Musisz opracować sobie mały protokół - pierwszy bajt to wartość licznika, drugi to stan klawiszy.

    Z tym że tutaj zaraz będzie problem który bajt jest który - w SPI stan niski na CS oznacza początek danych. Nadajemy po nim 2 bajty i ustawiamy go w stan wysoki. W przeciwnym razie, w prawdzie w jakichś szczególnych warunkach, transmisja może się rozjechać i nie będziesz wiedział co jest co. Do tej pory CS mógł być cały czas w stanie niskim, bo każdy bajt to stan licznika.
REKLAMA