Moja odpowiedź jest taka: Asembler - ciężki, na różne rodziny mikrokontrolerów musisz się uczyć innego (minimalne różnice), różne rodziny mają różną architekturę, ciężki do dużych projektów, ale za to pełna "kontrola" nad układem:D C - praktycznie na każdy mikrokontroler wygląda tak samo, drobne różnice polegające na innych bibliotekach, typach danych,...
No po prostu w RAMie, nie mowmy juz w jakim, to nas zreszta nie interesuje, jesli mamy mikrokontroler z pamiecia wewnetrzna avrki chyba maja, prawda?? :wink: Wlasnie tak zostanie to wykonane. Dane beda w rejestrze i tam bede sie "dodawac", natomiast w samej pamieci bedzie siedziec stara wersja. Dopiero po zakonczeniu kompilator prawdopodobnie zapisze...
Tak, to dobra metoda, w takiej sytuacji tablica jest deklarowana jako ciągły obszar w pamięci i jest mapowana do tablicy 2W. Te "zabawy" ze wskaźnikami miały Ci to tylko uzmysłowić różnicę między t[y, x], a t[y][x], nikt przy zdrowych zmysłach takiego zapisu nie stosuje. Zapis tab[100][100] jest tożsamy (po wyłączeniu rangecheck) z *(*(t+100)+100) i...
https://obrazki.elektroda.pl/2384864900_... Często się słyszy, że kiedyś czasy były lepsze, że PRL nie był taki zły, a wielkie przedsiębiorstwa w rodzaju Unitry, Elwro, CEMI czy nawet FSO robiły wspaniałe rzeczy, tylko potem ten przebrzydły i zgniły Zachód raczył polski przemysł zniszczyć z zazdrości i w ramach zwalczania dobrego....
https://obrazki.elektroda.pl/1570592100_... Witajcie, zapraszam na relację z konstrukcji zegara na PIC18F2550 napisaną w formie tutoriala, wszystko krok po kroku. Pokażę tu jak i z czego tworzyłem prosty projekt DIY na prośbę jednego z czytelników. Wykorzystamy tu wyświetlacze 7-segmentowe, rejestr przesuwny, obsłużymy przyciski a...
https://obrazki.elektroda.pl/7656017200_... O komputerach jednopłytkowych czy stare komputery były lepsze od współczesnych platform rozwojowych i SBC? Nie lubię Arduino I to jest jak najbardziej prawda. Arduino to platforma, która miała dać łatwy dostęp do programowania elektroniki ludziom, którzy nie znają się ani na elektronice,...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
Jak dla mnie kod jest bardziej przejrzysty niż jakaś "pajęczyna". CPU wykonuje kod maszynowy instrukcja po instrukcji, w wysokopoziomowym języku programowania kod jest wykonywany linijka po linijce, więc jest to dobra analogia do tego co się dzieje w samym CPU. Jaka pajęczyna? robisz blok po bloku, i je łączysz... W graficznym też pętle są wykonywane...
Pokaż proszę w czym jest lepszy od C++, to wtedy podyskutujemy. Większość moich wrażeń - pozytywnych i negatywnych opisałem w pierwszym poście. Różnic w stosunku do C/C++, albo Javy jest tyle, że można książkę napisać. I to grubą. Ten język wymusza/zachęca do stosowania pewnych praktyk, które eliminują największe wady C/C++. Konsekwencją tego wprowadza...
mam taki domysł, że wątek się źle zaczął i kontynuuje. Stawiam tezę, że nie chodzi o "RTOS" na każdym kontrolerze, ale również o schedulery i inne bardziej niskopoziomowe realizacje, tylko tak obejmie się "wszystkie kontrolery" Obiema ręcyma za tym głosuję. A umacniają mnie dobre wyniki. Na Atmedze 8 posadziłem własny scheduler, obsługa portów typu...
Jakie było ich zdziwienie że kompilator nawet C durny nie jest i jeśli zna wartości w czasie kompilacji to je wykona, a nie wstawi wszystkie obliczenia w ciemno do kodu. Ale oni już o tym nie pamiętali, lub nigdy się tego nie nauczyli. To że kompilator to robi w C to tylko dobra wola tego kompilatora. Aby się przekonać o tym czy to zrobił musisz albo...
Witam. Dzialaja obie wersje. Ale ta mi bardzie pasuje z zalozeniami teortycznymi co jest podane w opisie firmowym do modulu RFM65W. Ale Twoja zasluga tez jest w tym temacie. Bo duzo pomogles atom1477 i nanoTECHNO bo sam za malo znalem BASCOM-a. Mam kolegow, ktorych zachecam do nauki BASCOM-a na poczatek na wlasne potrzeby Teraz juz duzo sie nauczylem...
Niemniej jednak wg mnie darmowy kompilator jest ważny. Z prostego powodu - praktycznie każdy elektronik czy programista embedded jednak kiedyś zaczynał. No więc jjest darmowy kompilator (SDCC) i płatny który nawet w wersji free który radzi sobie całkiem nieźle ( nawet lepiej niż ten darmowy) to czego brakuje dla początkującego? Więc ktoś pisze, że...
http://obrazki.elektroda.pl/1640311700_1... dobra , nie mam pojęcia jak w takim programie kompiluje
To jest wbrew pozorom bardzo dobra rada. Zaraz postaram sie sciagnac jakis kompilator do C to zobacze co da sie zrobic.
Tylko tak Ci się wydaje, że kompilator tego się czepiał. Popatrz na definicję _BV - to to samo, co miałeś. Problem był zapewne gdzie indziej. Poszukiwanie magii w kompilatorze to nie jest dobra metoda na poprawianie programów. Działa bez return, bo Twoja funkcja nie zwraca wartości odczytanej z SPI - instrukcja return jest potrzebna, gdy funkcja ma...
Dobra kasuje AS z sp2 Będę instalował AS z sp1 Czy diverów samych nie mogę podmienić ?
(at)dondu czytałem ten fragment pdf'a i próbowałem czytać "po jednym" i jako 16bit po sobie, same zera, poza tym w tej samej dokumentacji jest napisane że przy pisaniu w C kompilator ogarnia dostępy do tych rejestrów i też tak wynika z moich dotychczasowych doświadczeń. Poza tym szybka praca licznika wskazuje na to że nie jest to problem tylko z odczytem....
Proszę bez ignorancji mi tu. Jeżeli pisałbym w asemblerze to jest to moja niech będzie ignorancja. Ale używam języka wysokiego poziomu i skoro ten kompilator napluje na mnie jak będę chciał zapisać word do byte w zmiennej to nie rozumiem dlaczego nie pluje jak chcę zapisać word do byte w rejestrze licznika. Oczywiście zgadzam się z tym że jest to mój...
Ja tu nie widzę błędów i kompiluje pierwszym lepszym online compilatorem. Sprawdź w ustawieniach IDE czy masz dobra ścieżkę do kompilatora
Pozostanę przy wersjach ograniczonych i asemblerze. No i jeszcze znalazłem SDCC (czy jakoś tak) ale coś mi ciężko idzie rozgryzanie tego kompilatora. krotko o sdcc - generuje kod o dosc dobrej jakosci ale trzeba niestety poswiecic troche czasu na przegladanie listingu assemblerowego i wyszukanie najbardziej optymalnych zapisow programu. Polecem raczej...
Nie wiem dlaczego sądzisz, że czym innym jest w tym wypadku uznanie za zegar sygnału tmp niż sygnału in1? nie wiem, czy dokladnie rozumiem pytanie; sygnal tmp tym rozni sie od in1, ze in1 jest w linii: if rising_edge(in1) then a tmp nie; --------------------------------- Kompilatory radzą sobie z tym bez problemu produkując ten sam wynik (sprawdzone...
Nie ma to jak uczyć parkowania na wyścigówce formuły 1 ... Ja rozumiem ASMa przedstawić żeby można było choć trochę zrozumieć co generuje kompilator i jak różne konstrukcje generują różny kod choć funkcjonalność jest identyczna. Problemem wielu uczelni jest zbyt duży nacisk na ASM przez co po pół roku studenci potrafią migać diodą, obsługiwać klawiaturę...
Tutaj mam pewne wątpliwości co do strukturalności i behawioryzmu, bo jak narysuje taki schemat to po kompilator pokazuje, że zużyłem zero elementów logicznych, więc wychodzi na to, że narzędzie syntezy łączy te piny bezpośrednio, bo "dochodzi do wniosku", że ten układ nic nie robi Rysowanie schematu to tylko jedna z metod "design entry". Opisałeś w...
Przykladow az mnozy sie w sieci, kazda dobra ksiazka opisuje to czego szukasz. Moze w koncu uzyjesz google. Pokaz jakie bledy wtrzucal kompilator wtedy sprobuje pomoc.
(at)excray wiesz co? nie wiem :) w sumie rzeczywiście to by mocno uprościło wiele działań. łącznie z rozwiązaniem tego problemu. chyba z rozpędu albo z zamroczenia. to są stonie i dziesiętne stopnia. ale przy incie moge sobie pozwolić na przemnożenie o 10 i to co po przecinku będzie przed przecinkiem i też będzie. chociaż chyba dlatego właśnie zostałem...
zapisy te (1 i 2) z punktu widzenia C wyglądają na równoważne. Może spróbuj to co masz w nawiasie zrzutować na typ wskaźnikowy... *( (char*) (wsk_ramki+i) ) Dobra metoda, jest zawsze sprawdzić jak to wygląda w asemblerze (co kompilator zrobił z naszego kodu).
Dobra niby się tworzy i znalesc go mogę w folderze debug. Niestety gdy chce wprowadzić jakieś zmiany w programie np. Kolor święcenia ledow i skompilować aby otrzymać nowy plik hex. To po wgraniu pliku hex poprzez mkAVRcalculator do mojej Attiny efekt zawsze jest taki sam jak za pierwszym razem. Tak jakby plik hex w ogóle się nie zmieniał. Dodano po...
Bardzo dziękuję. Zaprogramowałem układ - działa zgodnie z oczekiwaniami. Testowałem na win7 (driver zainstalował się z automatu) oraz CCS64 v3.9. Polecam - dobra zabawa. Czekam jeszcze na joystick "z epoki" - okazało się że po ok. 25 latach wciąż są produkowane joysticki "skorpion". Szok. Wszystkim bardzo dziękuję za pomoc. Problem rozwiązany, temat...
To trzeba wyjaśnić na czym polega dobra praca techniczna/konstruktorska/inżynierska. Nie polega ona na robieniu tego co można zrobić osobiście najlepiej jak się tylko to da zrobić najlepiej. Lecz o robieniu najlepiej w ogóle ale niekoniecznie osobiście. Oraz o wykorzystywaniu znanych sobie metod na rozwiązanie różnych problemów. Różnych metod, często...
Jako kompilator poleciłbym SDCC. Zalety: OpenSource, rozwijany, wspiera wiele architektur 8bit (m. in. 51, PIC, Motorola, ST w jednym programie), dobra dokumentacja. Wady: Ze względu na kompromisy przy wspieraniu wielu architektur optymalizacja kodu bywa gorsza niż dedykowanych rozwiązań, trzeba samemu integrować z jakimś IDE Albert
->Freddie Chopin Sprawdź rdenie MIPS, ktore obsługują bankowanie rejestrów... Skoro dla kodów w C nie ma to żadnego znaczenia, to po co ten stos jest? CM3 ma TRZY osobne stosy :]... Z poprzedniego wywołania funkcji?...static versus global?... Dobra - to wyjaśnijcie, do czego służy volatile? Nie przypadkiem do tego, żeby kompilator pilnował wartości...
A co mówi kompilator na zapis c = 'dg' - czytałeś ostrzeżenia? W języku C++ ten zapis oznacza: podstaw pod zmienną c, która może przechowywać 8 bitów, stałą 16-bitową powstałą przez sklejenie kodów liter c i d. Wartość tego zapisu jest zawsze niezerowa, więc zawsze wchodzisz po pierwszy if(). Co robi wywołanie funkcji loop() w funkcjach goradol() i...
Panowie , oczywiscie dzieki za wasze wszystkie rady , sprawdzilem je wszystkie kolejno niestety bez rezultatu. Co sie okazalo w kodzie definiowalem tam #define MSG_SIZE 15000 byl maxymalny rozmiar bufora odczytu przez USB wyszlo na to ze przegiąłem z ta liczba i to ona nadpisywala mi w pamieci dane. bufor ten niebyl brany po uwage w programie bo byl...
Niedefiniowany. Czyli nigdzie niezadeklarowany. Wtedy komilator to widzi jako 0. Jak coś jest niezdefiniowane to kompilator widzi to jako error. Jeśli symbol jest bez wartości to kompilator (preprocesor raczej) MOŻE widzieć to jako 0, ale jest to tylko dobra wola implementacji której używasz (gcc), bo wcale tak nie musi być. Innymi słowy: // początek...
Zgadza się, trafiłem jednak kiedyś na informację, że kompilator niekoniecznie musi się tego trzymać, tak jak w przykładzie Wg info które znalazłem, kompilator taki nie spełnia założeń standardu, które mówią że w przypadku && ma byś wykonane od lewej do prawej. http://stackoverflow.com/a/38770652/1573... 6.5.13.4 Unlike the bitwise binary & operator,...
No to i ja sobie nieśmiało pozwolę poprosić kolegów o radę. Powoli przymierzam się do przejścia z AVR na ARM. Chciałbym, aby to przejście było w miarę bezbolesne. Pytanie, co wybrać. Prawdę mówiąc poczytałem już co nie co i mam dwa typu: NXP oraz STM, przy czym skłaniam się raczej do tego pierwszego. Wymagania: - jedna z najnowszych lub najnowsza architektura...
No dobra ale z resztą się z Tobą zgodziłem. Kłopot akurat by był mały, bo dotyczył by nieodpowiedniej częstotliwości generowania przerwań, a nie całkowitego niedziałania programu. Z doświadczenia wiem że najwięcej kłopotów wynika z niedziałania kompilatora lub z błędnej interpretacji działania kompilatora przez człowieka. W tym przypadku kompilator...
Dobra mój błąd niech zostawi FAR. Puki co nie wykorzystywałem procesora z > 64kB. A z pobieżnego przeglądu pliku pgmspace.h wywnioskowałem, że kompilator sam dobiera odpowiednia funkcję. Dobrze wiedzieć, że jednak nie. Ale przy tak wielkich stałych tablicach, ja jednak wykorzystał bym zewnętrzny EEPROM. To tylko moje skromne zdanie.
Każdy pisze jak lubi albo jak mu każą. Każda konstrukcja jest dobra jeżeli piszący wie co ona robi, i umie ja zastosować. if (x) x=1;; else x=2; to znaczy że kompilator nawet nie zawiesił na tym swojego oka. Warningów moze nie być, będą błędy. O ile mnie pamięć nie myli to chyba nie ma różnicy w ANSI C jeżeli chodzi o "empty statement"
Jest zasadnicza różnica pomiędzy tymi deklaracjami. Obie z pozoru maja robić to samo. Pierwsza inicjuje zawartość tablicy wprost, wartościami dla wygody podawanymi jako znaki. Kompilator a dokładnie linker zbiera wszystkie inicjowane zmienne "do kupy". Umieszcza je w obrazie a następnie, tuż po starcie specjalny kod (czasami kompilator go generuje,...
Może znasz jakieś dobre książki, które krok po kroku tłumaczą cały język? Symfonia tak jak pisałem dobra jest, ale dla kogoś kto miał już do czynienia z programowaniem np w pascalu. No fakt w internecie nie ma czegoś dobrego tzn na pewno trochę wiedzy jest, ale jednak książka to książka mniej oczy bolą przy czytaniu i przy okazji można sprawdzać na...
(at)rezasurmar Niestety nie zgodzę się do końca z tym co piszesz i w pełni popieram słowa kolegi gaskoin. Nie da się programować mikrokontrolerów bez znajomości C, chyba że programowaniem nazywamy coś w stylu klejenia z gotowych bibliotek. Gdzie osoba robi to na chybił trafił - a nuż może zadziała. Jednak jak pokazuje życie i wiele postów na tym forum...
//edit Wlasnie jak widze kolega przerobil kod na C++. W jakim zatem jezyku chcesz pisac i co chcesz pisac? Skoro piszesz w C nie musisz wcale wstawiac linijki: using namespace std. Wystarczy ze stworzysz projekt C a nie CPP i wstawisz swoj kod. Do nauki C polecam swietna ksiazke "Jezyk ANSI C". Do C++ dobra jest "Inzynieria programowania w C++" czy...
w assemblerze mozna zaoszczedzic troche kodu i troche szybkosci - to fakt, tyle ze niekoniecznie jest to warte zachodu, ale to juz temat na inna dyskusje <: w kazdym razie - jak jest potrzeba, to latwo zrobic wstawke asm, albo napisac cala funkcje w assemblerze i uzywac jej spod C. co do tematu - kompilator sam przestawia linijki. racja - czasem...
No jeśli chodzi o te na nazwy plików/katalogów to chyba rzeczywiście nie muszą. Przerwania po nich 'nie piszą'. A czym 'grozi' zadeklarowanie ich jak volatile? Widziałem w tym fragmencie, co podawałeś z wiki, że zmienne zadeklarowane jako volatile są jakoś specjalnie traktowane przez kompilator pod względem odczytu/zapisu. Na czym to polega? Hmm...może...
Z tym LPM to różnie bywa. Samo LPM bez parametru zadziała na pewno i kompilator też przyjmie. Nowe LPM z dowolnym rejestrem to dobra sprawa ale ja z tego nie korzystam, nie chcę niespodzianek. Podsumowując do danych: R26-R27 wskaźnik dla tablicy w RAM / odczyt LD, LDS, LDD / zapis ST, STS, STD R30-R31 wskaźnik dla tablicy we FLASH (czyli pamięci programu)...
No więc sprawa wygląda tak: 1) Po zmianie jakichkolwiek ustawień używam teraz opcji clean, ale nic to nie zmienia. 2) FPU jest włączane w SystemInit() (Krotki pisał już o tym w jakimś wątku, więc sprawdziłem), ale faktycznie nie było to uruchamiane, bo plik startup miał rozszerzenie .s zamiast .S i kompilator w ogóle go nie łykał (co ciekawe, w TrueStudio...
Zgadzam sie z Toba. Ale dla poczatkujacych kompilator wywolywany z linii polecen jest czyms niezrozumialym. To jest bardzo dobra zabawa dla juz nieco zaawansowanych wyjadaczy. Z PASM-a tez korzystalem 7 lat temu jak ten zestaw wyszedl i to bez windowsa tylko w "norton komanderze" napisalem sobie "makra" Teraz jest tyle przyjemnych darmowych narzedzi...
stdbool.h przeoczyłem, sorry. to teraz przejdź z Debuga na Release i zobacz czy nadal wszystko działa, imho raczej się posypie, bo d1 i d2 powinny być volatile. A tak w ogóle: kompilator masz z CodeComposera, czy MSPGCC? Bo jak ten pierwszy, to owszem, i bez volatile'a może podziałać, defaultowe opcje optymalizacji puszczają tam takie cuda, ale to nie...
bascom kompilator cross kompilator atmel kompilator
elektryczna skrzynka bezpieczniki elektryczny ciągnik rysować paint
Resetowanie pilota Pioneer XXD3184 - instrukcja krok po kroku Electrolux EW6 PerfectCare – tryb serwisowy, wejście, kombinacje przycisków, kasowanie błędów