Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 kwi 2024, o 15:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 28 gru 2018, o 18:43 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 408
Lokalizacja: Puck
Pomógł: 7

witam kolegów

Chciałbym wyłączyć z kompilacji tryb wyliczeniowy enum i przełączyć go na inny w pliku nagłówkowym mk_pcf8583.h
ale za pomocą warunku if z pliku msgeq7.c

plik nagłówkowy mk_pcf8583.h

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



ma być przełączany z poziomu msgeq7.c z miejsca oznaczonego komentarzem

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


Może macie jakiś inny pomysł jak przełączać enum z oznaczonego miejsca



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2018, o 18:31 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 408
Lokalizacja: Puck
Pomógł: 7

Może zadam pytanie inaczej bo wielu ogląda a odpowiedzi ani jednej

Czy jeśli w tym warunku zmieni mi się wartość #define_SYNCHRO_WIFI z 0 na 1
a jest on w pliku msgeq7.c i do tego w funkcji > static void equ_timer0_tick (TSTIMER * tmr ) {
to nastąpi zmiana również a warunku w pliku nagłówkowym mk_pcf8583.h w miejscu podanym w niższym kodzie
=============================================================================================
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy w tym miejscu dojdzie do zmiany w warunku if pliku nagłówkowego mk_pcf8583.h ?

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2018, o 18:57 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

miki53 napisał(a):
Może zadam pytanie inaczej bo wielu ogląda a odpowiedzi ani jednej

Twoje pytanie wskazuje po prostu, że nie rozumiesz, jak działają dyrektywy preprocesora. Nikt nie odpowiada, bo to sporo tłumaczenia jest...
W największym skrócie - nie da się tego zrobić tak, jak próbujesz. Dyrektywy są analizowane i wykonywane podczas budowania programu. Nie mogą być zmieniane przez skompilowany, działający już program (choćby dlatego, że zmiana jakiejkolwiek dyrektywy wymaga ponownej kompilacji). Decyzję o tym, jaką wartość przypiszesz do SYNCH_WIFI (0 lub 1) musisz podjąć przed kompilacją.

Nie znam kodu z książki, ale myślę, że rozwiązaniem byłoby po prostu dodanie do enum trzeciej opcji w stylu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i modyfikacja kodu w pliku mk_pcf8583.c w taki sposób, by obsługiwał tę trzecią opcję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2018, o 20:36 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 408
Lokalizacja: Puck
Pomógł: 7

Dzięki andrews

O tym nie pomyślałem
masz rację że działający program nie może przejść ponownej kompilacji

Wybaczcie że kombinuje jak koń pod górą

Ale chciałbym móc pilotem przełączać pracę zegarka na ustawianie czasu ręcznie i za pomocą modułu wifi
tym bardziej że siedzę nad tym chyba 2 miechy jak nie więcej

A jak hmm czy tak w ogóle się da, zrobić tak aby po resecie przestawił mi się na drugą wersję enum ?
może macie jakieś pomysły jak przełączać to ustawianie zegara ręczne na automatyczne z wifi
praktycznie tam wszystko działa jak się przepisuje wartości w enum i ponownie skompiluje
ale jak to zrobić za pomocą pilota

Może przed resetem procka zapisać to do jakieś pamięci stałej a po resecie aby program z niej pobrał
nowe ustawienie

No nie wiem jak to rozwiązać aż zwoje się jarają ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO