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-prosty program-PROBLEM

adi84_84 02 Lip 2010 22:36 1382 6
REKLAMA
  • #1 8255716
    adi84_84
    Poziom 14  
    Witam. Jestem początkującym w programowaniu, więc proszę o wyrozumiałość. Chcę zrobić sterownik silnika krokowego. Chodzi o pojedyńcze skoki silnika, po naciśnięciu S1, S2. Obsługi silnika na razie nie dopisałem, bo jest to proste i nie potrzebne w tym momencie. Teraz problem (nie wiem jak zmniejszać (przycisk S2), liczbę na LCD. Pewnie głupia rzecz ale coś mi nie wychodzi. Oto mój program:

    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
    Config Portd.0 = Output                                     'Led
    Config Pinb.0 = Input                                       'S1  Dodaj
    Config Pinb.1 = Input                                       'S2  Odejmij
    Config Pinb.2 = Input                                       'S3  Zapis do eeprom
    Set Portb.0
    Set Portb.1                                                    '????????????????????
    Set Portb.2
    Dim Dodaj As Byte                                           'Zmienna do odejmij ???????
    Dim Odejmij As Byte
    Cls
    Lcd " Sterownik SIL  "
    Lowerline
    Lcd "  By adi84_84   "
    Wait 2
    Readeeprom Dodaj , 1
    Do
    Waitms 100
    Cls
    Lcd "   REGULACJA    "
    Lowerline
    Locate 2 , 7
    Lcd Dodaj
    Lcd "%"
    Lcd "         "
    If Pinb.0 = 0 Then
    Waitms 25
    If Pinb.0 = 0 Then Portd.0 = 1
    Waitms 500
    Portd.0 = 0
    Incr Dodaj
    If Dodaj = 100 Then
    Dodaj = 0
    End If
    End If
    
    'Obsługa S2 ????????????
    
    If Pinb.2 = 0 Then
    Waitms 25
    If Pinb.2 = 0 Then Writeeeprom Dodaj , 1
    Cls
    Lcd "  ZAPIS DANYCH  "
    Portd.0 = 1
    Wait 2
    Portd.0 = 0
    End If
    Loop
    End
  • REKLAMA
  • REKLAMA
  • #3 8255883
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #4 8255920
    M. S.
    Poziom 34  
    If Pinb.2 = 0 Then
    Waitms 25
    If Pinb.2 = 0 Then ... 


    Zapoznaj się z Debounce !!!

    Do
    ....
    
    Debounce Pinb.0 , 0 , Dodaj , Sub
    Debounce Pinb.1 , 0 , Odejmij , Sub
    
    Loop
    
    Dodaj:
    Incr Zmienna 'lub zmienna = zmienna + {jakaś wartość}
    If Zmienna > {wartość końcowa} then Zmienna = {wartość początkowa albo wartość końcowa}
    Lcd Zmienna
    Return
    
    Odelmij:
    Decr Zmienna 'lub zmienna = zmienna - {jakaś wartość}
    If Zmienna < {wartość poczatkowa} then Zmienna = {wartość końcowa albo wartość początkowa}
    Lcd Zmienna
    Return
    
  • REKLAMA
  • #5 8255926
    adi84_84
    Poziom 14  
    sp3ots

    Nie za bardzo wiem o co ci chodziło.Rozwiń dokładniej podpowiedz jak możesz :)
  • REKLAMA
  • Pomocny post
    #6 8256044
    sp3ots
    Poziom 38  
    Witam !
    Chciałeś zmniejszyć liczbę to podałem: Decr odejmij
    Decr zmniejsza liczbę o jeden.
    Silnikami krokowymi nigdy nie sterowałem.
    Pozdrawiam. Stefan gg6293398
  • #7 8256249
    adi84_84
    Poziom 14  
    Dzięki Stefan.Zamykam temat :)
REKLAMA