Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sekwencyjne przełączanie pinów

slavcio2012 04 Sie 2012 06:47 1389 13
  • #1 04 Sie 2012 06:47
    slavcio2012
    Poziom 15  

    Witam , jestem początkujący w Bascomie i nie umie sobie poradzić z napisaniem programu do przełączania za pomocą jednego przycisku 8 pinów w procesorze tzn. tak aby kolejne dotknięcie przełącznika przełączało kolejny pin w jakimś tam porcie

    0 13
  • #2 04 Sie 2012 11:12
    1477378
    Użytkownik usunął konto  
  • #3 04 Sie 2012 11:12
    SylwekK
    Poziom 29  
  • #4 04 Sie 2012 11:41
    1477378
    Użytkownik usunął konto  
  • #5 04 Sie 2012 11:43
    nanab
    Poziom 27  

    Abo rotate port...
    Coś czuję, że zaraz będziemy świadkami pięknego rzutu za 3 punkty i temat zagości w koszu.

    0
  • #6 04 Sie 2012 11:59
    1477378
    Użytkownik usunął konto  
  • #7 04 Sie 2012 12:06
    slavcio2012
    Poziom 15  

    Na IFach udało mi się zrobić tylko sekwencję na jednym pinie(czyli 0/1 logiczna) nie wiem jak dalej

    0
  • #8 04 Sie 2012 12:26
    1477378
    Użytkownik usunął konto  
  • #9 04 Sie 2012 12:32
    SylwekK
    Poziom 29  

    Programu Ci nie napiszę ale opiszę jak go napisać... 8-)
    1. stwórz sobie zmienną BYTE przypisz jej wartość &B00000001
    2. w pętli badaj przycisk i jeśli będzie wciśnięty to wykonaj instrukcję SHIFT zmienna,Left,1
    3. przypisz zmienną do portu, na którym ma wędrować jedynka
    4. czekaj aż przycisk będzie puszczony
    5. pamiętaj, że jak instrukcja z punktu 2. wykona się 8 razy to jedynka wyleci z bajtu i zmienna przyjmie 0, w każdym razie przez 8 kolejnych wciśnięć bit będzie Ci wędrował.

    0
  • #10 04 Sie 2012 14:30
    slavcio2012
    Poziom 15  

    no prawie mi się udało tylko teraz jak mam załączony dany pin to mruga mi dioda a pozostałe świecą mi światłem ciągłym

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    [/code]

    0
  • #11 04 Sie 2012 15:11
    1477378
    Użytkownik usunął konto  
  • #12 04 Sie 2012 18:41
    arktik1
    Poziom 27  

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Proponował bym zastosować tu DEBOUNCE i wywalić to WAITMS 300.
    I zastanowić się ile portów ma być przełączanie i w jaki sposób.
    Jeśli będą znane założenia programu od początku, to uniknie się niepotrzebnych przeróbek i straty czasu.

    0
  • #13 06 Sie 2012 07:42
    SylwekK
    Poziom 29  

    marcin387 napisał:
    SylwekK napisał:
    Sugeruję zapoznać się z instrukcją "SHIFT zmienna, kierunek, ile bitów przesunąć"... 8-)
    Wystarczy zapoznanie się z podstawową instrukcją "IF ... End If", SHIFT zostawiłbym na późniejsze udoskonalanie programu, jak autor tematu opanuje podstawowe instrukcje bascoma.


    Jednak nie zgadzam się z takim stwierdzeniem. SHIFT jest instrukcją jak każda inna i bardzo ułatwia wiele spraw. Rzucając się na programowanie procesorów każdy powinien sobie zdawać sprawę , że od operacji na bitach nie ucieknie... 8-)

    EDIT:
    (program wykasowałem)

    0
  • #14 12 Sie 2012 07:43
    slavcio2012
    Poziom 15  

    Witam , z przełącznikami poradziłem sobie no prawie bo wyskoczył mi następny problem podam kod cześć by go lepiej przedstawić

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Mam dwa przyciski jeden do zmiany pasma- Band_pass a drugi do zmiany modulacji a problem mam następujący gdy na band_pass 7000 jest modulacja CW i przełączę bandę wyżej czyli tutaj na 10150 włącza mi się modulacja LSB , próbowałem na początku każdego Band_pass przypisać Modulacja=0 ale wtedy nie przełącza mi rodzaju modulacji , a efekt jaki chcę uzyskać to aby za każdym razem gdy przełączając Band_pass przełączała się domyślna modulacja niezależnie jaka była na poprzednim Band_pass.

    0