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.

Atmega 8 Bascom nie działają przyciski

polaczek132 22 Paź 2014 21:57 576 5
  • #1 22 Paź 2014 21:57
    polaczek132
    Poziom 8  

    Witam
    Napisałem program który ma po naciśnięciu przycisku dodać lub odjąć 50 do zmiennej a następnie wyświetlić to na LCD

    Problem jest taki ze po wgraniu programu bez naciskania na wyświetlaczu zmienna cały czas przeskakuje co 50 na LCD a jak nacisnę 2 przyciski naraz to się zatrzymuje
    jaki jest tego powód ?



    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    $regfile = "m8adef.DAT" 'deklaracja procesora, w tym wypadku Atmega8
    $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza)
    'Deklaracja portów od wyświetlacza LCD
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

    Config Lcd = 16 * 2


    Config Portd.2 = Output
    Config Portd.1 = Output 'Przekaźnik
    Config Pinb.0 = Input 'up
    Config Pind.7 = Input 'down
    Config Pind.6 = Input 'ok
    Reset Portd.2
    Reset Portd.1
    Set Pinb.0
    Set Pind.7
    Set Pind.6


    Up Alias Pinb.0
    Down Alias Pind.7
    Ok Alias Pind.6

    Dim Tz As Integer


    Tz = 100

    Cls
    Do

    If Up = 0 Then
    Waitms 30

    Tz = Tz + 50

    End If

    If Down = 0 Then
    Waitms 30
    Tz = Tz - 50
    End If

    Locate 1 , 1
    Lcd Tz

    Loop

    End

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0 5
  • #2 22 Paź 2014 22:05
    arturavs
    Poziom 37  

    A schemat? Nawet najlepszego programu nie da się przeanalizować bez schematu.

    0
  • #4 22 Paź 2014 22:24
    polaczek132
    Poziom 8  

    Gdzie mogę znaleźć na ten temat informację

    Moderowany przez dondu:

    Wykaż się umiejętnością wyszukiwania informacji z wykorzystaniem wyszukiwarki forum i/lub Google.

    Wystarczyło wpisać: basmom Set Pinb
    by otrzymać: http://elportal.pl/ea/prog001.html

    Na tym forum pomagamy, ale musisz wykazać się samemu.

    Dodałem Ci 100pkt, bo 0,88, a mogą się przydać do zadawania pytań :)

    0
  • #5 22 Paź 2014 22:44
    arturavs
    Poziom 37  

    Np. W helpie do Bascoma.

    0
  • #6 23 Paź 2014 07:26
    emarcus
    Poziom 34  

    arturavs napisał:
    Np. W helpie do Bascoma.


    Akurat help Bascoma nie precyzuje wyraźnie tego zagadnienia.

    Natomiat w dośc prosty sposób datasheet określa właściwości rejestrów związanych z portami processora (str.51)
    "Three I/O memory address locations are allocated for each port, one each for the Data Register - PORTx,
    Data Direction Register - DDRx,
    and the Port Input Pins - PINx.
    The Port Input Pins I/O location is read only,
    while the Data Register and the Data Direction Register are read/write."

    Znaczy to że stan logiczny pinów (wejśc ) nie może byc ustawiany/zmieniany z poziomu programu. Program tylko je czyta to co operator wprowadzi na wejściu. Inaczej nie miałoby sensu.
    Bascom natomiast określa sposób podciągania pinów do VCC.

    e marcus

    0