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



Teraz jest 15 lis 2024, o 18:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 8 lut 2021, o 14:56 
Offline
Użytkownik

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

Witajcie
Zrobiłem obsługę klawiszy , które po wciśnięciu mają tylko zmieniać wartość zmiennej
wskażnikowej z 1 ( klawisz wciśnięty ) na 0 ( klawisz zwolniony )

Te stany klawiszy mają być "odbierane " przez funkcję która będzie na podstawie stanów
klawiszy coś wykonywała

Lecz coś mi nie działa funkcja w ogóle nie reaguje na stan klawiszy
jak to ruszyć ?


Kod przedstawiam 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2021, o 15:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sie 2015
Posty: 205
Lokalizacja: UK
Pomógł: 10

W pierwszej sekcji if-ów zakładam, że chodzi o ustawienie konkretnego bitu w bajcie (wartość 2^n). Natomiast nie rozumiem dlaczego od razu zaraz po tym zerujesz tę samą zmienną (chyba, że brakuje else). W tej konfiguracji zmienna wynik zawsze powinna wynosić 0.

------------------------ [ Dodano po: 7 minutach ]

I gdzie dokładnie znajdują się te if-y? Skąd wywołujesz funkcję?

_________________
MMT Technologies



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2021, o 15:28 
Offline
Użytkownik

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

Dla ułatwienia przykładu wszystko w main.c

Klawisz ma wpisać do zmiennej 1 tylko gdy jest wciśnięty a gdy jest zwolniony ma być 0

funkcję wywołuję w ten sposób
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 wywołam ją w ten sposób to mam błąd
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: 8 lut 2021, o 15:51 
Offline
Użytkownik

Dołączył(a): 06 lut 2018
Posty: 58
Pomógł: 0

A próbowałeś wywołać funkcję z operatorami adresu poszczególnych argumentów funkcji? funkcja(&arg1, &arg2)?

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: 9 lut 2021, o 08:57 
Offline
Użytkownik

Dołączył(a): 29 gru 2013
Posty: 82
Pomógł: 3

Mógłbyś poprawić wcięcia na samej górze tego kodu, te związane z ustawianiem 0 bądź 1 danego wejścia....choć jak patrzę na ten kod to na ten moment jak dla mnie tam zawsze te wejścia mają wartość 0.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2021, o 14:26 
Offline
Użytkownik

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

Mam pytanie

Czy można odczytać wartość zmiennej zawartej w funkcji A
za pomocą wskażnika i przypisać tą wartość innej zmiennej
ale znajdującej się w funkcji B

Czy z wskażnikami jest tak samo jak z zmiennymi, że są widoczne
tylko w tej samej funkcji ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2021, o 15:01 
Offline
Użytkownik

Dołączył(a): 29 gru 2013
Posty: 82
Pomógł: 3

Wskaźnik to też zmienna tylko jej wartością jest adres, czyli pod tym względem jest tak samo :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2021, o 17:46 
Offline
Użytkownik

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

Teraz wszystko jasne dlaczego mi to nie działa
obsługa klawiszy jest w main.c
a funkcja do wykonywania czegoś na reakcję wciśnięcia klawisza
w osobnym pliku

Myślałem że dzięki wskażnikowi mogę przejmować zadaną wartość zmiennej
z każdego miejsca (pliku , funkcji ) w programie

To działa tylko w zakresie jednej funkcji :shock: :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2021, o 17:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sie 2015
Posty: 205
Lokalizacja: UK
Pomógł: 10

Wskaźnik
miki53 napisał(a):
Myślałem że dzięki wskażnikowi mogę przejmować zadaną wartość zmiennej
z każdego miejsca (pliku , funkcji ) w programie


Zmienna przekazana do funkcji jako argument poprzez wskaźnik może zostać zmieniona bezpośrednio w tej funkcji poprzez zmianę tego co znajduje się pod danym adresem. Bez użycia wskaźnika zmiana odbyłaby się na kopii tej zmiennej i należałoby ją zwrócić zmienioną w rezultacie, aby uzyskać ten sam efekt. Tzn. na przykład:

// Z wskaźnikiem
funkcja(&argument);

// Bez wskaźnika
argument = funkcja(argument)

_________________
MMT Technologies



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: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO