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

[atmega8515][BASCOM] - jak zrobić "Waitms x", ale

16 Cze 2008 12:10 2259 14
REKLAMA
  • #1 5251326
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 5251351
    Ch.M.
    Poziom 27  
    Może należy poczytać instrukcje do Bascoma?
    dział przerwania chyba będzie odpowiedni :>
  • REKLAMA
  • #3 5251355
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #4 5251380
    don diego
    Poziom 32  
    Poczytaj o Timerach. Po uruchomieniu timera możesz zająć się czymś innym w programie. Zmianę stanu na wyjściu zrób w obsłudze przerwania od Timera.
  • REKLAMA
  • #5 5258934
    dawid512
    Poziom 32  
    Możesz zapalić diodę i dać tradycyjne "wait x" i wykonać coś w przerwaniu za ten czas.
  • #6 5259582
    Konto nie istnieje
    Konto nie istnieje  
  • #7 5260074
    GrEG0
    Poziom 14  
    Cytat:
    Bo ja myślałem, żeby zrobić to na odwrót, wykonywać program i w przerwaniu zapalać i gasić diodę


    I dobrze msylisz. W przerwaniu obslugujesz diode (zapalasz, gasisz), a program sobie normalnie w glownej petli dziala.
  • #8 5260731
    Konto nie istnieje
    Konto nie istnieje  
  • #10 5261205
    Konto nie istnieje
    Konto nie istnieje  
  • #12 5261302
    don diego
    Poziom 32  
    Chodzi Ci o ilość źródeł przerwań, czy ilość wywołań konkretnego przerwania (np od timera)?
  • #13 5261324
    Konto nie istnieje
    Konto nie istnieje  
  • #15 5337259
    mr.box
    Poziom 15  
    Jest jeszcze inna opcja napisania takiego programu, bez wykonania, przerwań - uruchamiania timera. Minus jest taki, iż dioda będzie się zaświecała, bądź gasła, w momencie "bycia" programu w danej instrukcji, i drugi minus, iż nie będziesz mógł "dokładnie" obliczyć czas zaświecenia i gaśnięcia diody.
    Przykład:
    
    do
    incr zmienna
    if zmienna => 100 then zmienna = 0
    if zmienna > 0 and zmienna < 50 then portd.1 = 1
    if zmienna > 50 and zmienna <100 then portd.1 = 0
    'tutaj dalsza część programu
    loop
    end
    

    Oczywiście to jest przykład, w praktyce można to znacznie uprościć.
REKLAMA