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

Zaczynam przygodę z Atmegą 32 i nie umiem wywołać procedury

modzelm 10 Sty 2012 20:52 783 5
  • #1 10378634
    modzelm
    Poziom 9  
    Witam
    Mam problem z wywolaniem procedury. Wycinek programu na dole:

    .....
    Declare Sub Temperatura(t As Word , S As String * 4 , Minus As Bit).......to jest linia 58

    Do

    If Pina.0 = 0 Then
    Portb.7 = 0 ' jeśli PINDA.0 jest w stanie niskim to znaczy, ze nacisnięto przycisk S1 wtedy ustaw na PORTB.7 na 0
    End If ' koniec instrukcji if

    If Pina.1 = 0 Then ' jeśli PINA.1 jest w stanie niskim to znaczy, ze nacisnięto przycisk S2' wtedy ustaw na PORTB.7 na 1
    Portb.7 = 1 'koniec instrukcji if
    End If
    If Portb.7 = 0 Then
    Call Temperatura(t , S , Minus)

    Locate 1 , 1
    Lcd " Wcisnij P1"

    Locate 2 , 1
    Lcd "pokarze temp. "

    End If
    Loop



    Sub Temperatura(t As Word , S As String * 4 , Minus As Bit )

    1wreset
    1wwrite &H55 'porównaj numer czujnika
    1wverify Id(1)
    1wwrite &HBE 'komenda odczytania z czujnika
    T = 1wread(2)
    .....
    Przy kompilacji otrzymuję komunikat :
    Line 58 : Byval should be used in declaration [[1]]....

    Mam nadzieję , że napisalem to zrozumiale.
    Dzieki z góry za podpowiedz.
  • #2 10378904
    sorex86
    Poziom 15  
    a ktora linia to jest 58?
  • #3 10378967
    modzelm
    Poziom 9  
    Ta linia jest podpisana jako linia 58
  • #4 10379076
    Fredy
    Poziom 27  
    zamień :
    Declare Sub Temperatura(t As Word , S As String * 4 , Minus As Bit)

    na

    Declare Sub Temperatura(byval t As Word , Byval S As String * 4,Byval Minus As Bit)


    nie wiem czy w Bascomie można podawać jako argument zmienną typu bit, jeśli kompilator się tego czepi to zmień to na Byte.
  • #6 10381766
    modzelm
    Poziom 9  
    Witam
    Dzieki za podpowiedz zmieniłem Minus z Bit na Byte i poszło
REKLAMA