[#1] Wait/Signal w połączeniu z przerwaniem
Piszę sobie program testujący kontroler I2C. Kontroler generuje przerwania sprzętowe (INT6).

Chciałbym aby kod wykonujący się w procedurze obsługi przerwania był możliwie jak najkrótszy. Więc pomyślałem, że użyje sygnałów, aby przekazać informację o tym, że główny program może kontynuować działanie. Jako że pochodzę z UNIXa, to pomyślałem, iż musi być to trywialne, bo tam sygnały właśnie takie są.

Jednak nigdzie nie znalazłem kompletnego przykładu jak definiować własne sygnały w Amigowym programie, a później ich używać...

Tutaj kod mojego programu:
https://gist.github.com/rkujawa/c929a71d0c644a44acb4

Wyobrażam to sobie tak, że w głównym kodzie programu wywołam funkcję Wait i poczekam aż nastąpi przerwanie, a w procedurze obsługi przerwania, po wykonaniu niezbędnego minimum (zmiany stanu sprzętowej linii przerwania na nieaktywny) wyślę Signal do głównego kodu programu.
[#2] Re: Wait/Signal w połączeniu z przerwaniem

@strim_, post #1

Hmm...
Do alokacji sygnałów używa się AllocSignal(). Zwraca numer sygnału lub -1. Następnie przy pomocy FindTask(NULL) szukasz struktury Task/Process swojego programu. Przekazujesz obie zwrócone wartości kodowi przerwania w polu Data i wywołujesz tam Signal() z wskaźnikiem na task i maską sygnałową. Przy wychodzeniu zwalniasz sygnał.
O to Ci chodziło?

Ostatnia aktualizacja: 08.01.2016 23:58:50 przez Hexmage960
[#3] Re: Wait/Signal w połączeniu z przerwaniem

@Hexmage960, post #2

Z dużym prawdopodobieństwem tak, szukając po AllocSignal udało mi się znaleźć już jakieś przykłady.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem