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]Konfiguracja przerwań i reset procesora

baq1 15 Gru 2011 18:55 1858 3
REKLAMA
  • #1 10263641
    baq1
    Poziom 13  
    witam

    Mam pewien problem ze skonfigurowaniem przerwania w Atmega8.
    Program ma wysyłać dane przez UART w zależności od stanu na końcówce PD2 ( INT0 ). Jeżeli ma stan niski to sprawdza jedną zmienną i w zależności od niej wysyła dane. Jeżeli ma stan wysoki to tak samo. Ale tylko jednorazowa zmiana powinna powodować wysłanie danych.

    Wymyśliłem, że obsłużę to przez przerwanie generowane dowolną zmianą stanu, ale w dokumentacji bascoma doczytałem, że w atmega8 rising/falling/change nie działa i przerwanie może być tylko wyzwalane stanem niskim.

    Co innego natomiast mówi dokumentacja procesora ( Atmega8A-PU ). Ustawienia wyzwalania przerwania INT0 to bit 0 i bit 1 rejestru MCUCR.

    No więc zamiast pisać config int0 = change co i tak nie działa, napisałem
    Kod: text
    Zaloguj się, aby zobaczyć kod



    Działa to tak, że zmiana stanu na tej końcówce resetuje mi procesor.
    PD2 podciągnięty do VCC

    Potrafi ktoś pomóc w takiej sytuacji ?[/code]
  • REKLAMA
  • #2 10263791
    Jaca
    Poziom 31  
    1. Ustaw pin INT0 jako WEJŚCIE z Pull-UP'em !
    2. Gdzie to wyczytałeś, że INT obsługuje jedynie LOW LEVEL ?
  • REKLAMA
  • #3 10263830
    Fredy
    Poziom 27  
    baq1 napisał:


    Działa to tak, że zmiana stanu na tej końcówce resetuje mi procesor.
    PD2 podciągnięty do VCC
    [/code]


    a jak ma to działać , skoro nie masz procedury obsługi przerwania? Program się kasuje i to jest naturalne.
  • #4 10935640
    baq1
    Poziom 13  
    Cytat:
    2. Gdzie to wyczytałeś, że INT obsługuje jedynie LOW LEVEL ?


    W helpie do Bascoma.

    Cytat:
    a jak ma to działać , skoro nie masz procedury obsługi przerwania? Program się kasuje i to jest naturalne.


    Wszystkie procedury były, tylko wkleiłem fragment który miał znaczenie, reszta oczywiście w pliku źródłowym była obecna.

    Problem już dawno rozwiązałem, ale i tak nie zdołałem uzyskać przerwania generowanego zmianą stanu w Bascomie. Przerzuciłem się na C :wink: .

    Temat zamykam.
REKLAMA