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] - If Then - sprawdzenie wrunku powyżej 255 w sterowniku

MAREK MRK 24 Lip 2011 19:23 1138 13
REKLAMA
  • #1 9753951
    MAREK MRK
    Poziom 18  
    Witam, jestem w trakcie pisania programu do regulacji temperatury i napotkałem problem. Napisałem program już w 80% i jest problem, ponieważ muszę wpisać wartość temperatury po której wartość ustawiona "zeruje się" do jedynki. Wszystko jest ok gdy wartość ta nie przekracza ok 250, gdy chcę wpisać 580 to wyskakuje błąd.
    
     Select Case Volt0                                        'zmienna Volt0
       Case Vminus0 To Vplus0 : Reset Led1                      'jeśli Vminus0 do Vplus0 to resetuj Led1
       Case Is < Vminus0 : Reset Led1                           'jeśli mniejsza od Vminus0 to resetuj Led1
       Case Is > Vplus0 : Set Led1                              'jeśli większa od Vplus0 to zmień stan na przeciwny
       End Select                                               'koniec
       Locate 1 , 1                                             'w 1,1
       Lcd Voltconst0                                           'wyświetl Voltconst0
       If Temperatura = 250 Then                                 'jeśli temperatura = 250 to
       Temperatura = 1                                          'temperatura = 1
       End If 
    
  • REKLAMA
  • Pomocny post
    #2 9753986
    Szymon Tarnowski
    Poziom 27  
    A ten błąd wyskakuje jaki?
    Sprawdź typ zmiennej.
  • REKLAMA
  • Pomocny post
    #4 9754063
    Konto nie istnieje
    Poziom 1  
  • #5 9754179
    MAREK MRK
    Poziom 18  
    Więc jak mogę to zastąpić? Przepraszam za to pytanie ale nie znam BASCOM aż tak dobrze.

    Dodano po 2 [minuty]:

    Takie mam zmienne:
    Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 32 , 32        ' replace ? with number (0-7)'
    Deflcdchar 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1                ' replace ? with number (0-7)
    Deflcdchar 2 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16        ' replace ? with number (0-7)
    Config Adc = Single , Prescaler = Auto , Reference = Avcc   'config ADC
    Start Adc                                                   'uruchom ADC
    Dim W As Word , Perc As Word , Volt As Word , Channel As Byte , I As Byte , Cols As Byte ,       'zmienne
    Dim H As Byte                                               'zmienna H
       H = 2                                                    'histereza = 2
    Declare Sub Wysw_temp                                       'nagłówek procedury wysw_temp
    Dim Temperatura As Byte                                     'zmienna temperatura
    Dim Nowa_w As Bit                                           'zmienna nowa_w
    Dim Wart_bcd As Byte                                        'Zmienna Wart_bcd
    Enable Interrupts                                           'odblokowanie przerwań
    Dim Volt0 As Word                                           'zmienna Volt0
    Dim Voltconst0 As Word                                      'zmienna Voltconst0
    Dim Vplus0 As Word                                          'zmienna Vplus0
    Dim Vminus0 As Word                                         'zmienna Vminus0
  • REKLAMA
  • #8 9754308
    Konto nie istnieje
    Poziom 1  
  • #9 9754520
    daroslav15
    Poziom 16  
    Nie znam bascoma, ale zapewne twoja zmienna jest liczbą 8-bitową, zatem musisz przy deklaracji zadeklarować zmienną mogącą pomieścić większą liczbę.
  • REKLAMA
  • #11 9754652
    Konto nie istnieje
    Poziom 1  
  • #13 9754807
    Konto nie istnieje
    Poziom 1  
REKLAMA