Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom avr - Dane tablicy i wysyłanie

nouki 31 Mar 2014 09:54 1128 5
  • #1 31 Mar 2014 09:54
    nouki
    Poziom 25  

    Witam.

    Napisałem taki mały programik do wysyłania danych.
    Chce by wysyłał tablicę do której wpisuje sobie dane.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Dim Tabaa(7) As Byte

    Do

    Printbin Tabaa(1) , 7

    Loop

    Tabaa:

    Data &H50% , &H05% , &H04% , &H80% , &H03% , &H00% , &H1A%
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Niestety występuje błąd. Proszę o radę.

    0 5
  • #2 31 Mar 2014 16:58
    Paweł Es.
    Pomocny dla użytkowników

    Jaki błąd ?

    Po loop powinno być END

    0
  • #3 31 Mar 2014 19:14
    Mateusz@
    Poziom 17  

    Do tablicy tak się nie wpisuje wartości.
    Wpisujesz np tak:
    Tabaa(1)=100
    Tabaa(2)=200

    Kompilator Ci krzyczał że nazwy są zduplikowane bo nazwa twojej tablicy i nazwa etykiety byłe takie same. Trzeba czytać te błędy.
    Następny błąd jest w printbin nie da się nic zapisać po przecinku. Co ta siódemka miała znaczyć?

    0
  • #4 31 Mar 2014 22:27
    nouki
    Poziom 25  

    Witam.

    A kto powiedział że ja wpisuje dane? Ja je wysyłam.

    Tablica jest 7 elementowa jak deklaruje "Dim Tabaa(7) As Byte"

    Więc wysyłam 7 kolejnych zaczynając od pozycji 1 "Printbin Tabaa(1) , 7"

    Inaczej chce by działało tak: dane w tablicy są zmienne więc sobie je tam wpisuje i chce wysłać wszystkie ( całą tablicę).

    Pozdrawiam.

    0
  • Pomocny post
    #5 31 Mar 2014 23:20
    Mateusz@
    Poziom 17  

    Możesz podać gdzie przeczytałeś że ta liczba po przecinku oznacza liczbę wysłanych bajtów?
    Help nic nie mówi na ten temat. Sprawdzałem w symulatorze że ta liczba nic nie zmienia. Jest taka informacja w helpie "When you use Printbin ar(1) , the whole array will be printed."

    nouki napisał:
    A kto powiedział że ja wpisuje dane? Ja je wysyłam.

    Ale twoja tablica jest pusta. Czyli wysyłasz same zera. Pomijając fakt że twój program nie chce się skompilować ponieważ kompilator wywala błąd: Duplicate label name used by const or variable [TABAA]

    0
  • #6 01 Kwi 2014 09:14
    nouki
    Poziom 25  

    Witam.

    Prosty błąd powinno być "Printbin Tabaa(1) ; 7 ".

    Kolego a czy w helpie jest wszytko?

    Działający kod

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    $crystal = 8000000
    $regfile = "m1284def.dat"


    $baud = 19200

    Dim Send(7) As Byte
    Dim Send1(8) As Byte
    Dim I As Byte
    I = 0



    Print "dane"
    Send(1) = &H50%
    Send(2) = &H05%
    Send(3) = &H04%
    Send(4) = &H80%
    Send(5) = &H03%
    Send(6) = &H00%
    Send(7) = &H1A%


    Send1(1) = &H50%
    Send1(2) = &H05%
    Send1(3) = &H05%
    Send1(4) = &H82%
    Send1(5) = &H01%
    Send1(6) = &H10%
    Send1(7) = &H00%
    Send1(8) = &H00%


    Printbin Send(1) ; 8
    Waitms 100


    Do
    Waitms 200

    Printbin Send1(1) ; 8
    I = I + 1
    Send1(8) = I
    If I > 64 Then I = 0

    Loop

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Pozdrawiam

    0