ATNEL tech-forum https://forum.atnel.pl/ |
|
Kod się nie kompiluje https://forum.atnel.pl/topic21208.html |
Strona 1 z 2 |
Autor: | Ada57 [ 31 sie 2018, o 20:22 ] |
Tytuł: | Kod się nie kompiluje |
Witam Proszę o podpowiedź co w tym kodzie na Attiny 2313, trzeba poprawić, aby się skompilował. język cpp Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Pozdrawiam Adela |
Autor: | mirekk36 [ 31 sie 2018, o 20:24 ] |
Tytuł: | Re: Kod się nie kompiluje |
Uprzejmie proszę sprecyzować i PORZĄDNIE zadać pytanie - czyli np podać komunikaty błędów a nie liczyć na to, że ktoś będzie zgadywał ... no jak ... TAK można zadawać pytanie i nie napisać o co chodzi ? |
Autor: | Ada57 [ 31 sie 2018, o 20:31 ] |
Tytuł: | Re: Kod się nie kompiluje |
Załączyłam obrazek jaki wyświetlił kompilator ale się nie pokazał. Wyświetla error w 8 linii ,1 columnie. Error 1 expected identifier or '(' before 'while',line 8,column 1 |
Autor: | Piotrek_P [ 31 sie 2018, o 21:39 ] |
Tytuł: | Re: Kod się nie kompiluje |
A gdzie w Twoim kodzie jest blok głównej funkcji? język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. chyba że coś przed nami ukrywasz |
Autor: | Ada57 [ 31 sie 2018, o 21:49 ] |
Tytuł: | Re: Kod się nie kompiluje |
Pobrałam go z tej strony. Teraz patrzę , są dalsze części. http://codeandlife.com/tags/attiny2313/ https://www.google.com/search?client=fi ... wcEeHw3w08 |
Autor: | Piotrek_P [ 31 sie 2018, o 22:11 ] |
Tytuł: | Re: Kod się nie kompiluje |
Napisz może co chcesz zrobić lub jaki efekt chcesz uzyskać, to łatwiej będzie pomóc, bo debatowanie nad wycinkami jakichś niekompletnych kodów z internetu nie ma sensu. |
Autor: | Ada57 [ 31 sie 2018, o 22:16 ] |
Tytuł: | Re: Kod się nie kompiluje |
Chcę aby dwie diody na Attiny 2313A ,lub innym uC,na wyjściu 15 i 16 (PB3 i PB4 migały na przemian co 64 sekund ,duty 50%. Stan niski 64 sek,stan wysoki 64 sek.,lub zbliżony do 64 sek. Najlepiej bez delay,sprzętowo tj.PWM,CTC., nie programowo. Tak aby duty 50% było jak najdokładniejsze. Co lepiej dać delay,czy sleep,jaka jest między nimi róznica?. Licznik jest chyba lepszy dla dokładności duty 50% ,jak delay. |
Autor: | michu [ 1 wrz 2018, o 13:51 ] |
Tytuł: | Re: Kod się nie kompiluje |
Widzę ze dalej męczymy ten sam temat proszę link: https://forbot.pl/blog/kurs-stm32-7-lic ... pwm-id8459 teraz się chyba już rozjaśni ------------------------ [ Dodano po: 4 minutach ] To nie jest gotowiec ale pewien sposób podejścia do zadania |
Autor: | Ada57 [ 5 wrz 2018, o 14:09 ] |
Tytuł: | Re: Kod się nie kompiluje |
Jak zmienić ,if (Sekundy == 60),na if(Mikrosekundy==60). Napisałam, if(Mikrosekundy==60),ale się nie skompilowało, if (Sekundy == 60) się skompilowało w kodzie. |
Autor: | Marhef [ 5 wrz 2018, o 14:51 ] |
Tytuł: | Re: Kod się nie kompiluje |
Koleżanko, ale Ty orientujesz się chociaż trochę w tym całym programowaniu? Czy próbujesz na siłę coś napisać łącząc znalezione w internetach kawałki kodów? 1) masz zadeklarowaną zmienną Mikrosekundy? 2) masz skonfigurowany timer w ten sposób, żeby odliczał mikrosekundy? Z tego, co się orientuję, trudne będzie to zadanie na AVR. Ale może co 10 mikrosekund się uda? A w ogóle, w którym kodzie są te sekundy i mikrosekundy? |
Autor: | Ada57 [ 5 wrz 2018, o 15:37 ] |
Tytuł: | Re: Kod się nie kompiluje |
Ściągam z netu kody i próbuję je ulepszyć ,aby miały jak najbardziej zbliżone do idealnego wypełnienie 50%,tj.duty Cycle 50%. W tym kodzie chce zamienić 64 sekund w linijce nr.14,na 64000000 us mikrosekund. http://diycenter.acid19.linuxpl.com/pri ... &item_id=3 https://www.avrfreaks.net/forum/tut-c-n ... s?page=all |
Autor: | mirekk36 [ 5 wrz 2018, o 17:20 ] |
Tytuł: | Re: Kod się nie kompiluje |
Ada57 napisał(a): Ściągam z netu kody i próbuję je ulepszyć Tak nieśmiało zapytam, a może lepiej nauczyć się takich podstaw programowania i samemu napisać kod ? Zapewniam, że to podstawy podstaw w C i mikroprocków AVR - więc nawet dużo się uczyć nie trzeba. Bo widać, że Ada57 napisał(a): i próbuję je ulepszyć ... że to coś nie idzie za dobrze bez znajomości podstaw |
Autor: | Marhef [ 5 wrz 2018, o 21:29 ] |
Tytuł: | Re: Kod się nie kompiluje |
Ale po co zamieniać 60 sekund na 60 000 000 mikrosekund, jeżeli to jest to samo? Zresztą, jakiego typu musi być zmienna, żeby pomieściła taką wartość? Zadeklarowałaś zmienną Sekundy typu char, czyli... zmienną, która może przyjąć wartości od 0 do 255. Trochę mało. Z drugiej strony, co się tak uparłaś na te mikrosekundy? Jeżeli najważniejsze dla Ciebie jest to, żeby czas stanu niskiego i wysokiego były równe, to co za różnica, czy będzie to 59,9999999/59,9999999 czy 60,0000001/60,0000001? |
Autor: | Ada57 [ 5 wrz 2018, o 21:37 ] |
Tytuł: | Re: Kod się nie kompiluje |
W telewizorach LCD, i nie tylko ,dokładne 50% ma znaczenie. |
Autor: | Marhef [ 5 wrz 2018, o 21:42 ] |
Tytuł: | Re: Kod się nie kompiluje |
W obydwu podanych przeze mnie przypadkach jest dokładnie 50%. |
Autor: | Ada57 [ 5 wrz 2018, o 22:11 ] |
Tytuł: | Re: Kod się nie kompiluje |
Chodzi o rozdzielczość,jest inna w sekundach a inna w mikrosekundach. To po co się wprowadza ms,us,ns,a nie pozostaje się tylko przy sekundach. Jak dokładniej podzieli się 1 metr na pół,jak jest w cm,czy w mm. |
Autor: | Marhef [ 6 wrz 2018, o 07:25 ] |
Tytuł: | Re: Kod się nie kompiluje |
... to może prościej: procesor wykonuje pętlę główną. I dodatkowo odlicza czas (w przerwaniu). Pętla główna jest baaardzo krótka, więc można przyjąć, że sprawdzenie zawartości rejestru timera i porównanie ilości sekund odbywa się co stały czas. I teraz pytanie: czy ma dla Ciebie znaczenie, że czas trwania stanu wysokiego ma 60,000001 sekundy, i czas stanu niskiego ma też 60,000001 sekundy, jeżeli te czasy są sobie równe? Jakiej dokładności oczekujesz? Femtosekund? I w przypadku odliczania czasu w sekundach i w mikrosekundach będzie różnica. Kilku taktów procesora. Rzędu mikrosekund (w zależności od kwarcu). Kwarc też nie daje pełnej gwarancji, że będzie podawał idealnie stabilną częstotliwość w czasie. Więc tu również mogą pojawić się lekkie odchyłki od wybranego przez Ciebie czasu. |
Autor: | Ada57 [ 6 wrz 2018, o 09:25 ] |
Tytuł: | Re: Kod się nie kompiluje |
Jestem ciekawa czy da się w tym kodzie zrobić w us,a co mi szkodzi dać te us jeśli to możliwe. Poza tym jak dam w us to będę miała większy zakres częstotliwości od kHz do ?,i nauczę się ,dowiem, się czegoś nowego. W delay mogę dać w us ,ale jest mało dokładne Duty 50% . |
Autor: | Marhef [ 6 wrz 2018, o 10:12 ] |
Tytuł: | Re: Kod się nie kompiluje |
Możesz spróbować. Nie napiszę dokładnie, co jak przestawić, bo teraz nie mam dostępu do dokumentacji do tego procka. Ale musisz: 1) zmienić preskaler timera, tak, żeby przerwanie było wywoływane co wybrany przez Ciebie czas (ale wątpię, czy uda się co 1 mikrosekundę) - do sprawdzenia w dokumentacji 2) zadeklarować zmienną mikrosekundy. Jako typ musisz wybrać taki, który pomieści wartość, do której chcesz zliczać. 3) na podanym przez Ciebie programie będzie wtedy działało. Ponawiam pytanie: jaką dokładność chcesz uzyskać? Konkretnie |
Autor: | Ada57 [ 6 wrz 2018, o 10:33 ] |
Tytuł: | Re: Kod się nie kompiluje |
Marhew napisał: "Ponawiam pytanie: jaką dokładność chcesz uzyskać? Konkretnie" Chcę uzyskać dokładność jaka jest najbardziej możliwa do uzyskania. |
Autor: | micky [ 6 wrz 2018, o 11:04 ] |
Tytuł: | Re: Kod się nie kompiluje |
To sugeruję użyć generatora stabilizowanego temperaturowo. |
Autor: | Ada57 [ 6 wrz 2018, o 13:08 ] |
Tytuł: | Re: Kod się nie kompiluje |
micky napisał: "To sugeruję użyć generatora stabilizowanego temperaturowo." Na Allegro znalazłam kwarc 32768 Hz z 1 ppm. https://allegro.pl/listing?string=kwarc ... i-1-1-0806 i z 5 ppm https://allegro.pl/listing?string=kwarc ... i-1-1-0806 |
Autor: | tonygryps [ 6 wrz 2018, o 14:53 ] |
Tytuł: | Re: Kod się nie kompiluje |
no i co on Ci da? |
Autor: | Ada57 [ 12 wrz 2018, o 13:30 ] |
Tytuł: | Re: Kod się nie kompiluje |
Czy można w tym kodzie dać zamiast ms,us,i jak to zrobić. Jak oceniacie ten kod pod względem dokładności wypełnienia duty 50%,z kwarcem i bez. Czy , unsigned int licznik1;, jest we właściwych miejscach,zostawić go czy usunąć,jeśli usunąć to które,a które zostawić. Jak ewentualnie można ulepszyć ten kod,chodzi o zwiększenie dokładności wypełnienia 50%/50%. |
Autor: | tonygryps [ 12 wrz 2018, o 18:33 ] |
Tytuł: | Re: Kod się nie kompiluje |
Jak by to, Ty coś rozumiesz z tego kodu czy to jakiś gotowiec z internetu ? ------------------------ [ Dodano po: 23 minutach ] Moim zdaniem droga którą obrałaś to droga donikąd naprawdę warto zainwestować w zrozumienie tematu a nie na ślepo brnąć licząc na jakiś gotowiec bo co jak trzeba będzie coś zmienić. Poza tym to przypomina spacer przez pole minowe bez wykrywacza min . P.S .Na jakiej podstawie Ty uważasz że zmiany stanu pinów odbywają się w mili sekundach? |
Autor: | micky [ 12 wrz 2018, o 18:57 ] |
Tytuł: | Re: Kod się nie kompiluje |
Żeby zrobić ‘idealnie’ dokładny generator używa się wzorca atomowego. Poczytaj o DCF 77 - można go wykorzystać w Twoim projekcie. W skrócie w ciagu jednej minuty generowanych jest 59 impulsów i sa one najidealniejsze z możliwych. Przy Twoich potrzebach w zupełności to wystarczy (pomijam fakt, że moim zdaniem przesadzasz z ta potrzebna dokładnościa). Popatrz za dekoderami tego sygnału. Wystarczy zliczać impulsy i odpowiednio zmieniać Twoje porty sterujace. Dostałaś wędkę, czas w końcu iść na ryby |
Autor: | Ada57 [ 12 wrz 2018, o 19:35 ] |
Tytuł: | Re: Kod się nie kompiluje |
Dzięki informacji micky znalazłam jak podłaczyć Atmegę do DCF,link poniżej. Zadałam te pytanie powyżej, aby z odpowiedzi czegoś się nauczyć dowiedzieć. Chcę dokładnego 50% aby się przy okazji nauczyć,poznać,i chce to zrobić choćby sztuki dla sztuki. Czy nie lepszy będzie moduł czasu GPS jako zegar generujący przerwania. https://www.elektroda.pl/rtvforum/topic3279257.html |
Autor: | Ada57 [ 13 wrz 2018, o 08:36 ] |
Tytuł: | Re: Kod się nie kompiluje |
Czy w ostatnim kodzie który zamieściłam , nie da się go przerobić tak aby można było ustawić w na us ,mikrosekundy ? Potrzebne mi są te us mikrosekundy, aby poszerzyć zakres częstotliwości. |
Autor: | tonygryps [ 13 wrz 2018, o 09:46 ] |
Tytuł: | Re: Kod się nie kompiluje |
Ponawiam pytanie skąd wniosek że on działa w mili sekundach mierzyłaś to sprawdzałaś oscyloskopem skąd wiesz w jakim czasie zmienia się wartość zmiennej licznik . a co do kodu to moim zdaniem jest on po prostu słaby mówiąc bardzo pobłażliwie (oczywiście w odniesieniu do tego co chcesz osiągnąć). Cytuj: Zadałam te pytanie powyżej, aby z odpowiedzi czegoś się nauczyć dowiedzieć. Twoja nauka przypomina dziecko które znalazło niewybuch i chce go rozebrać żeby dostać się do materiału wybuchowego . Oczywiście nie zniechęcam do eksperymentowania ale jednak najpierw to podstawowa wiedza by się przydała . A co do kodu wynika z niego że nie wiesz co to jest zmienna i jak się ją tworzy i jakie są typy zmiennych w avr-gcc przykładem tego jest zmienna licznik1 którą powołujesz do życia 4 razy dwa razy jako globalna i dwa jako automatyczną bez inicjalizacji i na dodatek raz w pętli głównej i jak by tego było mało do niczego jej nie wykorzystujesz ponadto na pewno nie uzyskasz tam sygnału o wypełnieniu 50% zadziała to tak pin PB3 ma stan wysoki dopóki zmienna licznik nie osiągnie 64000 po czym spełnia się warunek w pierwszym ifie i zmienia stan na pinie PB3 na niski po kilku taktach zegarowych kwarca (w zależności od ilości komend asemblerowych) wykonuje się drugi if który ponownie ustawia pin PB3 na stan wysoki . więc jak sama widzisz tu nie ma mowy o wypełnieniu 50% a zmiany stanu pinu są zależne od ilości rozkazów asemblerowych które to mikrokontroler wykonuje z szybkością zależną od taktowania i ile dany rozkaz potrzebuje taktów zegara . . |
Autor: | Harry [ 13 wrz 2018, o 09:51 ] |
Tytuł: | Re: Kod się nie kompiluje |
Sorry że się wtrące, ale czy ty budujesz laser do operacji mózgu czy może planujesz kontrolę rozszczepienia uranu w elektrowni atomowej? Sygnał zegarowy to nie jest jedyna rzecz która wpływa na czas wykonania - sama instrukcja również potrzebuje czasu. Do tego weź jeszcze pod uwagę opóźnienia na ścieżkach płytki (pooglądaj płytę główną kompa w okolicach pamięci/mostków), oraz użytych częściach. Aha, sygnał GPS nie działa wewnątrz budynków. Wysłane ze srajfona |
Strona 1 z 2 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |