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

[atmega8][bascom] input/output - nie działa krańcówka

pi1er 26 Sty 2010 22:59 2267 8
REKLAMA
  • #1 7597994
    pi1er
    Poziom 9  
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    
    Config Portc.5 = Input
    Config Portc.4 = Output
    Config Portb.0 = Output
    
    Portb.0 = 1
    Portc.5 = 0
    Portc.4 = 0
    
    
    
    Do
      If Pinc.4 = 1 Then
        Portb.0 = 0
      Else
        Portb.1 = 1
      End If
    Loop
    
    
    End


    Portb.0 to dioda która ma gasnąć jeżeli naciśnie się przycisk (portc.4).
    Przycisk(krańcówka) podłączony jest z jednej strony do pinu 27 atmegi8, z drugiej strony do GND.
    Naciskam, zaciskam, wyciągam krańcówkę daję kabel zamiast niej i nic, dioda ciągle świeci...


    /Jeżeli temat bardziej pasuje do programowanie (chociaż pytam tutaj bo nie jestem pewien podłączenia wszystkiego do atmegi) to proszę o przeniesienie.
  • REKLAMA
  • Pomocny post
    #2 7598098
    pol1111
    Poziom 12  
    Jeśli podpinasz przycisk w ten sposób że wciśnięty zwiera Ci wyjście atmegi do masy to musisz podciągnąć wewnętrzny pull-up
    Tzn
    Portc.4 = 1 


    A po drugie, i chyba ważniejsze to:
    Do
      If Pinc.4 = 1 Then
        Portb.0 = 0
      Else
        Portb.0 = 1 //Portb.0 a nie portb.1
      End If
    Loop


    A po trzecie to jak ma działać portc.4 jako wejście jak ustawiasz go jakow wyjście

    Dobrze jest przeczytać kod jak nie działa. Te błędy to zwykłe literówki.
  • REKLAMA
  • Pomocny post
    #3 7598103
    marco47
    Poziom 41  
    Zastanów się dlaczego ten kod nie działa tak jak byś tego chciał .
    Zawsze stosuj taką konfigurację portów (tzn. taki typ zapisywania)
    Widzisz dokładnie jak masz ustawione poszczególne końcówki portów
    Cytat:
    Config Portb = &B11111111 'jako wyjścia
    Portb = &B00000000 'stan początkowy niski
    Config Portc = &B00111000 'jako wyjścia i wejścia
    Portc = &B00000000
    Config Portd = &B11111111
    Portd = &B00000000


    W pętli musisz zmienić wykrywanie stanu przycisku
  • REKLAMA
  • #4 7598178
    pi1er
    Poziom 9  
    Przepraszam ze bez polskich znakow, ale pisze z telefonu.

    Czyli krancowka z pinc.4 do GND widziana jest jako wejscie?
    Jak dalem na pinc.4 od razu stan wysoki to i tak jej zalaczenie nic nie dalo.
  • REKLAMA
  • #5 7598263
    rodzio
    Poziom 12  
    Przeczytałem 3razy ostatnią wypowiedź i ciągle nie rozumie o co chodzi:P

    Jak ustawisz jako Input to będzie wejściem
    Jak ustawisz jako Output to będzie wyjściem:P
  • #6 7598794
    pi1er
    Poziom 9  
    Jak podlaczam przycisk z jednej strony do atmegi, a z drugiej do GND (-) to przycisk programuje jako wejscie czy wyjscie?
    Znowu pisze z telefonu.
  • Pomocny post
    #7 7598829
    Balu
    Poziom 38  
    A jak myślisz?
    Będziesz sterował przyciskiem? Czy przycisk będzie sterowany portem?
    Pomyśl to nie boli...Że milion projektów używa przycisków to już inna bajka...ale wiem na forum szybciej.
  • Pomocny post
    #8 7598843
    marco47
    Poziom 41  
    Wejście (pin procka PORTB.0) programujesz jako wejście .

    Ustawiasz wysoki poziom tego wejścia , tak aby naciśnięcie przycisku (zwarcie do masy) wymusiło niski poziom na tym wejściu , wykrywany przez program jako
    If PINB.0 = 0 Then ' coś do wykonania (naciśnięty przycisk)
REKLAMA