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] ds1820 i atmega8 na rs. Jak zmodyfikować program?

grafii1 28 Lut 2011 12:14 1515 4
REKLAMA
  • #1 9215345
    grafii1
    Poziom 17  
    Witam , prosty program nadajnika attiny45 i odbiornika atmega8 wszystko chodzi poprawnie ale potrzebuje do jednej linii podpiąć 3 nadajniki i nie wiem jak zmodyfikować program odbiornika tak aby na lcd 4x16 każdy był identyfikowany osobno i odczytywany w osobnej linii lcd . Lcd i reszta jest do ogarnięcia główny problem to identyfikacja każdego nadajnika osobno , nadajniki będą wysyłać informacje co 5 lub ileś tam minut , jestem początkującym w baskomie więc proszę o pomoc i wyrozumiałość . Program nadajnika i odbiornika

    Nadajnik:

    $regfile = "attiny45.dat"
    
    Dim Bd(9) As Byte
    Dim T As Integer
    Dim T1 As Integer
    Dim X As Byte
    Dim Tmp As Byte
    Declare Sub Read18
    Config 1wire = Pinb.4
    
    Do
     1wwrite &HCC
     1wwrite &H44
     Waitms 250
     Waitms 250
     Gosub Read18
    
     Open "comb.0:19200,8,n,1" For Output As #1
     Print #1 , T ; Chr(13);
     Close #1
     Waitms 1000
     Loop
    
    Read18:
       Waitms 250
       Waitms 100
       1wreset
       1wwrite &HCC
       1wwrite &HBE
       ...
          Return
    
    Odbiornik:
    
    $regfile = "m8def.dat"
    Config Lcd = 16 * 2
    Dim A As String * 10
    Config Pinc.1 = Input
    Cursor Off
    Cls
    Lcd "START"
    Waitms 500
    Cls
    Do
      ...
      If Pinc.1 = 0 Then
      Open "comc.0:19200,8,n,1" For Input As #1
      Input #1 , A
      Cls
      Lcd "TEMP: " ; A
      Close #1
      End If
      ...
    Loop
  • REKLAMA
  • Pomocny post
    #2 9220843
    FastProject
    Poziom 28  
    Po 1: Jaki to RS (232, 485)? Jak RS232 to nie da się tego łatwo zrobić. Do wielu nadajników nadaje się np RS485. Ewentualnie zrób sobie 3 programowe "RS" i odbieraj z każdego nadajnika oddzielnie.
    Po 2: Gdy RS485, to możesz sobie też zrobić prostą ramkę i poza bajtami TH i TL wysyłać adresy nadajników tak aby odbiornik wiedział od którego dostaje dane. Adresy w nadajnikach muszą być różne. Odbiornik po odebraniu danych i adresu dopiero wyświetli temperaturę i numer czujnika-nadajnika.
  • REKLAMA
  • Pomocny post
    #3 9221985
    LordBlick
    VIP Zasłużony dla elektroda
    Niekoniecznie musi to byc RS485. AVR-y mają tryb dla USART-a MPCM. Jest to tryb Master -kilka slave, przy czym transmisja jest 9-bitowa i ten ostatni bit jest znacznikiem adresu. W slave-ach łączysz wszystkie Rx ze sobą i Tx ze sobą , następnie krosujesz z Tx i Rx Mastera. Szczegóły w nocie katalogowej...
    EDIT: Przykładów nie podam, bo nie miałem potrzeby użycia (tym bardziej w Bascom, który stał się popularny kilka lat później, niż zacząłem programować AVR), tylko napotkałem w nocie katalogowej, więc podaję trop. Kto ma głowę na miejscu, dalej będzie wiedział co z tym zrobić...
  • REKLAMA
  • #4 9223965
    grafii1
    Poziom 17  
    Witam , prototyp jest w fazie projektu więc trudno określić jaki rs-się nada , może to dziwny pomysł ale można spróbować tego :
    Open "comb.0:19200,8,n,1" For Output As #1
    Open "comb.1:9600,8,n,1" For Output As #2
    ....
    owszem , spinając 2 piny razem i przesyłając do nich dane mogą się pokrywać i wtedy spore zamieszane ale czy sama idea tego pomysłu jest możliwa ... zobaczymy , sprawdzę i dam znać .
    PS.
    Może proszę o zbyt wiele ale jakieś proste przykłady od Daro_Elektronik i Light-I ... ,
    pozdrawiam
  • #5 17337031
    grafii1
    Poziom 17  
    Witam , temat nieaktualny
REKLAMA