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.

Attiny switch-e i diody bascom.

henryxxl 19 Sty 2011 16:36 1017 4
  • #1 19 Sty 2011 16:36
    henryxxl
    Poziom 26  

    Witam.
    Próbuje napisać program na attiny2313 a polegać będzie on na tym że będą dwie diody podłączone do dowolnych wyprowadzeń attiny i dwa switche jeżeli switch1 zostanie wciśnięty to dioda1 zapali się a jak switch2 zostanie wciśnięty to dioda1 zgaśnie a dioda2 się zapali i ponownie jak switch1 zostanie wciśnięty to dioda2 gaśnie a dioda1 zapala się.
    Może mi ktoś pomóc jak to napisać bo próbuję i mi nie wychodzi.

    0 4
  • #2 19 Sty 2011 16:58
    xury
    Poziom 39  

    Pokaż co napisałeś, bo jak do tej port to wiemy, że próbowałeś, ale nie wiemy czy w asemblerze, C czy Bascomie ?

    0
  • #3 19 Sty 2011 17:11
    henryxxl
    Poziom 26  

    Oto kod w bascom.

    Code:
                       $regfile = "attiny2313.dat"
    
        $crystal = 4000000

    Config Portb.2 = Output
    Led_1 Alias Portb.2
    Config Portb.3 = Output
    Led_2 Alias Portb.3




    Config Portb = &B11111111
    Portb = &B11111111
    Config Portd = &B1111100
    Portd = &B1111111
    Do
    If Pind.0 = 0 Then
    Led_1 = 0
    Led_2 = 1
    If Pind.1 = 0 Then
    Led_1 = 1
    Led_2 = 0

    Loop
    End                                                         '
    [/tex]

    0
  • #4 19 Sty 2011 17:52
    piotrva
    Moderator na urlopie...

    1. źle konfiguracja pinów, poprawnie powinno być

    Code:

    Config PINx.n = Input/Output

    2. po co potem drugi raz konfigurujesz za pomocom
    Code:
    Config PORTn = &Bxxxxxxxx
    ?? niepotrzebne to jest.
    3. Włączaj podciągania tylko na potrzebnych pinach, tzn:
    Code:

    Set PORTD.0
    Set PORTD.1

    4. wszystko fajnie w pętli głównej, ale źle konstruujesz ify, ogólna składania wygląda tak:
    Code:

    'dla pojedynczej instrukcji:
    if [warunek] then [instrukcja]
    'dla wielu instrukcji:
    if [warunek] then
    [instrukcja1]
    [instrukcja2]
    ...
    [instrukcjaN]
    End If
    'dla wielu instrukcji z klauzurą else (jeśli nie to):
    if [warunek] then
    [instrukcja1]
    [instrukcja2]
    ...
    [instrukcjaN]
    Else
    [instrukcja1]
    [instrukcja2]
    ...
    [instrukcjaN]
    End If

    reszta jest ok
    spróbuj poprawić kod według tych wytycznych, mam nadzieję, ze wytłumaczyłem wszystko zrozumiale :D
    i polecam jakiś kurs bascoma od podstaw :D

    0