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

Błąd kompilacji w Bascom przy użyciu 1wsearchfirst() i 1wirecount

darrrrek 23 Paź 2006 16:23 1456 4
REKLAMA
  • #1 3145465
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Witam !

    Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy:

    W = 1wirecount(ar(1))

    pozniej:

    Ar(1) = 1wsearchfirst()

    Ar(1) = 1wsearchnext()

    Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc :(

    '------------------------------------------------------------------
    '                       1wirecount.bas
    '                   (c) 2002 MCS Electronics
    ' Demonstarcja użycia wielu urządzeń na magistrali
    '------------------------------------------------------------------
    'definicja użytego kontrolera
    $regfile = "89s8252.dat"
    'jaki rezonator kwarcowy
    $crystal = 16000000
    
    'szybkośc transmisji
    $baud = 4800
    
    'czekaj 500 ms
    Waitms 500
    
    'Używamy końcówki:
    'Podłącz rezystor 4K7 między końcówkę a szynę zasilania
    Config 1wire = P2.6
    
    'potrzebna będzie tablica 8 bajtów dla numerów ID
    Dim Ar(8) As Byte
    'potrzebny będzie także zmienna przeznaczona na licznik i zmienna typu Word
    Dim I As Byte , W As Word
    
    'Klika numerów ID które przetestowałem
    ' 01 51 B5 8D 01 00 00 56
    
    ' 01 84 B3 8D 01 00 00 E5
    
    Print "start"
    'odczytaj liczbę urządzeń na magistrali
    W = 1wirecount(ar(1))
    'Wydrukuj stan znacznika błędu oraz ile znaleziono urządzeń
    Print "ERR=" ; Err ; " przy " ; W ; " urządzeniach."
    
    'teraz odczytyamy dane z pierwszego urządzenia
    
    Ar(1) = 1wsearchfirst()
    'wydrukuj numer ID
    
    For I = 1 To 8
      Printhex Ar(i);
    Next
    Print
    
    'Ja uzyskałem rezultat, że jest więcej niż 1 urządzenie na magistrali
    Do
      'następne urządzenie
      Ar(1) = 1wsearchnext()
      'wydrukuj numer ID
      For I = 1 To 8
        Printhex Ar(i);
      Next
      Print
    Loop Until Err = 1
    'jeśli ERR jest ustawiona znaczy to, że nie ma innych urządzeń
    
    'WAŻNE! 1WSEARCHFIRST oraz następna funkcja wymaga by tablica była taka sama
    'W tym przypadku jest nią Ar(1)
    
    'Jeśli znasz numer urządzenia, możesz go wtedy zaadresować
    
    End


    Bede wdzieczny za pomoc!!
    pozdrawiam!
  • REKLAMA
  • #2 3145475
    msgow
    Poziom 27  
    Posty: 725
    Pomógł: 115
    Ocena: 88
    Witam
    A wersja kompilatora dobra ?
    Pozdrawiam.
  • REKLAMA
  • #3 3145860
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    zamienilem juz wersje i smiga tylko teraz znow8u pojawil sie problem z wysylka programu do procka, na starym bascomie wysyla bez problemu a na tym nie chce, ustawienia mam identyczne....zaraz mnie rozsadzi :) pozdrawiam i dzieki za pomoc:)
  • REKLAMA
  • #4 3148130
    msgow
    Poziom 27  
    Posty: 725
    Pomógł: 115
    Ocena: 88
    Witam
    Przecież można starszą wersją programować (czasami tak robię), albo innym progiem.
    Pozdrawiam.
  • #5 3148389
    przemo.t
    Poziom 27  
    Posty: 994
    Pomógł: 79
    Ocena: 30
    A po wgraniu nowej wersji ustawiles odpowiednia wersje programatora??
REKLAMA