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



Teraz jest 11 sty 2025, o 00:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 12 wrz 2013, o 15:24 
Offline
Użytkownik

Dołączył(a): 05 wrz 2013
Posty: 26
Zbananowany użytkownik

Pomógł: 0

Witam,

Chciałbym porównać zmienną którą inkrementuję.
Czy ten zapis jest poprawny:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 16:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lut 2013
Posty: 84
Pomógł: 8

O ile masz świadomość że inkrementacja nastąpi dopiero po porównaniu to ten zapis jest poprawny.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 17:39 
Offline
Użytkownik

Dołączył(a): 05 wrz 2013
Posty: 26
Zbananowany użytkownik

Pomógł: 0

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

Inkrementacja, do wyzerowania zmiennej, potem od nowa, itd.
IF będzie spełnione tylko dla zera. Oczywiście dla zmiennej unsigned.

PS:
Jak zrozumiałem, to cały zapis dla IF razem z "!" musi się znaleźć w nawiasie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 17:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lut 2013
Posty: 84
Pomógł: 8

Dokładnie tak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 18:31 
Offline
Użytkownik

Dołączył(a): 05 wrz 2013
Posty: 26
Zbananowany użytkownik

Pomógł: 0

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

Czy to oznaczałoby wykonanie IF-a ciągłe oprócz 15 ?
Czy nawiasologia jest poprawna ?

PS:
Przepraszam a te pytania, ale próbuje zrozumieć zapis w tym języku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 20:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lut 2013
Posty: 84
Pomógł: 8

Tak oczywiście :)
Napisz sobie prosty programik typu:

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


podłącz jakiś wyświetlacz i testuj na nim różne kombinacje :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 11:12 
Offline
Użytkownik

Dołączył(a): 05 wrz 2013
Posty: 26
Zbananowany użytkownik

Pomógł: 0

Po długich bojach z VMLAB-em, zacząłem naukę na symulatorze.

Pojawił się dziwny objaw. Jeśli uruchomiam VMLAB z poniższym programem to bit przeskakuje w lewo, ale po dojściu do 0b00000100 przeskakuje na 0b00010000, pomijając 0b00001000.

O co chodzi ?

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: 13 wrz 2013, o 11:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

0b100 to jest 4. Operacja x<<y przesuwa x o y pozycji w stronę MSB, a opuszczone bity ze strony LSB wypełnia zerami. Tak więc 1<<4 będzie polegało na dopisaniu z prawej strony "1" czterech "0", czyli uzyskasz 0b10000.

Jeżeli chcesz przesuwać bity w rejestrze (albo mnożyć rejestr przez 2) to zapisuje się to w ten sposób:
PORTB<<=1;
PORTB*=2;


Autor postu otrzymał pochwałę

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 12:57 
Offline
Użytkownik

Dołączył(a): 05 wrz 2013
Posty: 26
Zbananowany użytkownik

Pomógł: 0

No tak, rzeczywiście :)

Przy okazji zapytam, dlaczego w VMLAB-ie podczas symulacji mam czerwone wykrzykniki w liniach:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

czyżby to chodziło o niekompatybilność ?



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 6 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