Witam wszystkich
Potrzebuje pomocy
Czy ktoś może wie, jak rozbudować kontroler PicoBlaze do obsługi wielu źródeł przerwania, tak by nie modyfikować struktury procesora?
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięPicoBlaze - przerwania
Moderatorzy:Jacek Bogusz, Moderatorzy
czysto sprzetowo to sie nie da, ale jeżeli dodać zewnetrzny "rejestr/rejestry" z bitami odpowiadajacymi poszczególnym żródłom przerwań a na wejście przerwania wprowadzic sumę tych sygnałów wtedy w procedurze przerwnia możesz odczytac ten rejestr i wykonać własciwą akcję w zależności od tego które przerwania sie zgłosiły. mozesz dodać automatyczne "zerowanie" rejestru zgłoszeń właśnie tym odczytem.
bis
bis
po chwili zastanowienia musze odwołać to co wcześniej stwierdziłem- "że sie nie da". To można zrobić nie ingerując w strukturę procesorka.
Realizacja polegała by na właściwości PicoBlaze, że w chwili obsługi przerwania PicoBlaze pobiera rozkaz ze stałego, zawsze tego samego, adresu. Jeżeli zrobimy "obserwator" szyny adresowej i odpowiedni multiplekser na szynie danych pamięci programu to w chwili kiedy procesor wystawia adres obsługi przerwania "obserwator" to wykryje i poda poprzez multiplekser słowo programu nie z pamięci programu ale z automatu zbierajacego informacje o aktualnych, aktywnych zródłach przerwań. To słowo to, najprościej, rozkaz skoku albo wywołania procedury, w którym 10 bitów adresowych jest zmienne w zależności od żródła przerwania. W ten sposób uzyskamy "wektorowość" obsługi przerwań, różne żródła przerwań będą obsługiwane przez inne procedury programu. Zrobienie takiego bloczka może byc bardzo pouczającym zadaniem. jak znajdę troche czsu to może poeksperymentuję.
bis
Realizacja polegała by na właściwości PicoBlaze, że w chwili obsługi przerwania PicoBlaze pobiera rozkaz ze stałego, zawsze tego samego, adresu. Jeżeli zrobimy "obserwator" szyny adresowej i odpowiedni multiplekser na szynie danych pamięci programu to w chwili kiedy procesor wystawia adres obsługi przerwania "obserwator" to wykryje i poda poprzez multiplekser słowo programu nie z pamięci programu ale z automatu zbierajacego informacje o aktualnych, aktywnych zródłach przerwań. To słowo to, najprościej, rozkaz skoku albo wywołania procedury, w którym 10 bitów adresowych jest zmienne w zależności od żródła przerwania. W ten sposób uzyskamy "wektorowość" obsługi przerwań, różne żródła przerwań będą obsługiwane przez inne procedury programu. Zrobienie takiego bloczka może byc bardzo pouczającym zadaniem. jak znajdę troche czsu to może poeksperymentuję.
bis
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości