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



Teraz jest 29 mar 2026, o 12:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 12 sty 2014, o 05:44 
Offline
Nowy

Dołączył(a): 24 paź 2012
Posty: 21
Pomógł: 0

Witam po dłuższej przerwie. Moja praca inż. to dla mnie zmora, bo programowanie idzie mi strasznie topornie. Szybko się zniechęcam, odkładam i zapominam. Robię już n-te podejście do tematu.
Skorzystałem z zielonej książki, która była mi bardzo pomocna. Chodzi o transmisje ASCII. Niestety nie mam czasu i nie mogę skorzystać z komend Pana Mirosława, więc postanowiłem napisać swoje. Doszedłem do miejsca, gdzie tokeny zapisuję do dwóch tablic, ale chcę teraz kontrolować, co jest wpisywane do tablicy i jeśli znajdzie się chociaż jeden nie pasująca znak to tablica jest odrzucana.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dane nadlatują z UARTA, a więc do tablicy cmd zapisany jest pierwszy token, a do tablicy params drugi. Chciałbym, żeby np program odrzucał dla tablicy params tokena w takiej postaci 1W3B, czyli żeby zawierał znaki od 0 do 9. Próbowałem wstawiać przedział,ale nie wiem, jak mam kontrolować to, co jest wrzucane do tablicy params.
Przed funkcją:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Myślałem, że będę porównywać to, co znajdzie się pod adresem wskaźnika, czyli znaki,które nadlatują...Wyskakuje mi ostrzeżenie, że próbuję porównać dwa różne typy.(porównanie między wskaznikiem, a typem int)
Obrazek
Z góry dziękuję za udzielone wsparcie.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2014, o 06:30 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

repro napisał(a):
Myślałem, że będę porównywać to, co znajdzie się pod adresem wskaźnika


No ale tu jakby brakuje troszkę koledze podstaw właśnie z niebieskiej książki :(

jeśli myślałeś o porównywaniu tego co znajdzie się POD adresem wskaźnika to chyba *wsk_cmd ? zgadza się ?

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2014, o 07:03 
Offline
Nowy

Dołączył(a): 24 paź 2012
Posty: 21
Pomógł: 0

Dziękuję za odpowiedź. Zapomniałem wspomnieć, że w taki sposób także próbowałem.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Niestety, ale dalej do tablicy params kopiuje mi każdy znak, a chciałbym, by przechodziły tylko cyfry. Odnoszę się do adresu używając nazwy wsk, a *wsk do zmiennej pod tym adresem. Nie rozumiem dlaczego, dalej przechodzą znaki z poza przedziału...
EDIT: funkcja strpbrk działała dość sprawnie, ale wystarczy poprzeplatać cyfry z innymi znakami i nie odfiltrowuje :(
ps. proszę wybaczyć mi błędy, od wczoraj dłubie przy książkach i w kodzie, by przypomnieć i nadrobić zaległości :|
EDIT2: nie kopiuje teraz każdego znaku, ale pokazują się "krzaczki" na ekranie. Wystarczy wpisać dwie pierwsze cyfry, a potem dowolne znaki i tablica przechodzi do wyświetlenia na ekran lcd...kombinuję dalej ;)
EDIT3: Doszedłem do wniosku,że w moim programie warunek sprawdza, tylko pierwszy znak tokenu, a potem kopiuje wszystko na ślepo. Jak zrobić, by sprawdzał wszystkie znaki, a nie tylko pierwszy, które będą kopiowane do tablicy params ?
EDIT4: Muszę każdy element po kolei sprawdzać, nie wiedziałem, jak to zrobić zaraz po funkcji strtok, więc wpakowałem to wszystko w tablicę, a następnie sprawdzałem element po elemencie, czy należy do przedziału...Najprostsze rozwiązanie
Rozgryzłem, jaki błąd robiłem...programik ładnie działał o 11:30 i potem pozmieniałem zmienne. Przestał działać nie mogłem dojść, co nie tak. Winna była funkcja, która po przejściu warunku wyświetlała całą tablicę. Najpierw przejechać całą tablicę, a na koniec wyświetlić :oops:



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO