Skocz do zawartości

Dodatkowe ćwiczenia z wyświetlaczem 2x16 znaków


Pomocna odpowiedź

1 godzinę temu, rafal220 napisał:

Ale tam trzeba będzie  dodać jakąś bibliotekę do obsługi bootloadera

Że co???

Biblioteki standardowe (w tym przypadku avr-libc) muszą być dostępne bez żadnych dodatkowych manipulacji. W przypadku Arduino w większości przypadków nawet #include nie jest potrzebny (chociaż lepiej go dodać). 

1 godzinę temu, rafal220 napisał:

Tej linijki kompletnie nie rozumiem.

Link do manuala gdzie jest to dokładnie wyjaśnione miałeś w poprzednim poście. Mam to skopiować i wkleić czy sam sobie poradzisz?

1 godzinę temu, rafal220 napisał:

Liczba oznacza ilość znaków char, a jak nic nie wstawisz w nawiasie, to kompilator powinien wstawić.

A skąd kompilator ma wiedzieć co wstawić? Musisz mu powiedzieć, ile znaków może zmieścić bufor i tyle. 

1 godzinę temu, rafal220 napisał:

Znaków sekund minut i godzin jest 8, czemu 9? Gdzieś tam wyczytałem że daje się o jeden więcej, ale dlaczego? nie było wyjaśnione.

 

Oszukujesz. W fafnastu miejscach w sieci można znaleźć wyjaśnienie. Zapytam: jak myślisz, skąd program wie kiedy napis się skończył?

A że po nawiasie nic nie ma - a co ma Twoim zdaniem być? Przecież nie określasz początkowej wartości bufora, czyli mogą się tam znaleźć jakieś przypadkowe śmiecie które i tak nadpisze któraś instrukcja.

No i powiedz wreszcie, dlaczego próbujesz napisać list po hebrajsku znając jedynie polski i rosyjski... Kolejne pytania o to, co jest wyjaśnione wystarczająco w kursie albo popularnych podręcznikach raczej (przynajmniej z mojej strony) pozostaną bez odpowiedzi. 

I jeszcze o nazwach.

Tu masz kilka zmiennych, i od biedy patrząc na kod możesz się zorientować do czego to służy. Teraz wyobraź sobie większy projekt... na forum masz moje "arduino w modelarstwie" i "czytak do epubów". Nie musisz czytać całego kodu, ale pomyśl, co by było gdybym chciał tam użyć nie znaczących nazw zmiennych czy funkcji...

A ATtiny13 to całkiem fajna rzecz, materiałów w sieci jest mnóstwo, a czy użyjesz do tego Arduinio IDE czy (jak w moim przypadku) avr-gcc z odpowiednim Makefile to jedna chwała. Ostatnio użyłem tego do monitorowania stanu akumulatora w mini-konsolce na RPi Zero 2 W, przedtem był np. rekwizyt do teatru lalek (ognisko, siedem x WS2812), przedtem też parę jakichś drobiazgów... ważne żeby się nie zrażać bo "ja kcem mieć takie cóś a w sieci nie ma jak to zrobić".

Gość
24 minuty temu, ethanak napisał:

ważne żeby się nie zrażać bo "ja kcem mieć takie cóś a w sieci nie ma jak to zrobić".

Do tej pory na razie do elektroniki się nie zraziłem. Po drodze zahaczyłem nawet lampy elektronowe (w prostych i bardziej profesjonalnych rozwiązaniach estradowych) chociaż z początku naprawdę bardzo nie miałem do tego ochoty.  Były instalacje elektryczne, energetyka do NN (najwyższych napięć), proste kości TTL i CMOS, sterowniki PLC itp. Teraz od niedawna Arduino. 

Nie zraziłem się, ale (przynajmniej na razie) jeżeli mowa o avr-libc, to nie jest na moje siły. Po pierwsze Instrukcja avr-libc-user-manual-1.8.1.pdf nie jest dostępna w j. polskim, a twórcy google nie wpadli na pomysł aby przeglądarka umiała tłumaczyć pliki PDF. Po drugie nawet jak to wrzucam kawałek po kawałku do translatora, to i tak z tego nic nie rozumiem. W Arduino dla przykładu też jest licha instrukcja, ale przynajmniej są pod to jakieś kursy/ przykłady po polsku.

Wybacz - ale większość dokumentacji w necie jest po angielsku. Szukałem trochę, ale jedyne co znalazłem to manuale Microsoftu o printf. Możesz z nich skorzystać aby zrozumieć tę tajemniczą linijkę. Jakby było coś niejasne to pytaj.

Manual jest również w postaci online, o ile pamiętam google sobie daje z tym radę.

Inna sprawa, że opanowanie angielskiego nawet na poziomie pidgin jest niezbędne. Przykładowo - dokumentacja ESP32 jest dostępna jedynie po chińsku i angielsku. A tłumaczenie nie ma żadnego sensu bo zanim się to przetłumaczy będzie już dawno nieaktualne.

Możesz spróbować dorwać dokumentację po rosyjsku (podobno znasz). Kilka razy udało mi się dorwać trochę materiałów dostępnych w tym języku...

Ale bez angielskiego to chyba tylko klocki Lego zostają.

A tak mi przyszło do głowy - nie możesz poprosić AI o objaśnienie? Tylko nie tej od gógla, bo ona żyje w innym świecie, gdzie matematyka i informatyka mają niewiele wspólnego z naszymi 🙂

Gość
1 godzinę temu, ethanak napisał:

Możesz spróbować dorwać dokumentację po rosyjsku (podobno znasz)

Ale nie techniczny. Język był obowiązkowy, ale nikt na co dzień nim nie operował, ponieważ był bezużyteczny. No chyba że ktoś kręcił jakieś interesy w tamtejszej branży.  

 

1 godzinę temu, ethanak napisał:

A tak mi przyszło do głowy - nie możesz poprosić AI o objaśnienie?

Masz na myśli jakiś translator do tłumaczenia PDF?

 

1 godzinę temu, ethanak napisał:

Ale bez angielskiego to chyba tylko klocki Lego zostają.

Albo Arduino. Podstawowe sprawy idzie tam ogarnąć. Szczerze mówiąc, to minąłem się z tym tematem o jakieś min. 20 lat.  Zaczynam rozważać czy to ma sens.  

 

1 godzinę temu, ethanak napisał:

Przykładowo - dokumentacja ESP32 jest dostępna jedynie po chińsku i angielsku. A tłumaczenie nie ma żadnego sensu bo zanim się to przetłumaczy będzie już dawno nieaktualne.

dlatego zastanawiam się, czemu google potrafi całkiem nieźle tłumaczyć witryny internetowe, a z tym samym testem zawartym w PDF już nie?  

No żesz... wrzuciłem w translator googla link do manuala avr-libc, polatałem trochę po podstronach i wszystko ładnie działa po polskiemu.

Nie rozumiem, masz problem z obsługą googla czy co?

Gość
4 minuty temu, ethanak napisał:

Nie rozumiem, masz problem z obsługą googla czy co?

Sama strona działa po polsku. Gdyby nie działała, to musiałbym szukać trochę w ciemno.  Na razie pobrałem PDF i avr-libc-2.1.0.tar. Całej strony nie przeglądałem. Z tym plikiem też coś jest nie tak, bo nawet gdyby chciał to zainstalować, to nie ma tam żadnego autorun, czy też setupexe. No chyba że to jest jakiś dodatek do kompilatora, tj. nieszczęsny ardublock który nie przypomina ani kodu, ani graficznego programowania PLC.  

Gość

W PDF jest instrukcja, a w tar po rozpakowaniu miało być IDE. Po rozpakowaniu nie ma setupexe. 

Coś Ci się pozajączkowało chyba... po grzyba pobierasz libca jak masz go już w systemie? Interesuje Ciebie tylko manual.

Co do setup.exe, autorunu... czy Ty naprawdę uważasz że świat się kończy na Windowsie? Nie słyszałeś nigdy o MacOS, Linuksie... Plik tar jest dla tych co wiedzą co z nim zrobić. Podobnie jak np. epub czy mobi są dla tych, co umieją czytać.

@rafal220  jesteś zbyt mocno przywiązany fo Plc (chociaż nic o tym nie wiem) . Jesteś w stanie wyjść z tej strefy ? Rozumiem , że może jesteś starszy niż ja, ale pozostaw te schematy myślowe . Wodzę , że umiesz pisać programy itd. jednak nie potrafisz zmienić podejścia.  Ja kiedyś pisałem w Paskalu teraz chcę nauczyć się c. Poprostu da się, jednak należy oddzielić te sprawy. Tak  jak z językiem, jestem tutaj to mówię w języku danego kraju. Nie dodaję wstawek po polsku . (a jakie to wiecie). 

(edytowany)
5 godzin temu, rafal220 napisał:

Do tego trzeba mieć bardzo dobrą pamięć. Gdybyś zauważył kod dzielę na linijki/ grupy linijek do których dodaję komentarz. Przy dłuższym kodzie można dać nieco inne nazwy zmiennych wyprowadzających...

  1. Zmienne powinny być samodeskryptywne. W przypadku, gdy kogoś zatrudniamy w IT zmienne typu czy v w 99% powodują wyrzucenie CV do kosza.
  2. Komentarze należy stosować z umiarem (pomijając CodeDoc'a, który ułatwia pracę przyszłym programistom).
        /// <summary>
        /// Converts cartesian coordinate data to spherical
        /// </summary>
        [BurstCompile]
        public static void spherical(in float3 lCartesianCoordinates, out spherical_coordinates lSphericalCoordinates)
        {
            // Quick radius calculation using multiplication
            float radius = math.sqrt(lCartesianCoordinates.x * lCartesianCoordinates.x + lCartesianCoordinates.y * lCartesianCoordinates.y + lCartesianCoordinates.z * lCartesianCoordinates.z);

            // Convert to lat/lon and transfer radians to degrees space
            float lat = math.degrees(math.asin(lCartesianCoordinates.z / radius));
            float lon = math.degrees(math.atan2(lCartesianCoordinates.y, lCartesianCoordinates.x));

            // Build structure
            lSphericalCoordinates = new spherical_coordinates()
            {
                latitude = lat,
                longitude = lon,
                radius = radius
            };
        }

Powyżej przykład kodu spełniającego te warunki 😉 [C#]

Od ręki odpowiem, że litera l oznacza współrzędne lokalne (względem położenia danego obiektu), a litera w oznacza współrzędne zorientowane wobec punktu [0, 0, 0] oznaczającego środek trójwymiarowej przestrzeni euklidesowej (założenie: w przypadku koordynatów sferycznych punkt centralny jest tożsamy z punktem [0,0,0] w koordynatach kartezjańskich).

Edytowano przez H1M4W4R1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...