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



Teraz jest 28 paź 2024, o 14:26


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 ]
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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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: 27306
Lokalizacja: Szczecin
Pomógł: 1041

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