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

Pierwszy program. Proszę o sprawdzenie BASCOM

wojtek9104 25 Gru 2009 18:21 1584 6
  • #1 7434655
    wojtek9104
    Poziom 16  
    Witam.
    Zaczynam naukę Bascoma i napisałem dzisiaj taki programik.
    Chce go stosowac w samochodzie jako buzer przypominający o włączeniu i o wyłączeniu świateł, i jako dodatek w postaci diody imitującej alarm.

    Mam takie wątpliwości czy program nie zatrzyma sie na pierwszej pętli
    DO

    LOOP

    Jak by komuś chciało się sprawdzic i napisac co robie źle to był bym wdzięczny.

    W poniedziałek będe miał programator a w międzyczasie chciałem go udoskonalic. :)


    $regfile = "attiny2313.dat"                                 'typ proca
    $crystal = 1000000                                          'Taktowanie
    
    Config Portb = Input                                        'port b  jako wejścia
           Portb = &B00000000                                   'wszędzie stan spoczynkowy-0
    Config Portd = Output                                       'port d jako wyjścia
           Portd = &B0000000                                    'wszędzie stan spoczynkowy-0
    
    
    Do
    
    If Pinb.0 = 0 And Pinb.1 = 0 Then                           'migacz imitujący diode alarmu
    Waitms 1000                                                 'gdy zapłon i swiatła wyłączone
    Toggle Portd.0
    return
    End If
    
    Loop
    
    Do
    
    If Pinb.0 = 0 And Pinb.1 = 1 Then                           'jeśli zapłon wyłączony i światła włączone
    Gosub Program1                                              'przejdź do programu1
    
    Program1:
    Waitms 1000
    Toggle Portd.1
    Return
    End If
    
    Loop
    
    Do
    
    If Pinb.0 = 1 And Pinb.1 = 0 Then                           'jeśli zapłon włączony i światła wyłączone
    Gosub Program2                                              'przejdź do programu2
    
    Program2:
    Portd.1 = 1
    Waitms 1000
    Return
    End If
    
    Loop
    
    
  • #2 7434699
    Konto nie istnieje
    Konto nie istnieje  
  • #3 7434802
    wojtek9104
    Poziom 16  
    Tak myślałem że z pętlami będzie coś nie tak.
    Tylko czy teraz nie będzie tak zaczynając od migacza program zmieni stan portu d.0 i przejdzie dalej?? chodzi mi o to aby ona migała. tak samo jak buzer ma jak by "pikac" co sekunde .

    Do 
    
    If Pinb.0 = 0 And Pinb.1 = 0 Then                           'migacz imitujący diode alarmu 
    Waitms 1000                                                 'gdy zapłon i swiatła wyłączone 
    Toggle Portd.0 
    End If 
    
    
    
    If Pinb.0 = 0 And Pinb.1 = 1 Then                           'jeśli zapłon wyłączony i światła włączone 
    Waitms 1000 
    Toggle Portd.1 
    End If 
    
    
    If Pinb.0 = 1 And Pinb.1 = 0 Then                           'jeśli zapłon włączony i światła wyłączone 
    Portd.1 = 1 
    Waitms 1000 
    End If 
    
    Loop
  • #4 7434827
    Konto nie istnieje
    Konto nie istnieje  
  • #5 7434888
    wojtek9104
    Poziom 16  
    Jeżeli zapłon i światła wyłączone ma migac dioda ( dioda tylko w typ przypadku)

    jeżeli zapłon wyłączony a światła włączone (lub na odwrót) ma pikac buzer


    Może coś takiego będzie dobre:
    nie wiem czy znów niepotrzebnie dawałem to return ale chce aby buzer pikał aż do momentu gdy nie zmieni się założony warunek.

    Do
    
    If Pinb.0 = 0 And Pinb.1 = 0 Then                           'migacz imitujący diode alarmu
    Gosub Migacz                                                'gdy zapłon i swiatła wyłączone
    
    Migacz:
    Waitms 1000
    Toggle Portd.0
    Return
    
    End If
    
    
    
    If Pinb.0 = 0 And Pinb.1 = 1 Then                           'jeśli zapłon wyłączony i światła włączone
    Gosub Buzer1
    
    Buzer1:
    Waitms 500
    Toggle Portd.1
    Return
    
    End If
    
    
    If Pinb.0 = 1 And Pinb.1 = 0 Then                           'jeśli zapłon włączony i światła wyłączone
    Gosub Buzer2
    
    Buzer2:
    Waitms 1000
    Toggle Portd.1
    Return
    
    End If
  • Pomocny post
    #6 7434921
    Konto nie istnieje
    Konto nie istnieje  
  • #7 7434948
    wojtek9104
    Poziom 16  
    Dioda jest zwykła , i chce to zrobic w programie a później dobierac częstotliwośc jaka mi będzie pasowac.

    Więc narazie dzięki za pomoc.
    Jak będe miał programator to dam znac czy działa
REKLAMA