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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 20 cze 2025, o 07:56


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
    Autor Wiadomość
    PostNapisane: 30 kwi 2012, o 22:28 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Witam, buduję miniaturkę SolarTracker'a i napotkałem na następujący problem, postanowiłem wysyłać dane tzn. wartość napięcia na 4 czujnikach i na samym fotoogniwie do PC za pomocą UARTa. Jako że zawsze bylem dość słaby w wszelkiego rodzaju transmisjach, posłużyłem się biblioteką z książki. Efekt jest dość mizerny ponieważ w terminalu otrzymuje coś takiego:

    Obrazek

    I tu pytanie do kogoś z forum, czy może być spowodowane powtarzanie znaków końca linii na jej początku? Poniżej załączam plik main.c:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 30 kwi 2012, o 23:00 
    Offline
    Moderator
    Avatar użytkownika

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

    Wiesz co? taka podpowiedź na początku, umieszczaj kod w znacznikach [ syntax = c ] - tak jak poprawiłem w twoim poście (wyedytuj go i zobacz ok? zamiast w znacznikach [ code )

    A teraz zobacz na żywca skopiowałem twój kod wysyłający dane do UART, korzystam z tej samej bibliotek z DVD z książki co ty, i zobacz jak ładnie lecą dane do terminala - żadnego poszatkowania jak u ciebie

    Obrazek

    1. więc albo masz coś źle poustawiane w tym swoim programie terminala

    2. albo użyj mojego ulubionego i prostego jak drut terminala PUTTY i sprawdź czy dobrze będzie się wyświetlać bo musi się dobrze wyświetlać.

    Więc to nie jest wina twojego programu ;)

    (oczywiście ja tylko jak widać na obrazku podstawiłem sztucznie jakieś stałe liczbowe zamiast danych ze zmiennych tablicowych jak u ciebie - no ale to nie ma żadnego znaczenia)

    _________________
    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: 30 kwi 2012, o 23:16 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Będę pamiętam o tym syntaxe ;) Pisałem już w tej sprawie ja innym forum dostałem taka samą odpowiedz jak od Ciebie, ale...
    Nie chce mi się wierzyć ze to terminal. Dlaczego? bo Sprawdziłem Br@y Terminal w dwóch wersjach, HyperTerminal, RealTermi i PuTTy w dodatku na dwóch systemach (Xp x86 i Win7 x64) i na 3 komputerach, Efekt otrzymuje ten sam. Dlatego założyłem ze to mój program. Testowałem dokładnie ten sam program na 2płytkach PCB, jednej wykonanej prze zemnie a druga to był zestaw uruchomiwszy efekt też ten sam. Nie wiem czy to ważne ale przerobiłem (może to za wielkie słowo) jedna funkcje z biblioteki mianowicie w funkcji uart_puts(); usunąłem ostatnią linijkę czyli uart_putc('\n');

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


    P.S.
    Dodam jeszcze ze dzieje się to samo jeśli wysyłam jednego długiego stringa



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 kwi 2012, o 23:51 
    Offline
    Moderator
    Avatar użytkownika

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

    No posłuchaj - ale ja myślałem że mamy te same biblioteki ;) a widzę że ty w swoich kombinowałeś ;)

    Zresztą nie wiem o jakiej ty linijce piszesz - że niby usunąłeś

    uart_putc('\n');

    a skąd to miało się wziąć w tej bibliotece do uart ode mnie na DVD ??? przecież ja tego nie mam ...

    Poza tym - trochę mnie dziwi twój upór że to z programem a w zasadzie z tą biblioteką jest rzekomo coś nie tak - skoro pokazałem ci jak to u mnie działa na terminalu - to znaczy, że co ? że ja spreparowałem i dorysowałem sobie takie wyniki w terminalu ? ;) a program tego nie zrobił ???? bo coś nie rozumiem

    Dlatego proponuję ci - spakuj do ZIP'a cały ten swój folder projektu łącznie z tymi twoimi niby oryginalnymi ode mnie bibliotekami - i wyślij mi go na maila: biuro (malpa) atnel kropka pl

    a ja sprawdzę co tam namieszałeś ew w tych bibliotekach - chociaż z drugiej strony to ciekawi mnie dlaczego nie zajrzysz na DVD - przecież tam masz na 100% nie zmienione biblioteki i na 100000% w funkcji uart_puts() nie masz na końcu żadnej linijki, którą miałeś usunąć jak pisałeś wyżej.

    Biorąc to pod uwagę - może jeszcze w innych miejscach wprowadziłeś sobie zmiany a później zapomniałeś i teraz odbija ci się to czkawką ;) .... bo jak widzisz u mnie działa i masz namacalny dowód - chyba że mi nie wierzysz - to już inny problem .....

    dlatego mówię podeślij projekt na maila to rzucę okiem i sprawdzę albo czy u mnie działa albo gdzie robisz babola w programie albo jako kolejna osoba (bo tak też często bywa niestety - nie obraź się bo to nie o to chodzi żeby ci przygadać - coś źle konfigurujesz swoje terminale niestety :(

    _________________
    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: 1 maja 2012, o 00:07 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Nie twierdze że coś spreparowałeś broń boże. Ale dostaje już pomału kręćka walczę z tym od tygodnia nie mogę pisując projektu na przód przez tą transmisje. Najgorsze w tym wszystkim jest to ze na innym forum ludziom też działa mój program. Co do konfigurowania terminali Br@y'a nie da się źle skonfigurować z resztą widać wszystkie ustawienia w pierwszym poście :D. Sprawdziłem bibliotekę na DVD tam nie ma czego takiego widocznie przy kombinacjach to dopisałem. Z tego co teraz przeglądam tylko tym co pisałem powyżej się różnią. Zaraz wyśle ZIP'a. Z góry dzięki za postójcie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 maja 2012, o 00:49 
    Offline
    Moderator
    Avatar użytkownika

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

    No ja już mam BABOLE w twoim programie które powodują twoją zgrozę i to potrafię je wyłączyć albo włączyć z powrotem bez problemu - czyli trafiłem skalpelem laserowym we wrzody (tak tak liczba mnoga) , które zrobiłeś w kodzie.

    ale po pierwsze - zanim coś podpowiem to najpierw pewne wyjaśnienie i pytanie.

    1. Ludzie ci piszą i ja też pisałem że twój program działa - no bo biorą sobie biblioteki z książki (albo swoje) i odpalają samo nadawanie do terminala i to działa - jak mówię musi działać - a rzeczywiście nie są winne twoje terminale - bo i na Puttym miałem taki kosmos jak pokazywałeś na swoim screenshocie - więc tak na prawdę nikt ci nie przetestował całego programu - chyba poza mną ;) .... tyle tylko że to nie wymagało dużo testów - babole od razu zaatakowały ;) więc szybko się je namierzyło ;)

    2. jakiego środowiska używasz do kompilacji i dlaczego nie Eclipse ?

    _________________
    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: 1 maja 2012, o 07:41 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    1)Znaczy się to jest fakt że nikt nie przetestował całego programu. Przejrzałem jeszcze raz tą bibliotekę i poza usuniętą obsługo RS485 różnią się tylko rozmiarem bufora. :( Wiec totalnie jestem Ciekawy o co chodzi, widzę ze zdrowo namieszałem tylko jeszcze nie wiem w którym miejscu :o


    2) Używam AVR-Studio 4. Od samego początku jak jeszcze nie było Twojej (swoją droga fajnej) książki ;) używałem AVR-Studio. Potem nie widziałem powodu żeby to zmieniać. Miałem okazje usiąść do Eclipse gdy zacząłem uczyć się procesora LPC1114 i zraziłem się bardzo mianowicie dla kogoś kto zaczyna, zainstalowanie tych wszystkich ToolChai'ów i innych Plugin'ów jest strasznie ciężkie. Niby daje to plusy ze mam skonfigurowane IDE tak jak sobie tego życzę ale po co tracić czas? Wolałem zainstalować LPC Xpresso 4 i cieszyć się odrazu skonfigurowanym IDE i skupić się na zgłębianiu wiedzy na temat procesora który mnie interesuje. Podsumowując tak się zraziłem po tych zabawach z LPC ze nawet nie otworzyłem Eclipse dołączonego do Książki. A w AVR-Studio nic mi nie brakuje przynajmniej na razie ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 maja 2012, o 08:18 
    Offline
    Moderator
    Avatar użytkownika

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

    No, gdybyś odpowiedział że używasz AVR Studio 5 albo 6 - to w ogóle z moją wcześniejszą zapowiedzią już bym przestał dalej podpowiadać ;) ale ok ...

    nie mniej jednak - pomyśl sobie ilu ludzi już jest szczęśliwych którzy korzystają dzięki mojej książce z Eclipsa - popytaj na forum. Wiem wiem - ogromna ilość ludzi boi się Eclipsa bo najczęściej zraża się do niego tak jak ty - że to ciężka kobyła trudna do skonfigurowania itp ....

    ale niestety - prawda jest taka, że te wszystkie problemy o których napisałeś , które spotkały cię przy konfiguracji Eclipse na potrzeby pracy z ARM'ami to właśnie związane były głównie z wykorzystaniem tego "darmowego środowiska dla ARM'ów" - i więcej tam problemów miałeś ze wszystkim co dotyczy przygotowania środowiska dla ARM a nie związanych z samym ECLIPSE

    dlatego uwierz mi - że tak samo jak książka jest łatwa i przyjemna tak ja poświęciłem na prawdę dużo czasu żeby na DVD przygotować już konkretną i preinstalowaną wersję Eclipsa i to z już gotowym i zainstalowanym do działania PlugInem dla AVR - a cała INSTALACJA, której się tak obawiasz sprowadza się do

    COPY & PASTE

    jednego folderu z DVD na własny dysk twardy i już masz .....

    dodatkowo specjalnie na te potrzeby nakręciłem specjalne poradniki/lekcje VIDEO , które masz na DVD i nie wiesz jak mi smutno, gdy wielu ludzi nawet do nich nie zajrzy - a po pół roku czy po roku od zakupu książki gdy ew kogoś przekonam do obejrzenia albo gdy ktoś sam dopyta czy tam aby coś wartościowego jest - to potem sam sobie pluje w brodę że wcześniej nie zajrzał

    toż dzięki tym filmom video oraz przygotowanym i preinstalowanym wersjom eclipsa (bo masz aż 2 albo 3 na DVD) możesz z niego zacząć korzystać tak szybko i wygodnie jak ze wspomnianego LPC EXpresso

    spróbuj proszę

    a jest jeszcze jeden szczególny powód który przemawia żebyś jak najszybciej zaczął z ECLIPSE - bo niestety przez korzystanie z AVR Studio sam się wpędzasz w babole co ci zaraz udowodnię i może to też cię przekona żeby chociaż spróbować DOBRZE ????

    jeśli uznasz po tych filmikach i wykonaniu instrukcji z nich, że to nadal do niczego - to trudno - nie ma problemu - ja przynajmniej próbowałem

    BABOLE:

    mieszasz znaki slashy i backshlasy szczególnie przy użyciu plików nagłówkowych - zdaję sobie sprawę że w AVR Studio ciężko to zauważyć bo nie ma żadnego kolorowania składni czy też podpowiedzi konktekstowych dzięki którym nawet nie trzeba ręcznie tego wpisywać tylko klikasz CTRL+SPACE i samo się pojawia (masz to pokazane w jednym z filmików) ....

    w jednym ze swoich plików zdaje się uart.c masz taki błąd ....

    kolejne rzeczy:

    NIE TWORZYSZ folderów na biblioteki żeby tematycznie ładnie podzielić tak dla siebie cały PROJEKT - wiem wiem - AVR Studio ci tego nie ułatwia a nawet gorzej - praktycznie wymusza to od początku i pomimo że można tam robić foldery tak jak się należy to rzadko kto wie i zadaje sobie trud żeby to sprawdzić a potem wychodzą takie tasiemce jakie mi podesłałeś w ZIP'ie :(

    przez to wszystko już nie trudno się domyśleć dlaczego nie radzisz sobie z pewnymi pozostałymi kwestiami - bo jak mówię poruszanie się po już paru plikach projektu i bez żadnych udogodnień i bez kolorowania składni to po prostu katorga

    ale znowu do rzeczy - jak się już napisze taki projekt to zgodnie z tym co piszę w książce przede wszystkim trzeba go jak najszybciej uporządkować a u ciebie co ??? patrzę jak sroka w kość i widzę jakieś pliki do obsługi LCD :( a nie są wykorzystane w programie ... gdybyś mi podesłał projekt w Eclipsie to pewnie już dawno skorzystałbyś i wiedział co to znaczy taka przyjemna opcja jak "EXCLUDE FROM BUILD" i byś ją zastosował na tych plikach - chociaż jeszcze lepiej - na folderze do LCD - a wtedy komuś komu wysyłasz do analizy program też już byłoby łatwiej i mniej czasu tracił na sprawdzanie - a tym bardziej, że to bardzo zmodyfikowana biblioteka i najpierw myślałem że tam może coś nieteges - ale za chwilę widzę że w programie głównym w ogóle się do nie nie odwołujesz a zatem to jakaś pozostałość albo wykorzystujesz ją tylko do celów DEBUG

    idźmy dalej - już dochodzę do sedna - jak masz już taki większy projekt to spróbuj się nauczyć robić to co ja zrobiłem właśnie czyli taki "Reverse engineering" .... jeśli coś nie działa w całości - to:

    1. zrób kopię zapasową projektu
    2. podziel go na mniejsze kawałki i testuj np - podziel na logiczne dwie połówki i sprawdź w której występuje ten błąd
    3. jak ją złapiesz tą połówkę a błędu konkretnego jeszcze nie widzisz to podziel ją na kolejne dwie logiczne połówki i sprawdź w której występuje błąd
    4. patrz punkt wyżej

    idąc tą drogą nie ma siły żeby ktoś sam nie dotarł do błędu - za to zdaję sobie sprawę że to dzielenie na logiczne połówki zaczyna być czymś dziwnym tzn o czym ja tu mówię ??? .... ale znowu uczepię się Eclipsa - znowu przydatna tu ogromnie opcja "EXCLUDE FROM BUILD" za pomocą której pięknie i bez kasowania czy przekopiowywania można wyłączać pewne fragment kodu źródłowego z kompilacji co znacznie przyśpiesza ten proces o którym mówię

    i dlatego zamiast na końcu wskazać ci gdzie masz GŁÓWNEGO BABOLA - naprowadzę cię tylko OK ? (jeśli uznasz że to zły pomysł to daj znać - wtedy od razu ci go wskażę) .... ale z punktu widzenia dydaktycznego i dla samego siebie lepiej gdybyś sam doszedł na podstawie wskazówek co jest nie tak

    Zatem to że mówię abyś dzielił umiejętnie projekt na kawałki - spróbuj wyłączać na początek niektóre pliki projektu z działania i obserwuj co się będzie działo z tym błędem i daj znać jak ci idzie - pomogę oczywiście na każdym etapie poszukiwania ale fajnie jakbyś to męczył w Eclipse - bo wtedy mielibyśmy to samo przed sobą

    aha i w jednym filmiku masz pokazane jak prosto robi się import projektów z AVR Studio do Eclipsa ;)

    PS .... jeszcze jedno zmień przynajmniej do celów testowych zawsze prędkość transmisji UART bo używasz jakiejś MEGA KOSMICZNEJ co nie ma Jak mi się zdaje (ale może się mylę) ŻADNEGO realnego uzasadnienia a może ci czasem przeszkadzać - daj sobie 9600 i wystarczy a w praktyce jak dasz 115200 to już i tak zwykle będzie aż za dużo do takich celów

    no! to wszystko ;)

    _________________
    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: 1 maja 2012, o 14:57 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Podzieliłem program na fragmenty i ogólnie sprawa wygląda tak: transmisja działa ale tylko wtedy gdy nie używam ADC i wysyłam dane wpisane na sztywno do tablicy Sensor_Value[] wiec logika wskazuje że błąd powinien gdzieś być w obsłudze samego ADC. Znalazłem mały błąd w pliku adc.c tam własnie miałem pokręconego tego slasha z backshem, ale to raczej nie to bo po poprawieniu ta sama historia. Sprawdziłem jeszcze raz inicjalizację ADC wg. Datasheet'a i wydaje mi się ze jest OK. Może jeszcze jakaś mała podpowiedz?

    Co do tej biblioteki LCD, została ona w katalogu projektu dlatego ze pierwotnie dane były wysyłane na LCD. W pewnym momencie stwierdziłem ze potrzebuje kolejne wyprowadzenia procesora i ze fajnie będzie wysyłać to po UART'cie, i może w końcu to ogarnę.
    Nie skasowałem jej bo po pierwszych niepowodzeniach chciałem już rezygnować UART'u (powiedziano mi ze mam się bawić w transmisję binarna więc uznałem ze to gra niewarta świeczki). No ale teraz nabrałem motywacji ;)

    Baud miałem taki kosmiczny ponieważ, podejrzewałem że są to jakieś błędy transmisji i wyczytałem w datasheecie w dziale Examples of Baud Rate Setting ze dla 250k i kwarcu 16MHz błędy są równe 0.0%



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 maja 2012, o 16:08 
    Offline
    Moderator
    Avatar użytkownika

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

    No i bardzo pięknym tropem idziesz ;) .... widzisz jak to jest dzielić projekt na kawałki ;) ....

    kolejna podpowiedź ? w zasadzie - to w takiej sytuacji bierze się wtedy na tapetę ten plik który ci sprawia kłopoty - a już go wykryłeś i teraz jego musisz się nauczyć dzielić na coraz mniejsze kawałki funkcjonalne - zobaczysz że jak zaskoczysz dobrze tą metodę - to będziesz działała jak dobry Debuger ;)

    - hmmm spójrz jak inicjalizujesz przerwania od ADC ;)

    .... i jeszcze raz - przejdź na Eclipse ;)

    ... aha - jak widzisz poprzedni trop o zwiększaniu baudrate zaprowadził cię niestety na manowce :(

    _________________
    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: 1 maja 2012, o 17:19 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Yyy teraz to już zupełnie zgłupiałem, ja nie inicjuje przerwania od ADC. Chciałem zrobić pomiar na żądanie, czyli 20 pomiarów z 5 kanałów, obliczenie średniej dla każdego kanału i wyłączenie przetwornika. Chyba ze to jest w ogóle błąd w myśleniu i rozumieniu jak to działa ;/ ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 maja 2012, o 18:04 
    Offline
    Moderator
    Avatar użytkownika

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

    eeeh nie - tam - nie ma to nic wspólnego z przerwaniami - jednak ja wczoraj za późno chyba na to patrzyłem ;) a tak na poważnie to pomyliły mi się bity ADEN z ADIE i stąd to myślenie w kierunku przerwań - że niby je odpalasz - a że nie ma wektora przerwania to resety lecą jak dzikie ;) (przepraszam za wprowadzenie w błąd w tym zakresie) .... więc jeszcze raz teraz przysiadłem ;) no i mam ....

    problem tzn BABOL okazał się jeszcze bardziej banalny

    ale skoro już bardziej się przyjrzałem to od razu wytknę ci kolejne mikro babole które robisz.

    Tylko proszę nie traktuj tego ja z tym odwrotnym backslasem - bo pisałem wcześniej że akurat to nie jest powodem ale jak byś stosował odwrotne to zdarzy się że się przejedziesz ;)

    tak samo będzie i to na pewno jeśli:

    1. w ogóle nie będziesz dbał o typy danych - bo jak np widzę, że ktoś robi pętlę for biegającą w zakresie nawet od 0 do 19 a zmienna iteracyjna i jest typu int ( to mnie się gorąco robi - jak tak można ;) .... ???? szok - przecież nie dość że marnujesz pamięć RAM, to jeszcze marnujesz czas procesora. Wiem wiem że tu ci nie jest potrzebny - ale kiedyś jak będzie to wtedy zrozumiesz - tracąc wiele godzin na szukanie takich kwiatków :(

    2. mieszasz typy danych i nie próbujesz się nawet zastosować do pewnych zasad programowania które opisuję w książce :( to znaczy - nie mam nic przeciwko temu to twoja sprawa i rób tak dalej jeśli chcesz mieć inne później błędy

    kojarzysz z książki do czego warto używać typu char ????

    a ty sobie robisz: volatile char Sensor_Value[5];

    przecież tu idealnie nadaje się typ: uint8_t czyli

    Kod:
    volatile uint8_t Sensor_Value[5];


    aby po chwili zobaczyć jak szastasz na prawo i lewo np typem: unsigned char

    Kod:
    unsigned char ADC_check(void)


    a czytałeś w książce że AVR GCC domyślnie zamienia unsigned char na char ???? i wprawdzie nie robisz tu błędu syntaktycznego ale jak mówię jak przyjdzie czas na korzystanie z funkcji wbudowanych w C - bo na razie mało ich wykorzystujesz to zacznie się płacz i zgrzytanie zębów ;)

    podpowiadam że idealnie tutaj byłoby dać:

    uint8_t ADC_check(void)

    ale jedźmy dalej, przecież za chwilę w tej samej funkcji robisz bez sensu rzutowanie:

    wynik=(unsigned char)(wynik/i);

    toż funkcja mogłaby wyglądać prosto i ślicznie tak:

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


    ok - ale to tam moje takie tam gadanie - można to pominąć jak ktoś nie chce ;)

    - za to do wyrywania sobie włosów z głowy przy uruchamianiu tej transmisji doprowadziły cię i tak problemy ze stosem oraz tym a przez co dokładnie ????

    przez ot taki prosty znak = (równa się) ;)

    w tym miejscu - nie wspomnę że też widzę tu zmienną int to jest totalną przesadą

    for( int i=0; i<=5 ; i++ )

    widzisz to ???? i mam nadzieję że domyślasz się dlaczego ?

    generalnie to właśnie jest taka uwaga - że styl pisania, mieszanie tych typów, niepotrzebne rzutowania ale też tak na prawdę totalnie niepotrzebne funkcje typu:

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


    powodują że strasznie się analizuje twój kod : .... przecież zamiast tych funkcji mógłbyś albo wpisać te pojedyncze linijki a jak nie chce się ich wpisywać to czemu nie wygodne makra np:

    #define ADC_TURN_ON ADCSRA |= (1<<ADEN)
    #define ADC_TURN_OFF ADCSRA &= ~(1<<ADEN)

    itp

    _________________
    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: 2 maja 2012, o 20:50 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 28 kwi 2012
    Posty: 18
    Lokalizacja: Bydgoszcz
    Pomógł: 1

    Wielkie dzięki za pomoc! Nie wiem jak mogłem przegapić ten znak = ...

    Zdaje sobie sprawę ze błędnie wybieram zmienne, nadużywam funkcji i robię coś takiego: wynik=(unsigned char)(wynik/i);. Ale są to przyzwyczajenia z C++. Moja przygoda z programowaniem zaczęła się od pisania aplikacji na komputer, tam nie trzeba się przejmować zbytnio optymalizacja itp bo mamy do dyspozycji GHz i grube GB ramu ;) Naprawdę staram się z tym walczyć, dzięki za cenne rady na przyszłość.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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