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



Teraz jest 23 lut 2025, o 09:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
 Tytuł: Pętla While
PostNapisane: 10 sie 2013, o 16:23 
Offline
Użytkownik

Dołączył(a): 10 sie 2013
Posty: 66
Lokalizacja: Szczecin
Pomógł: 7

Witam.

Właśnie zaczynam przygodę z C w oparciu o książki Mirka. Działanie świeżo poznanych intrukcji sprawdzam w symulatorze AVR Studio4. Poniższy kod działa zgodnie z moim założeniem - gdy w warunku pętli while dam x>1..9 to instrukcja inkrementacji jest wykonywana, gdy warunek dam x>0 to inkrementacja nie jest wykonywana (a przeciez x jest wieksze od 0). Co robię źle lub też czego nie rozumiem?

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

_________________
Build:succeeded or up-to-date, 0 failed, 0 skipped



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2013, o 16:32 
Online
Moderator
Avatar użytkownika

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

ja bym proponował najpierw napisać co w ogóle miałeś na myśli ? co chciałeś zrobić taką pętlą ? do czego ci ona ?

Poza tym takie puste pętle NIC nie robiące są w ogóle wycinane przez optymalizator ...

czy nie lepiej poćwiczyć to na żywym procku zamiast na symulatorze ? podłączyć sobie diodę LED albo diody LED i sprawdzać ?

tak w ogóle to taka pętla nie ma sensu nawet dydaktycznego ...

dlatego spróbuj procek prawdziwy a nie symulator, no ale jak nie masz to niech będzie koci symulator ale rób kod tak jakby miał być na procku i niech coś robi a nie takie tam x++. W tym przypadku założeniem jest aby wykonała się 10 razy i efekt inkrementacji możesz zobaczyć np na diodach LED podłączonych do PORTA

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


w symulatorze możesz ew sobie wywalić tego delay'a

_________________
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: 10 sie 2013, o 16:43 
Offline
Użytkownik

Dołączył(a): 10 sie 2013
Posty: 66
Lokalizacja: Szczecin
Pomógł: 7

Pętla w założeniu miała nic nie robić, a właściwie miała - zwiekszac zmienną x, a ja postanowiłem poobserwować rejestry czy działa - ot taka ciekawosc początkującego. Jednak nadal nie rozumiem dlaczego przy warunku x>0 instrukcje nie są wykonywane (wina symulatora?). Nie chciałbym zostawiać tematów niezrozumiałych i przejść do dalszego etapu nauki.

_________________
Build:succeeded or up-to-date, 0 failed, 0 skipped



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2013, o 16:47 
Online
Moderator
Avatar użytkownika

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

daro2020 napisał(a):
(wina symulatora?)


Nie zaczynaj od szukania winy w symulatorach, kompilatorach, procesorach itp ... wina jest zawsze w człowieku bo jeszcze nie do końca wszystko rozumie

ja cię naprowadzam na poprawne myślenie bo w ogóle jeszcze nie wiesz co to optymalizacja i pokazałem ci jak sobie zbudować taką pętlę do testów ... a ty się upierasz nad swoją wersją - gdzie po raz kolejny powtórzę że optymalizator ma prawo ją w ogóle nawet wywalić z kodu ....

_________________
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: 11 sie 2013, o 12:55 
Offline
Użytkownik

Dołączył(a): 10 sie 2013
Posty: 66
Lokalizacja: Szczecin
Pomógł: 7

Może faktycznie lepiej będzie odłożyć pytania związane z pracą kompilatora i optymalizacji kodu na później. Pewne przyzwyczajenia mam z asm gdzie to, co napisze jest w kodzie. Dzięki za podpowiedzi.

_________________
Build:succeeded or up-to-date, 0 failed, 0 skipped



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2013, o 14:20 
Online
Moderator
Avatar użytkownika

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

daro2020 napisał(a):
Pewne przyzwyczajenia mam z asm gdzie to, co napisze jest w kodzie.


A no widzisz trzeba było tak od razu .... bardzo często osoby wcześniej piszące w Bascomie - chcą od razu widzieć to po bascomowemu, natomiast te w asemblerze po asemblerowemu - że tak powiem ;)

Nie przejmuj się - bo w sumie jak znasz asembler to masz i tak sporo do przodu - ale jednak w C trzeba trochę przestawić myślenie. Generalnie posłuchaj - po kompilacji w Eclipse masz plik *.lss to jest właśnie czysty podgląd w asemblerze tego co zmajstrowałeś - więc powinno być ci to już nie obce.

Po drugie jakbyś chciał mieć bez optymalizacji to możesz ją wyłączyć, bo domyślnie jest ustawiona na -Os. A ty byś musiał ustawić na -O0 tyle że jak znam życie to potem nie będziesz chciał tego wyłączać i zaczną się generować setki innych pytań, które na tym etapie znowu będą trochę nieistotne ... bo jak sam mówisz - na lepsze zapoznanie się z optymalizacją i wszelkimi takimi kwestiami i tak przyjdzie czas.

A teraz warto jak najszybciej ruszyć , odpalić coś, zamrugać diodą , poczuć - w twoim przypadku podejrzeć sobie nawet wygenerowany kod asemblera i już ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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