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

[BASCOM][AVR] Przesyłanie zmiennej typu Byte

piotrek700 02 Cze 2009 22:20 2348 10
REKLAMA
  • #1 6608897
    piotrek700
    Poziom 13  
    Ten temat był juz poruszany tysiące razy ale nie mogłem znaleźć nic co by mi odpowiadało i pomogło rozwiązać mój problem. Ale przejdźmy do rzeczy: Chodzi oto żeby jeden kontroler wysyłał zmienną typu Byte (lub jakiejkolwiek innej zmiennej oprócz BIT) a drugi ją odbierał , przypisywał wartość odebranej zmiennej jakiejś innej zmiennej w swoim programie i żeby ta czynność stale się powtarzała. Chodzi o jak najprostszy sposób wykonania takiego manewru. Czy ktoś mógł by mi napisać, lub podesłać, przykład fragmentu kodu dla układu nadawczego i odbierającego?
  • REKLAMA
  • #2 6609172
    dawid512
    Poziom 32  
    Masz do dyspozycji UART, 1WIRE, I2C, SPI. Polecam UART, 2 linie sygnałowe i masa. Przykład znajdziesz w helpie.
  • REKLAMA
  • #3 6610787
    piotrek700
    Poziom 13  
    Wziąłem sie za Uart ale cos mi nie wychodzi. Chce przesłać zmienna "Licznik_1" do układu odbiorczego i przypisać ją zmiennej "Licznik" ale nie działa. Czy fus CKDIV 8 ma być włączony, czy kwarce w obu układach musza pracować z tą samą częstotliwością? Oczywiście masy układów połączone i TDX-->RDX

    Cytat:

    Układ nadawczy
    $crystal = 12000000
    $baud = 9600

    Config Portd = Output
    Portd = &B0000000

    Dim Licznik_1 As Byte
    Enable Interrupts

    Do

    Print Licznik_1
    Waitms 1

    Loop


    Cytat:
    Odbiornik:

    $crystal = 12000000
    $baud = 9600
    Config Portd = Input
    Portd = &B0000000

    Dim Zliczanie As Byte

    Do

    Inputbin Licznik_1
    Waitms 1

    Loop
  • #4 6610847
    dawid512
    Poziom 32  
    W programach brakuje deklaracji jakiego uc używasz. Dobrze byłoby gdyby zegar w jednym i drugim uc był taki sam. Grzebałeś w fuse bitach?
  • #5 6610869
    piotrek700
    Poziom 13  
    Przestawiłem tylko na zewnętrzy oscylator, dzielnik CKDIV 8 -wyłączony. Mógł byś mi napisać przykład jak to poprawić żeby działało?
  • REKLAMA
  • #6 6610923
    dawid512
    Poziom 32  
    Najpierw napisz mi z jakich uc korzystasz oraz jak ustawiłeś fuse bity.
  • REKLAMA
  • #8 6611034
    dawid512
    Poziom 32  
    Łączysz:
    TX uc1 do RX uc2
    RX uc1 do TX uc2
    oraz dajesz wspólną masę.
    Napisz porządnie program nie zapominając o deklaracji jakiego uc używasz.
  • #9 6611242
    piotrek700
    Poziom 13  
    Zrobiłem wszystko tak jak napisałeś, zadeklarowałem uC i połączyłem wszystko jak ma być i dalej nic. Zmieniałem funkcje inputbin na input i to samo.
  • #10 6611569
    dawid512
    Poziom 32  
    Pokaż programy.
  • #11 6611909
    piotrek700
    Poziom 13  
    Błąd znajdował się w kodzie programu. Teraz działa. Dzięki za pomoc.
REKLAMA