-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: "Irek.N." <t...@j...taki.jest.pl>
Newsgroups: pl.misc.elektronika
Subject: Zagwozdka w C Keil - wyjaśnienie.
Date: Tue, 12 Feb 2019 22:39:24 +0100
Organization: ATMAN - ATM S.A.
Lines: 53
Message-ID: <q3vee4$o74$1@node1.news.atman.pl>
References: <q3q59d$hp9$1@node1.news.atman.pl>
NNTP-Posting-Host: 77-253-172-130.adsl.inetia.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Trace: node1.news.atman.pl 1550007556 24804 77.253.172.130 (12 Feb 2019 21:39:16
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Tue, 12 Feb 2019 21:39:16 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
In-Reply-To: <q3q59d$hp9$1@node1.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:740960
[ ukryj nagłówki ]No więc znalazłem chwilę aby podjechać do klienta i popatrzeć dokładnie
w kod.
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ę.
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.
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. Zrobiłem jak Mateusz
podpowiedział - flaga w przerwaniu modyfikującym zmienną. Nie złapałem
żadnego błędnego odliczenia.
Tak więc przepraszam, ale wychodzi na to, że sensacji nie ma, kompilator
jednak dawał radę, a ja znowu się czegoś nauczyłem :)
Dzięki wszystkim za pomoc.
Miłego.
Irek.N.
* w późniejszych wersjach kodu (trochę inna wersja PLC) już była
poprawna definicja jako typ 16 bitowy, czyli kiedyś to zauważyłem,
poprawiłem i zapomniałem :(
Następne wpisy z tego wątku
- 12.02.19 23:02 stary grzyb
- 13.02.19 09:10 HF5BS
- 13.02.19 10:44 Piotr Gałka
- 13.02.19 11:28 J.F.
- 13.02.19 13:48 Janusz
- 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
Najnowsze wątki z tej grupy
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
Najnowsze wątki
- 2025-03-20 Grubość socketa AM4+procesor
- 2025-03-20 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-20 Warszawa => Senior Programmer C <=
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-20 Greenpeace została zobowiązana do zapłaty niemal 667 mln dolarów [USA,wyrok sądu]
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Brak ograniczeń dla chińskiego kapitału - wam nie do rządu, tylko na zmywak do chińskiej knajpy!!!
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?