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

AVR BASCOM – brak reakcji na przerwanie INT0 po zwarciu PIND.2 do masy

Soohy_tm 03 Cze 2006 19:58 1712 13
REKLAMA
  • #1 2694283
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    Jak w temacie... zwieram pind.2 do masy i nic:( może powinienem przez jakiś opornik? oto kod w bascomie:
    Cytat:
    Enable Interrupts
    Config Pind.2 = Output
    Set Pind.2
    Config Int0 = Falling
    On Int0 Przerw
    Enable Int0

    Cls
    Display On
    Cls
    End

    Przerw:
    Lcd "OK"
    Return
  • REKLAMA
  • #2 2694308
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    a moze dodaj po prostu pętle do - loop ;)
  • REKLAMA
  • #3 2694315
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    dodalem ale niczego to nie zmienia. a wygląda tak:
    Cytat:
    Enable Interrupts
    Config Pind.2 = Output
    Set Pind.2
    Config Int0 = Falling
    On Int0 Przerw
    Enable Int0

    Cls
    Display On
    Cls
    Do
    Loop
    End

    Przerw:
    Lcd "OK"
    Return
  • REKLAMA
  • #4 2694320
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    bascom -> help ->index -> ON INTERRUPT masz tam gotowca ...
  • #5 2694339
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    A, że tak zapytam, to po co port PD2 (INT0) ustawiasz jako wyjście? Normalnie ustaw je jako wejście i w stanie wysokim, wtedy będzie miało wewnętrzny pull-up.
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #6 2694344
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Soohy_tm napisał:
    Jak w temacie... zwieram pind.2 do masy i nic:( może powinienem przez jakiś opornik? oto kod w bascomie:
    Enable Interrupts
    Config Pind.2 = Output
    Set Pind.2
    Config Int0 = Falling
    ...
    

    No bracie , jak Ty go ustawiasz jako wyjście ,stan wysoki i potem zwierasz do GND , to ciesz się tylko, że dym z niego nie poszedł.
    Miast Output daj Input - jeśli pin jeszcze żyje , zadziała :D

    Piotrek
  • #7 2694357
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    zumek - atmele odporne są ;) Mieć nadzieje, że ten akurat przeżył. :)
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #8 2694368
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    A nota katalogowa na to:
    "The External Interrupts are triggered by the INT0, INT1, and INT2 pins. Observe that, if
    enabled, the interrupts will trigger even if the INT0..2 pins are configured as outputs." ;)
  • #9 2694382
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    No tak, ale to się nazywa programowe wywołanie przerwania. A tu w programie nie widziałem nigdzie "Clr Pind.2" po uzbrojeniu przerwań. :) Stąd przypuszczenie o ręcznym "doziemianiu". :)
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • REKLAMA
  • #10 2694405
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    Ale dałem :P wstyd sie przyznać :P ale zmieniłem kod, napierw wywaliłem config... output... i nic to nie dalo, a pozniej sprobowalem na int1 i z konfiguracja pind.3 i bez nie działa:( macie może jeszcze jakieś pomysły.
    Jak sprawdzić czy piny jeszcze żyją? Dotykałem tylko na chwile, to może... :)
  • #11 2694420
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    A komunikację z wyświetlaczem masz na pewno dobrą? Może zamiast wypisywania "OK" najzwyczajniej każ mu zmienić w przerwaniu jakikolwiek inny pin, żeby zobaczyć, czy je zgłasza. Spróbuj też ustawić przerwanie na stan, a nie na zbocze. A jaki masz procek w ogóle?
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #12 2694644
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    Próbowałem ale nie "widzi" przerwania. Mam procka: AT90S2313. W poniedziałek kupie nowego procka to sprawdze.
  • #13 2694709
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    To na wszelki wypadek przyziemiaj mu porty do masy przez 220R. ;) Powodzenia!
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #14 2695039
    ShEvU_elektro
    Poziom 25  
    Posty: 995
    Pomógł: 26
    Ocena: 22
    Witam
    Zrób PULL UP rezystorkiem od 5-10kOhm

    Pozdrawiam

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczy braku reakcji na przerwanie INT0 w mikrokontrolerze AVR (AT90S2313) po zwarciu pinu PIND.2 do masy. Dyskusja wskazuje, że ustawienie pinu INT0 (PD2) jako wyjścia i zwieranie go do masy może uszkodzić układ lub uniemożliwić prawidłowe działanie przerwania. Zalecane jest ustawienie pinu jako wejścia z włączonym wewnętrznym rezystorem podciągającym (pull-up). Sugerowano również stosowanie rezystora zewnętrznego (np. 220 Ω lub 5-10 kΩ) między pinem a masą, aby zabezpieczyć układ. W kodzie Bascom należy poprawnie skonfigurować obsługę przerwań, korzystając z dostępnej dokumentacji i przykładów. Testowanie przerwań można ułatwić poprzez zmianę stanu innego pinu w procedurze obsługi przerwania. W przypadku podejrzenia uszkodzenia mikrokontrolera zaleca się wymianę na nowy egzemplarz.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA