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

[BASCOM] Licznik 1 do 56 ze zmianą co 24h + wyświetlacz LED

wiceq 14 Lut 2011 21:48 1316 6
  • #1 9152708
    wiceq
    Poziom 13  
    Witam,
    Chciałem prosić bardziej zaawansowanych kolegów o sprawdzenie kodu jaki udało mi się napisać (co ciekawe nie przerobiłem do końca jeszcze żadnej książki o bascomie, ale miałem do czynienia z vb).
    Program ma liczyć od 1 do 56 i przełączać się na następną liczbę co 24h. Dodatkowo wstawiłem możliwość resetowania i zwiększenia liczby o 1.
    Debuger nie wykazuje żadnych błędów, jednak wydaje mi się, że można to napisać prościej lub przynajmniej zoptymalizować.
    Co do wychodzących sygnałów - nie wiedziałem od której strony zacząć "wypuszczać" stany więc na razie wszystko jest ustawione na 0. Jeśli komuś się zachce - będę wdzięczny za zrobienie, aczkolwiek wystarczy powiedzieć od której strony powiniennem zacząć ustawiać stany.

    $regfile = "m8def.dat"
    $crystal = 8000000
    '$sim
    Config Portc = Output
    Config Portd = Output
    Config Pinb.0 = Input
    Config Pinb.1 = Input
           Portc = 0
           Portd = 0
    Rst Alias Pinb.0
    Plus Alias Pinb.1
    Dim X As Byte
    Dim Y As Byte
    Dim Z As Byte
       If Plus = 1 Then
          X = X + 1
       End If
       If Rst = 0 Then
          Else
          Cls
          X = 1
       End If
    Do
       For X = 1 To 56 Step 1
          Y = X / 10
          If Y = 0 Then
             Portc = &B00000000
          End If
          If Y = 1 Then
             Portc = &B00000000
          End If
          If Y = 2 Then
             Portc = &B00000000
          End If
          If Y = 3 Then
             Portc = &B00000000
          End If
          If Y = 4 Then
             Portc = &B00000000
          End If
          If Y = 5 Then
             Portc = &B00000000
          End If
          If Y = 6 Then
             Portc = &B00000000
          End If
          If Y = 7 Then
             Portc = &B00000000
          End If
          If Y = 8 Then
             Portc = &B00000000
          End If
          If Y = 9 Then
             Portc = &B00000000
          End If
          Z = Y Mod 10
          If Z = 0 Then
             Portd = &B00000000
          End If
          If Z = 1 Then
             Portd = &B00000000
          End If
          If Z = 2 Then
             Portd = &B00000000
          End If
          If Z = 3 Then
             Portd = &B00000000
          End If
          If Z = 4 Then
             Portd = &B00000000
          End If
          If Z = 5 Then
             Portd = &B00000000
          End If
          If Z = 6 Then
             Portd = &B00000000
          End If
          If Z = 7 Then
             Portd = &B00000000
          End If
          If Z = 8 Then
             Portd = &B00000000
          End If
          If Z = 9 Then
             Portd = &B00000000
          End If
          Wait 3600
          Next X
    Loop
    End


    Za błędy przepraszam i proszę o wyrozumiałość, gdyż nie każdy pisząc coś pierwszy raz jest alfą i omegą.
  • #2 9152943
    asembler
    Poziom 32  
    No jezeli masz układ już zmontowany to nc trudnego nawet na pałe wpisywać kształt cyfr i patrzeć co z tego wychodzi.
    Nikt ci nie podpowie jakie "stany wypuszczać" bez schematu przynajmniej.
  • Pomocny post
    #3 9153346
    Fredy
    Poziom 27  
    Zamiast dawać tyle ifów możesz dać jeden Select case - zobacz w Helpie jak on działa.
  • #5 9154651
    wiceq
    Poziom 13  
    asembler - właśnie w tym problem, że do układu jak na razie nie mam żadnych elementów i próbuję jak na razie coś tam nabazgrać.
    Fredy i xury dzięki za podpowiedź, spróbuję wykorzystać i ewentualnie wrzucę do sprawdzenia.
  • #6 9154877
    piotrva
    VIP Zasłużony dla elektroda
    wiesz, uruchamianie programu na symulacji bez układu to trochę jak... pisanie programu na komputer bez posiadania komputera... Ja zwykle pierwsze mam układ, a potem pisze oprogramowanie, bo niektórych rzeczy bez tego nie masz szans przetestować...
  • #7 9359704
    wiceq
    Poziom 13  
    Jakiś czas temu popełniłem kolejną wersję, ale nie miałem czasu jej wstawić.
    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA