-
Data: 2019-02-13 13:48:39
Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
Od: Janusz <j...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2019-02-13 o 11:28, J.F. pisze:
> Użytkownik "Irek.N." napisał w wiadomości grup
> dyskusyjnych:q3vee4$o74$...@n...news.atman.pl...
>> Na wstępie małe usprawiedliwienie - procedura była napisana na 8051 i
>> uruchomiona na jednym z pierwszych PLC jakie zrobiłem, w latach 90,
>> ale stosowana też później*. W tamtych czasach wydawało mi się, że
>> ogarniam podstawy C :)
>
>> W maszynie którą diagnozowałem definicja zmiennej DEL_STEP była o
>> zgrozo jako unsigned char. Nie zwróciłem na to uwagi, choć zauważyłem,
>> że sprawdzany jest tylko młodszy - przekazany - bajt zmiennej z którą
>> wywołano funkcję. Wygląda więc na to, że kompilator miał rację.
>
> uzyc niewlasciwy typ - zdarza sie.
> Ale nie spojrzec jaki to typ przy sprawdzaniu/szukaniu bledu ... czas na
> lecytyne :-)
>
>> Po zmianie definicji na unsigned int kompilator robi OLR na obu
>> połówkach zmiennej DEL_STEP a następnie sprawdza czy wynik operacji
>> jest zerowy. Bardzo ładne rozwiązanie moim zdaniem.
>
> Typowe.
>
>> Zrobiłem jeszcze jedną rzecz. Ponieważ jak zauważyliście, nie ma
>> gwarancji, że sprawdzenie 16 bitów będzie poprawne w przypadku gdy
>> przerwanie może je zmienić, podłączyłem oscyloskop, persystencję na
>> nieskończoną i obserwowałem czas generowany przez procedurę. Zdarzały
>> się błędnie odliczone interwały, ale nie za często.
>
> Czyli potrafi przerwanie trafic miedzy dwie instrukcje ?
> No w sumie - zawsze miedzy dwie trafia, tylko kwestia
> prawdopodobienstwa, kiedy trafi miedzy dwie istotne.
>
> A tych instrukcji przy ORL byc moze nawet wiecej.
>
>> Zrobiłem jak Mateusz podpowiedział - flaga w przerwaniu modyfikującym
>> zmienną. Nie złapałem żadnego błędnego odliczenia.
>
> Rozumiem, ze najpierw zmieniles typ zmiennej na int ?
>
> Ale nie bardzo rozumiem - przerwanie ustawia flage, modyfikuje zmienna,
> gasi flage ?
> na przetwarzanie w procesie głownym nie ma to znaczenia - sprawdzi
> sobie, ze flagi nie ma, zacznie czytac zmienna ... i tu przerwanie
> przychodzi.
> Co innego gdy uzywa zmiennej przerwanie wyzszego poziomu.
>
> Ja bym tam wylaczyl przerwania na czas sprawdzenia, to raptem kilka
> instrukcji, ale w pojedynczym while zaprogramowac to trudno.
>
> A swoja droga - czy Keil sam ich nie wylacza ? Dla zmiennych volatile
> powinien.
W avr studio nie wyłącza, i keil pewnie też,
w gcc jest do tego osobna sekcja, atomic block się nazywa
i w niej sie takie porównania robi.
--
Pozdr
Janusz
Następne wpisy z tego wątku
- 13.02.19 16:22 stary grzyb
- 13.02.19 21:13 Irek.N.
- 13.02.19 21:18 Irek.N.
- 13.02.19 21:21 Grzegorz Niemirowski
- 13.02.19 21:28 Irek.N.
- 13.02.19 22:03 Janusz
- 13.02.19 22:37 Queequeg
- 13.02.19 22:47 Queequeg
- 13.02.19 22:56 J.F.
- 13.02.19 22:59 Janusz
- 13.02.19 22:59 Queequeg
- 13.02.19 23:01 Queequeg
- 13.02.19 23:06 Queequeg
- 13.02.19 23:07 Grzegorz Niemirowski
- 14.02.19 00:59 HF5BS
Najnowsze wątki z tej grupy
- "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Pożyczki na bardzo wysoki procent