eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › [Laik] C przerwanie działania funkcji.
Ilość wypowiedzi w tym wątku: 21

  • 1. Data: 2014-05-29 13:06:09
    Temat: [Laik] C przerwanie działania funkcji.
    Od: "Andrzej W." <a...@w...pl>

    Cześć,

    Możecie mi podpowiedzieć pod jakim hasłem albo gdzie powinienem szukać
    wskazówek jak zrealizować coś takiego.

    Schemacik:
    Punk A.
    Wywołanie funkcji F
    Punkt B.

    Opis:
    W A ustawiam sobie przerwanie od licznika.
    W B wyłączam to przerwanie.
    Jeśli program dotrze z A do B zanim przerwanie zostanie wywołane nic się
    nie dzieje, jest normalnie wykonywany dalej.
    Jeśli funkcja F się będzie ociągać i przerwanie zostanie wywołane to
    program ma zacząć wykonywanie w punkcie B a zasoby zawłaszczone przez F
    powinny zostać zwolnione.
    Jaki warunki powinna spełniać funkcja F by dało się ją bezboleśnie zabić
    i posprzątać?
    Całość działa na mikrokontrolerze bez żadnego systemu.

    --
    AWa.


  • 2. Data: 2014-05-29 13:54:29
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: firr <p...@g...com>

    W dniu czwartek, 29 maja 2014 13:06:09 UTC+2 użytkownik Andrzej W. napisał:
    > Cześć,
    >
    >
    >
    > Możecie mi podpowiedzieć pod jakim hasłem albo gdzie powinienem szukać
    >
    > wskazówek jak zrealizować coś takiego.
    >
    >
    >
    > Schemacik:
    >
    > Punk A.
    >
    > Wywołanie funkcji F
    >
    > Punkt B.
    >
    >
    >
    > Opis:
    >
    > W A ustawiam sobie przerwanie od licznika.
    >
    > W B wyłączam to przerwanie.
    >
    > Jeśli program dotrze z A do B zanim przerwanie zostanie wywołane nic się
    >
    > nie dzieje, jest normalnie wykonywany dalej.
    >
    > Jeśli funkcja F się będzie ociągać i przerwanie zostanie wywołane to
    >
    > program ma zacząć wykonywanie w punkcie B a zasoby zawłaszczone przez F
    >
    > powinny zostać zwolnione.
    >
    > Jaki warunki powinna spełniać funkcja F by dało się ją bezboleśnie zabić
    >
    > i posprzątać?
    >
    > Całość działa na mikrokontrolerze bez żadnego systemu.
    >
    >
    a mozesz powiedziec jak wlacza sie przerwanie w c ?
    nigdy nie pisalem w czyms takim jak 'c z przerwaniami '

    (przerwania potencjalnie super sprawa, czekawe czy jeszcze wiecej takich
    fundamentalnych technik w hardware nie mozna by zaangazowac)

    co do odpowiedzi to wydaje mi sie ze przerwanie nalzey wlaczyc w jakims ograniczonym
    przedziale
    tak zeby gdy sie wywola mozna bylo latwo wnioskowac
    (lub sprawdzic) o aktualnym stanie programu - masz
    wtedy info co procesor zrobil, na przyklad przesunal
    stos wiec naprawiasz to i jedziesz dalej - programowanie jak kazde inne - tak to
    widze


  • 3. Data: 2014-05-29 14:16:54
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: "Andrzej W." <a...@w...pl>

    W dniu 2014-05-29 13:54, firr pisze:
    > a mozesz powiedziec jak wlacza sie przerwanie w c ?
    > nigdy nie pisalem w czyms takim jak 'c z przerwaniami '

    Zastrzegłem w temacie, że programistą to nie jestem, czasem napiszę coś
    na sprzęt którego używam, więc złośliwości można sobie darować.
    Projekt to zawsze "coś" połączenie sprzętu i oprogramowania i jeśli się
    na to patrzy w ten sposób to można aktywować przerwanie z poziomu C.

    --
    AWa.


  • 4. Data: 2014-05-29 14:19:21
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: g...@s...invalid (Adam Wysocki)

    Andrzej W. <a...@w...pl> wrote:

    > W A ustawiam sobie przerwanie od licznika.
    > W B wyłączam to przerwanie.
    > Jeśli program dotrze z A do B zanim przerwanie zostanie wywołane nic się
    > nie dzieje, jest normalnie wykonywany dalej.
    > Jeśli funkcja F się będzie ociągać i przerwanie zostanie wywołane to
    > program ma zacząć wykonywanie w punkcie B a zasoby zawłaszczone przez F
    > powinny zostać zwolnione.

    Czyli chcesz zrobić watchdoga na funkcję F(), tak? Jest w niej jakaś
    pętla, która wykonuje się cyklicznie i możesz w niej sprawdzić stan
    flagi (koniecznie volatile), ustawionej w przerwaniu?

    > Jaki warunki powinna spełniać funkcja F by dało się ją bezboleśnie
    > zabić i posprzątać?

    Nie znam sposobu na czyste "zabicie" funkcji, są sztuczki z setjmp
    i longjmp, ale to brudne sztuczki... jedyne czyste sposoby, jakie
    znam, to samobójstwo funkcji - niech ona sama się skończy i posprząta.

    Chyba że to nie C, a C++, w którym masz wyjątki, a zwalnianiem zasobów
    zajmą się destruktory po wyjściu z zasięgu. Ale C++ to zupełnie inna
    bajka.

    --
    SELECT finger FROM hand WHERE id = 3;
    http://www.chmurka.net/


  • 5. Data: 2014-05-29 14:21:02
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: g...@s...invalid (Adam Wysocki)

    Andrzej W. <a...@w...pl> wrote:

    > Zastrzegłem w temacie, że programistą to nie jestem, czasem napiszę coś
    > na sprzęt którego używam, więc złośliwości można sobie darować.

    Nie przejmuj się trollem.

    --
    SELECT finger FROM hand WHERE id = 3;
    http://www.chmurka.net/


  • 6. Data: 2014-05-29 14:38:08
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: firr <p...@g...com>

    W dniu czwartek, 29 maja 2014 14:16:54 UTC+2 użytkownik Andrzej W. napisał:
    > W dniu 2014-05-29 13:54, firr pisze:
    >
    > > a mozesz powiedziec jak wlacza sie przerwanie w c ?
    >
    > > nigdy nie pisalem w czyms takim jak 'c z przerwaniami '
    >
    >
    >
    > Zastrzeg�em w temacie, �e programist� to nie jestem, czasem napisz� co�
    >
    > na sprz�t kt�rego u�ywam, wi�c z�o�liwo�ci mo�na sobie darowa�.
    >
    > Projekt to zawsze "co�" po��czenie sprz�tu i oprogramowania i je�li si�

    >
    > na to patrzy w ten spos�b to mo�na aktywowa� przerwanie z poziomu C.
    >

    jakie zlosliwosci : O, po prostu ciekaw jestem jak wyglada programowanie w c z
    przerwaniami, nie mozesz po prostu napisac - najlepiej podaj konkretny kod


  • 7. Data: 2014-05-29 16:32:14
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: firr <p...@g...com>

    go on


  • 8. Data: 2014-05-29 20:43:26
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: "Andrzej W." <awa_wp@na_wp_oczywiscie.pl>

    W dniu 2014-05-29 14:19, Adam Wysocki pisze:
    > Czyli chcesz zrobić watchdoga na funkcję F(), tak? Jest w niej jakaś
    > pętla, która wykonuje się cyklicznie i możesz w niej sprawdzić stan
    > flagi (koniecznie volatile), ustawionej w przerwaniu?

    Tak, chciałbym takiego watchdoga na funkcję. Na cały systemie mam
    sprzętowego, ale zabijanie całego systemu jest zauważalne dla użytkownika.
    Niestety wszystkie funkcje które chcę nadzorować są funkcjami obsługi
    sprzętu, a sprzęt czasem lubi robić sobie jaja.
    Plan był taki, że jeśli ląduje w funkcji obsługi przerwania, to
    sprawdzam która funkcja się zawiesiła, robię restart sprzętu
    wykorzystywanego przez tę funkcję, zeruje jej zmienne i skaczę do punktu
    B i program kręci się dalej.
    Niestety to wszystko ma się dziać poza kodem funkcji, ma to być
    zabezpieczenie na wypadek nieprzewidzianego, nieudokumentowanego
    zachowania sprzętu prowadzącego do pozostania funkcji np. w
    nieskończonej pętli.
    Można, po restarcie sprzętu i inicjalizacji zmiennych zrobić jakiś
    chamski skok do etykiety B z poziomu asemblera, ale co z rejestrami
    stosem itd.

    --
    AWa.


  • 9. Data: 2014-05-30 01:37:49
    Temat: Re: [Laik] C przerwanie działania funkcji.
    Od: bartekltg <b...@g...com>

    On 29.05.2014 14:19, Adam Wysocki wrote:
    > Chyba że to nie C, a C++, w którym masz wyjątki, a zwalnianiem zasobów
    > zajmą się destruktory po wyjściu z zasięgu. Ale C++ to zupełnie inna
    > bajka.

    Wyjątek rzucony w przerwaniu po wyjściu z niego propaguje się
    od miejsca, gdzie funkcja została przerwana?
    Ostatni raz przerwanie widziałem bawiąc się 16 w bitowym
    assemblerze, więc pytanie na poważnie.

    pzdr
    bartekltg


  • 10. Data: 2014-05-30 04:24:25
    Temat: Re: [Laik] C przerwanie dzia?ania funkcji.
    Od: A.L. <a...@a...com>

    On Thu, 29 May 2014 13:06:09 +0200, "Andrzej W."
    <a...@w...pl> wrote:

    >Cześć,
    >
    >Możecie mi podpowiedzieć pod jakim hasłem albo gdzie powinienem szukać
    >wskazówek jak zrealizować coś takiego.
    >
    >Schemacik:
    >Punk A.
    >Wywołanie funkcji F
    >Punkt B.
    >
    >Opis:
    >W A ustawiam sobie przerwanie od licznika.
    >W B wyłączam to przerwanie.
    >Jeśli program dotrze z A do B zanim przerwanie zostanie wywołane nic się
    >nie dzieje, jest normalnie wykonywany dalej.
    >Jeśli funkcja F się będzie ociągać i przerwanie zostanie wywołane to

    Co to znaczy "pzrerwanie zostanei wywolane"?

    A.L.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: