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]Komunikat w programie zliczającym impulsy

siewnik 20 Gru 2008 00:33 1131 6
REKLAMA
  • #1 5880022
    siewnik
    Poziom 15  
    Witam

    Napisałem program który zlicza impulsy z przycisku ale nie chce mi wyświetlać wyniku, wyskakuje taki komunikat:

    Error : 35 Line :30 3 parameters expected

    a to jest ten program:
    
    Dim J As Byte , D As Byte , S As Byte , T As Byte
    Dim Wynik As Byte
    
    Config Portb = 255 : Portb = &B11111111
    Config Portd = &B1111100 : Portd = &B1111111
    Cls
    
    Do
       Debounce Pind.2 , 0 , Zwieksz , Sub
    Loop
    End
    
    Zwieksz:
    Incr J
    If J = 10 Then
       J = 0
       Incr D
       If D = 10 Then
          D = 0
          Incr S
             If S = 10 Then
                S = 0
                Incr T
                   If T = 10 Then T = 0
             End If
       End If
    End If
    
        Wynik = T * 1000 + S * 100 + D * 10 + J
        Locate 1 , 3
       Lcd Wynik
    
    Return
    

    jeżeli ktoś wie co jest źle to proszę o pomoc

    Proszę zapoznać się z zasadami pisania postów na tym forum i zakładać tematy we właściwym dziale/subforum.
    [zumek]
  • REKLAMA
  • Pomocny post
    #2 5880044
    dawid512
    Poziom 32  
    Źle robisz to że próbujesz wykonać mnożenie i dodawanie jednocześnie na 4 zmiennych. Niestety Bascom tego nie potrafi. Proponuję zrobić np. coś takiego:
    T = T * 1000
    S = S * 100
    D = D * 10
    Wynik = T + S
    Wynik1 = D + J
    Wynik2 = Wynik + Wynik1
    Nie zapomnij zadeklarować nowych zmiennych.
  • REKLAMA
  • #3 5880060
    siewnik
    Poziom 15  
    dzięki za ta informacje, nie wiedziałem ze bascom tak nie potrafi, ale teraz bascom pisze ze: 2 variables expected

    T = T * 1000
    S = S * 100
    D = D * 10
    Wynik = T + S
    Wynik1 = D + J
    Locate 1 , 2
    Lcd Wynik2 = Wynik + Wynik1
  • REKLAMA
  • #5 5880077
    siewnik
    Poziom 15  
    heh, chyba już pora iść spać ;-) dzieki wielkie

    Dodano po 10 [minuty]:

    dzięki, musze się jeszcze uporać z jednym problemem, bo jak zliczy do 10 to potem jakieś "losowe" liczby wyswietla
  • REKLAMA
  • Pomocny post
    #6 5880099
    K_o_n_r_a_d
    Poziom 23  
    1. Wszystkie zmienne powinny być typu takiego, który jest w stanie pomieścić wszystkie możliwe wartości, które mogą wystąpić, czyli w tym przykładnie zmienne WYNIK i WYNIK2 powinny być typu WORD
    2. Zmienne T, S, D, J są w tym przykładzie zmieniane przed wyświetleniem i przy następnym wywołaniu podprogramu wychodzą głupoty.

    Sprawdz coś takiego:
    Dim J As Byte , D As Byte , S As Byte , T As Byte
    Dim Wynik As Word , Wynik2 As Word
    
    Config Portb = 255 : Portb = &B11111111
    Config Portd = &B1111100 : Portd = &B1111111
    Cls
    
    Do
     Debounce Pind.2 , 0 , Zwieksz , Sub 
    Loop
    End
    
    Zwieksz:
    Incr J
    If J = 10 Then
       J = 0
       Incr D
       If D = 10 Then
          D = 0
          Incr S
          If S = 10 Then
             S = 0
             Incr T
             If T = 10 Then T = 0
          End If
       End If
    End If
    
    Wynik = T * 1000
    Wynik2 = S * 100
    Wynik = Wynik + Wynik2
    Wynik2 = D * 10
    Wynik = Wynik + Wynik2
    Wynik = Wynik + J
    Locate 1 , 3
    Lcd Wynik ; "     "
    
    Return
  • #7 5880106
    siewnik
    Poziom 15  
    ok, dzięki wielkie, juz nie zawracam głowy, bardzo bardzo dziękuję za pomoc!!!!!

    Regulamin p.10.2
    [zumek]
REKLAMA