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 - dlaczego liczy tylko do 255 skoro zmienna jest Long

tomasz256 14 Gru 2004 21:25 1610 2
REKLAMA
  • #1 1060654
    tomasz256
    Poziom 12  
    Posty: 25
    Cześć,
    Przedstawiam problem:
    w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego?
    Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy właściwie do zakresu Long. Dlaczego zmienna minuty nie???
    Coś przeoczyłem, ale co???
    Siedzę i jakoś znaleźć błędu nie mogę, dlatego proszę Was :D

    Led3 Alias P1.2
    Dim Count As Byte
    Dim Limit As Integer
    Dim Limit1 As Integer
    Dim X1 As Byte
    Dim W1 As Byte
    Dim Il1 As Byte
    Dim Clock As Integer
    Dim Minuty As Long
    Dim Sekundy As Long

    Config Timer0 = Timer , Gate = Internal , Mode = 2
    On Timer0 Timer_0_int
    Load Timer0 , 250
    On Int0 Przerw1
    Enable Interrupts
    Enable Int0
    Enable Timer0
    Start Timer0

    Clock = 0
    Sekundy = 0
    Minuty = 0
    X1 = 0
    Limit = 0
    Il1 = 0
    Limit1 = 0
    Do

    Loop
    End

    '========================
    Przerw1:
    X1 = 1
    W1 = 200
    Inc IL1
    Limit1 = W1 * Il1
    Limit = Limit1 ' + Limit2
    Wait 1
    Return

    Timer_0_int:
    Inc Clock
    Sekundy = Sekundy + X1
    If Sekundy = 2 Then
    Inc Minuty
    Set Led3
    Sekundy = 0
    If Minuty = Limit Then
    Reset Led3
    End If
    End If


    Return
  • REKLAMA
  • Pomocny post
    #2 1060709
    midas78
    Poziom 19  
    Posty: 360
    Pomógł: 12
    Ocena: 12
    po mojemu powinieneś zmienić "Inc" na "Incr"
    Inc jest mnemonikiem asemblerowym i działa na bajcie
    Incr jest poleceniem Bascom i powinien działać na longu.
  • #3 1060854
    tomasz256
    Poziom 12  
    Posty: 25
    Dzięki. To było to. :D
    Nie wpadłbym na to ani za tydzień :D
REKLAMA