ATNEL tech-forum
https://forum.atnel.pl/

Arduino Uno nie działa z bibliotekami soft_timers.h
https://forum.atnel.pl/topic23967.html
Strona 1 z 1

Autor:  spairo [ 12 paź 2021, o 14:05 ]
Tytuł:  Arduino Uno nie działa z bibliotekami soft_timers.h

- z yellow booka wziąłem pliki soft_timers.* z lekcji 08_Matrix_test m328P i dołączyłem do programu pod Arduino.
- jeśli w programie ustawię
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to mam błędy jak poniżej
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- jeśli zaś wstawie taka linię to jest dobrze i kompilacja pod Arduino się wykonuje bez błędu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- dlaczego tak się dzieje ?
- zmienić Arduino na jedyną słuszna platformę albo problemy z C lub z C++.

Autor:  mirekk36 [ 12 paź 2021, o 14:13 ]
Tytuł:  Re: Arduino Uno nie działa z bibliotekami soft_timers.h

Panie kochany a gdzieś ty widział żeby moje biblioteki miały dopisek że są pod andruino ? Żadna nie będzie działać pod andruino. Toż wszędzie piszę, że programowanie w C ! Co to ma wspólnego z andruinowym C++ ? No chyba, że może nawet nie wiedziałeś że w andruinie programuje się w pseudo C++ - no to już wiesz. ;)

Zatem zapomnij o tym, że gdziekolwiek znajdziesz cokolwiek napisanego przeze mnie dla andruino - nigdy - więc na przyszłość po prostu nie myl pojęć bo sam sobie namieszasz ;)

------------------------ [ Dodano po: 1 minucie ]

a inkludowanie plików *.c to już w ogóle porażka ;) Polecam ci jednak przesiąść się jak najszybciej na czysty język C - poważnie.

Autor:  fofex [ 12 paź 2021, o 16:29 ]
Tytuł:  Re: Arduino Uno nie działa z bibliotekami soft_timers.h

Cytuj:
- dlaczego tak się dzieje ?

Nazwy funkcji w C++ są poddawane specjalnym zabiegom (tzw. manglowaniu) czego w C nie ma więc konsolidator nie może funkcji znaleźć mimo że ona jest.
To nie znaczy, że nie można łączyć kodu C++ z C. Można. Należy zastosować dyrektywę extern. Na przykład w kodzie C++ otoczyć włączany plik nagłówkowy dyrektywą.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Lepszym sposobem jest wstawienie dyrektywy w pliku nagłówkowym. Wtedy włącza się plik zawsze tak samo, jak zwykle, niezależne czy w C++ czy C.Na poczatku pliku nagłówkowego wstawia się
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a na końcu pliku
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pomiędzy wstawia się prototypy, makra, definicje, jak zwykle.

Włączenie pliku źródłowego "zadziałało" ponieważ włączony kod został skompilowany tak jak kod C++ tj. z manglowaniem

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/