To czy i w jakim stopniu RAM mikrokontrolera pośredniczy w wymianie danych z LCD zależy od programu/bibliotek do LCD. Można operować bezpośrednio na pamieci wyświetlacza, jak również na buforze w pamięci RAM mikrokontrolera i ten bufor cyklicznie albo po modyfikacji przesyłać do LCD. ATMega32 powinna spokojnie wystarczyć do operacji bezpośrednio na...
Już za kilka dni muszę oddać moją pracę dyplomową. Moim problemem jest zbyt duży rozmiar kodu i jeśli nie zoptymalizuje programu to nie umieszczę w nim wszystkich założonych funkcji. Czy ktoś ma pomysł jak zaoszczędzić trochę pamięci patrząc na mój kod? (na program skłąda się jeszcze biblioteka do obsługi wyświetlacza z Nokii) #define _MAIN_MOD_ 1 #define...
temat wałkowany już kilka krotnie. funkcje delay mają argument typu float jeśli podajesz zmienna jako argument do dodajesz również operacje zmiennoprzecinkowe na tej funkcji które .... dają efekt jaki uzyskałeś
prokopcio: tak, pod warunkiem, że ten plik nie został dograny na kartę po jakichś wcześniejszych bojach z innymi plikami, bo wtedy może ulec sfragmentowaniu i nici :/ Ale zapisując od razu po formacie taki plik na karcie możesz być spokojny - będzie w całym kawałku :) Potem wystarczy, że tego pliku nie będziesz usuwał ani zmieniał jego rozmiaru na kompie.
Petit Fat w żaden sposób nie powiększa rozmiaru pliku, po prostu nie modyfikuje tablicy FAT.
Witam, problem jak w temacie, po wyfrezowaniu (wierceniu) nie zgadza się rozmiar elementów np AtMega 8 ma 21mm zamiast 34, wszedzie jednostki ustawione na mm. Frezarka której używam to 3018. Wersja eagle to 9.6.2. https://obrazki.elektroda.pl/6784846500_... https://obrazki.elektroda.pl/1429170400_...
Zakłada, że rozmiar płytki i umieszczenie USB od spodu, są z góry z jakiś powodów wymuszone. Jeśli nie to płytka mogła by być mniejsza. Co do schematu to nie znam założeń do czego ta płytka, ale sygnały ze złącza USB warto by zabezpieczyć jak i ekran złącza nie podpinać bezpośrednio do masy. Tu masz płykład https://forum.arduino.cc/t/why-usb-shiel...
Już nie pamiętam, ale do tych driverów można słać dane dość szybko, Moja ATmega pracuje z 16MHz ale nie było sensu bić tu rekordów prędkości SPI, Jeśli mnie pamięć nie myli to zegar SPI był 1MHz, Niestety program mam na komputerze daleko stąd więc nie sprawdzę, Program to nic ciekawego ale jeśli chcecie to jak będę w domu to zgram i się podzielę nim...
Zapytałem z ciekawości ponieważ np moduły ZigBee mogą tworzyć sieć o rozmiarze 65535 modułów
Skoro te funkcje nie są używane, to błąd masz gdzieś indziej. Weź pod uwagę to, że rozmiar tej tablicy wpływa na lokalizację innych zmiennych i pewnie to generuje jakiś problem. 4\/3!!
Odpowiedź jest niby prosta, wyslij po prostu "zmienna" nie używając sprintf. Pytanie jaki rozmiar ma owa "zmienna"?
mi zależy na grafice (głównie linie (nie koniecznie poziome), przy okazji znakach), tu już chyba atmega jest za wolna ? przy 'pisaniu' znaków jedynie 'przekopiowujesz' 'matryce' znaków na wyjście ? czy Twoje znaki mogą mieć mniejszy rozmiar niż ~8x8 ?
Pokaż ten program.
Tak na marginesie, i nie po to, aby wywoływać flame'a tylko dla promocji: W każdym linuchu (nawet takim samopale z CD) sprawę załatwi polecenie z konsoli: dd if=plik of=dysk bs=rozmiar_sektora seek=numer_sektora_od_0 Albert
Datasheet mają wspólny. ...i jest w nim rozdział: Comparison Between ATmega48, ATmega88, and ATmega168 . Dodatkowo proponuję zwrócić uwagę na listę instrukcji, bo niektóre są dostępne tylko w ATmega168 (np. JMP). Przykładowo, mam aktualnie ATmegę168, chcę wgrać program z ATmegi88. Biorąc pod uwagę, że wektory przerwań mają inne rozmiary, raczej wątpliwe,...
Kwarc 16Mhz, program pisze na Atmega 8 wiec na pewno OC2 odpowiada pinowi PB3. A wartosc _0_0125ms wynosi 24, wiec nie przerkacza rozmiaru licznika. Jakies inne sugestie ? :)
http://obrazki.elektroda.pl/9824916400_1... Witam, Korzystając z ostatnich wolnych dni przed studiami chciałbym zaprezentować moją ostatnią konstrukcję. Jest to mały przenośny barometr. Konstrukcja powstała na potrzeby osoby wrażliwej na zmiany ciśnienia oraz spełnia jej wymagania tzn. mały rozmiar( 20x40x9mm) oraz co się z tym wiąże...
Wyjeżdżasz z indeksowaniem tablic poza ich granice - jeśli tablica ma rozmiar 4 x 1 to znaczy, że możesz indeksować jej elementy od 0 do 3 w jednej płaszczyźnie i tylko 0 w drugiej. Rozmiar tablicy to ilość jej elementów, a że w C indeksowanie jest od 0 to możesz dojść z indeksem tylko do rozmiar-1.
Jeśli chodzi o goto, to w C nie użyłem go ani razu - od 20 lat... A co do "makr", czyli funkcji inline - zależy od sytuacji. Jeżeli potrzebujesz funkcji, która jest krótka, a czas jej wykonania jest krytyczny - używasz inline. Jeżeli jednak czas nie jest aż taki krytyczny, nie robisz tego - zyskujesz wówczas rozmiar kodu mniejszy.
To jest mikroprocesor więc możliwości programistyczne wyznacza tylko umiejętności i wyobraźnia programisty oraz rozmiar pamięci a ten model ma 2kB FLASH. A co do samego programowania to ma całkiem sympatyczny asembler, ale też możesz pisać w C. Oprogramowanie jest darmowe.
Nawet w modelach lotniczych waga samego mikrokontrolera nie gra roli tak długo jak mówimy o SMD (...) Rozmiar tak samo. ATmega 8 SMD jest na tyle mała że nie ma to znaczenia. W zasadzie dopiero ATmega64 i pokrewne robią jakąś (nadal nie dużą) różnicę. Ale w modelach lokomotyw rozmiar ma znaczenie. Czy w skali N zmieści się TQFP32? Zmieści, ale nie...
Czy można jakoś wprowadzić parametr do strtod aby zaczynał z innego miejsca niż początek zmiennej? Użyj sscanf i odpowiedniego ciągu formatującego. No tylko, że domyślnie sscanf nie zawiera obsługi formatów zmiennoprzecinkowych. A włączenie jej "nieco" zwiększy rozmiar kodu wynikowego.
janbernat, dziękuję za pomoc :) Wszystko co opisałeś poprawiłem - powinno hulać, ale niestety jest tak jak na początku, program nadal nie działa. zastanawiam się ciągle nad tym o czym pisałem wcześniej: program nie działa gdy w funkcję wstawię dwa wiersze: L=1000; L=1; natomiast gdy to usunę to wszystko chodzi tak jek powinno. (zauważyłem, że gdy pamięc...
zrób sobie unie: union dane { float f; unsigned int i; }; Zakładając, że float i uint mają ten sam rozmiar (sprawdź to) wpisując do float'a liczbe jaką chcesz, dostaniesz jej odwzorowanie bitowe w uint'cie. A dalej już jak wyżej.
Atmega 2560 , a gdzie się podłączyć ?
http://obrazki.elektroda.pl/2762225800_1... Jedyny taki przenośny programator układów AVR. Pomoże wszędzie tam, gdzie trzeba zaktualizować oprogramowanie, a układ docelowy znajduje się w trudno dostępnym miejscu i nie mamy możliwości (lub chęci) ciągać ze sobą laptopa i mnóstwa przewodów. Banalnie łatwa obsługa, niski koszt wykonania, super...
Dobrze, rozumujesz. Mając mikrokontroler z wbudowaną obsługą CAN potrzebujesz tylko transcievera CAN. Aczolwiek skoro mowisz o małym rozmiarze, może jakiś mniejszy procesor. Jeśli koniecznie AVR to może np coś ala ATMEGA16M1? Tańszy i mniejszy. A z ciekawości zapytam, jakie auto? Też coś podobnego rozkminiałem, ale skończyło się tylko na łapaniu sygnałów...
Witam, Muszę zmierzyć poziom ceczy 0-100% Myślałem nad czujnikiem CPPA-R1... 4-20mA (http://www.eiewin.com.pl/testjoomla/ind... Mam jednak problem z układem pomiarowym. Jak najlepiej wykonać pomiar tego typu? Dodam, że problemem jest konieczność zasilania bateryjnego, stąd chęć usypiania uC i pomiar...
sprintf to dość potężna funkcja co jest okupione i szybkością, i rozmiarem zajmowanego miejsca, jak kolega Piotrus_999 zdążył napisać "taniej" będzie użyć utoa() i w zasadzie w tym przypadku wcale nie mniej wygodnie. A bufor c[] można wykorzystać dla różnych wielkości wielokrotnie.
Kurcze tylko mam kolejny problem bo mój program zajmuje już 40kb a będzie dalej rozbudowywany. Więc mnie blokuje znowu wersja demo. Chyba będe musiał zostawić tą atmege i zakupić atmegę64 i przegladnąć program i go jeszcze bardziej zmodyfikować, żeby zmniejszyć rozmiar. Dziwne jest to że mam wersję Bacoma 2.0.7.3 i tam również nie ma. Nie bardzo rozumiem...
Opis konstrukcji Tester powstał w celu nauki rysowania schematów w Eagle oraz nauki podstaw programowania mikroprocesorów. Dodatkowo jest małych rozmiarów. Po raz pierwszy zastosowałem elementy SMD. Schemat: https://obrazki.elektroda.pl/9539214500_... Widok PCB z EAGLE: https://obrazki.elektroda.pl/8189126400_... A...
Nie ma takiej zależności. Rozmiar stosu jest zależny od ilości zmiennych automatycznych i "łańcucha wywołań". 4\/3!!
(at)R-MIK Czytaj, proszę, ze zrozumieniem i bez nerwów. Pamięć NOR-flash jest względnie powolna i jest głównym ogranicznikiem taktowania rdzenia. Dodatkowo wymaga bardzo dużo miejsca na powierzchni układu, a jej skalowanie (zmniejszanie) jest bardzo kosztowne. Wielu producentów stosuje pamięć o szerokości znacznie większej niż szerokość magistrali...
Dzięki za odpowiedź. Programator USBASP 2.0 Q1 to pewnie 9014 lub 9015 zależnie jak z otoczenia wychodzi czy NPN czy PNP. PNP, po usunięciu zwarcia postawiłem 2SA950 i uzyskałem działanie podświetlenia ekranu po naciśnięciu przycisku test. Co to może być ten U3 jak wyglądają połączenia z innymi elementami Nie mam czasu się bawić w rozrysowywanie. czy...
Przyczyna jest w tych linijkach Trzeba też pamiętać, że jeżeli zdefiniujemy tablicę n elementową i spróbujemy zapisać coś pod indeksem równym lub większym n to kompilator nie zgłosi błędu, ale skutkować to może nieprawidłowym działaniem programu.
I zależy też od tego na jaką optymalizację kodu sobie możesz pozwolić. Optymalizując można zmiejszyć rozmiar "wsadu" 30-60% (zależnie od programu i typu optymalizacji), a to sporo. Trzeba jednak pamiętać, że optymalizują się również pętle, więc o dokładnych delayach zrobionych na pętlach można zapomnieć.
Czy znacie moduł zgodny z Arduino z interfejsem Ethernet zbliżony do ESP8266 pod względem: -ilości RAM -poboru mocy -wielkości -szybkości CPU -ilości FLASH -ceny ? O ile jestem świadom, nie ma takiego. Poza tym rozmiar komponentów potrzebnych do obsługi ethernetu już sporo przewyższa rozmiary całych modułów ESP. Oczywiście można podłączyć ENC28J60...
Oczywiście że prościej dla mnie użyć teminala niż samemu dłubać przy programie na PC. Al wydaje mi się że aby iść po najmniejszej linii oporu to chyba prościej napisać swój programik i jakiś własny protokół. Ma to być maksymalnie proste. Biblioteka umożliwia aktualizację plików ale nie pozwala zmieniać rozmiaru plików i tworzyć nowych.
Pliki można przesyłać protokołem Xmodem , Ymodem , Zmodem ten pierwszy nie przesyła nazwy i rozmiaru pliku ale kolejne już tak . Y i Zmodem posiadają też sumę kontrolną CRC-16 więc będzie pewność że pliki przesłane są prawidłowo . Jest jeszcze protokół "Kermit" Zorientowany pakietowo i wydajniejszy od X,Y,Zmodem . Za pomocą tych protokołów pliki można...
Płytkę zrobiłem celowo dużą aby na nią mógł zostać zamocowany wyświetlacz, więc rozmiar płytki jest przemyślany.
Tzn programy kompilują się do normalnego hexa. Teraz już nie pamiętam, ale jakoś wciskało się ctrl+shift i myszą klikało w Verify i wtedy w okienku na dole gdzie lecą komunikaty o rozmiarze pokazywała się ścieżka do katalogu temp zawierającego naszego hex'a (w gąszczu innych informacji). EDIT: dokładnie Shift + myszką Verify w starszych wersjach, a...
Witam, Bufor nadawczy jest o rozmiarze jednego wysyłanego znaku (tak na prawdę jest to rejestr przesuwny samego UARTu). Zapisując dane do UDR jeśli bufor nadawczy jest pusty to od razu jest przepisywana do niego dana i rozpoczęcie transmisji. W innym przypadku jeśli w UDR są nowe dane a nie wszystko zostało wysłane to sprzęt czeka aż się wyślę i przepisze...
1. Używasz nowych wektorów przerwań, ale starej funkcji SIGNAL. Zamiast niej używaj ISR(): http://www.nongnu.org/avr-libc/user-manu... 2. Zmienna accumulator jest 16-to bitowa a nie dbasz o sprawdzanie, czy już przekroczyła rozmiar tablicy. 3. Poza tym, jaki sens mają dwa przerwania, skoro przerwanie od Timer2 opiera się o...
Szukam czegoś do smd o rozmiarze >0802 (jak dobrze pamiętam rozmiar) itp. Jakieś scalaki pokroju atmega itp :) ale mówie o rozmarach nie mniejszych :). Szukam też czegoś co odpowiadało by tak sławnemu grotowi typu minifala I trochę poza tematem, znalazłem coś takiego: http://allegro.pl/stojak-do-miniwiertark...
A ma ktoś pomysł na wysyłanie większej ilości pakietów w celu przesyłania strony html o większym rozmiarze? Obecnie wszystko odbywa się za pomocą jednej ramki danych.
[syntax=c]if (poz_odczyt > ROZMIAR) { poz_odczyt = 0; }[/syntax] tablice w C są indeksowane od zera. Jak masz rozmiar = 3 to ostatnim indeksem tablicy jest 2. Powyższy kod powinień więc wyglądać tak: [syntax=c]if (poz_odczyt > ROZMIAR - 1) { poz_odczyt = 0; }[/syntax]
String to znaki ASCII, więc ustawiasz sobie 2 znaki (2 wartości bajtu) spoza używanego obszaru ASCII i traktujesz je jako stop i start. Algorytm wygląda tak: 1. Czekam na bajt start (lub wykrywam jego nadejście w odpowiednim przerwaniu) 2. Otrzymałem bajt start - zaczynam odbiór 3. powtarzam w pętli (dopóki nie otrzymam bajta) stop: a) odbierz znak...
czasem problemem okazuje się niestała stała - tablice stałych można przypuszczać, że będą tylko w pamięci flash - przeważnie okazuje się, że kompilator owszem zapisuje sobie tablicę w pamięci flash, ale z początku programu kopiuje sobie ją do ramu - w ten sposób można się odwoływać do komórek takiej tablicy jak do zwykłej pamięci ram (przestrzeń). Może...
To są szalency - sprzedają niby lepsze taniej :) To popatrz na XMEGi - jeszcze lepsze i zazwyczaj tańsze niż ATMega. A rozwiązanie zagadki jest proste - inny proces technologiczny, mniejsze rozmiary układu na krzemie to więcej układów na jednym waflu, lepszy uzysk i w efekcie niższa cena. Poza tym konkurencja też ich przyciska.
Dziękuję za odpowiedzi. Jak zwykle okazało się, ze proste pytanie nie jest takie proste. Mimo, że arturdip twierdzi inaczej, chyba jednak zastosuję tranzystor. Podam więcej szczegółów. Atmega oraz przekaźnik będą na osobnych płytkach. Znaczenie ma rozmiar, dlatego chciałem uniknąć prowadzenia dodatkowego przewodu zasilającego do przekaźnika. Nie jest...
Kompilator nie protestuje, bo automatyczne zmienne są umieszczane na stosie, a rozmiar tego jest kompilatorowi i linkerowi "nieznany" zasadniczo. 4\/3!!
http://obrazki.elektroda.pl/4553573800_1... Przy tworzeniu projektów z mikrokontrolerami, oprócz uniwersalnych płytek stykowych, często przydają się gotowe moduły testowe, które można szybko podłączyć. Można kupić takie w wielu sklepach, ale ich ceny są na ogół absurdalne, np. w Kamami sprzedają płytkę z ATmega128 za 109 zł! Poniżej...
Ja bym postarał się o mniejszy rozmiar chyba że to do testów i w razie zablokowania procesora...
Jakakolwiek komunikacja bez kontroli danych jest do wyrzucenia. Co do pamięci to chyba powinieneś dopasować się do rozmiaru sekcji bootloadera w pamięci flash danego procesora ;)
http://obrazki.elektroda.pl/7819079000_1... Witam. Przedstawiam kolejną konstrukcję wyświetlającą modele 3D. W tym projekcie mikrokontroler odczytuje modele zapisane w formacie OBJ bezpośrednio z karty pamięci typu RS-MMC lub SD. Całość pełni funkcję miniprzeglądarki modeli OBJ. Wybrany model po wczytaniu jest skalowany do rozmiarów...
To nie mikrokontroler "marnuje pamięć", a źle napisana biblioteka. Kod na uC 32-bitowy na ogół nie jest dłuższy niż odpowiadający mu kod na uC 8-bitowy, bo to samo da się zrobić mniejszą liczbą operacji. Za jakość bebechów biblioteki odpowiadają jej autorzy. Projekty, które na STM32 robią dużo więcej, niż da się zrobić na śrenim ATmega, na ogół zajmują...
Witam! Poszukuję ekranu led, w dobrej cenie. Rozmiar minimum 2x16. Jeśli możliwe jest proszę także o Atmega 8 :) Marka, typ i inne - wszystko obojętne, ważne by działało. Jeśli jest, prosiłbym też o adres aukcji na allegro :)
W sytuacjach, kiedy łączny rozmiar kodu wynikowego Twojego programu wraz z bootloaderem jest większy niż rozmiar dostępnej pamięci flash. Jeżeli nie ma takiego zagrożenia, programowanie po ICSP można sobie odpuścić.
Na rysunku wskazałem na żółto zbędne pogrubienie ścieżek, które przecież nie przenoszą takich dużych prądów http://obrazki.elektroda.pl/4361705800_1... Jest pokazana też ścieżka którą nie przeniosłeś na stronę Bottom. Zastanawiasz się co z niewykorzystanym miejscem z lewej strony, a ja tylko powiem że płytka spokojnie może być zmniejszona...
Mylisz się :) Aby znaleźć plik to już trzeba trzeba trochę kodu (czyli wystarczy petitFatFs) :) Ale żeby już zmienić jego zawartość to już sporo zabawy :) Należy: 1. Wyliczyć wielkość danych które chcesz zapisać (pestka) 2. Zlokalizować plik w RootDirectry (trochę trudniej) 3. Wyciągnąć interesujące nas informacja o pliku z RootDirectry 3. Zmienić rozmiar...
Witam, zmartwię cię: 1. to nie są stringi 2. sizeof() podaje poprawnie rozmiar :wink: Pozdrawiam, GSM
http://obrazki.elektroda.pl/1786977800_1... Chciałem się podzielić projektem który zbudowałem - czyli warsztatowym testerem komponentów. 1. Opis a) Założenia: Projekt wyszukałem w internecie i bardzo mi się spodobał. Stwierdziłem że takiego urządzenia brakuje w moim warsztacie. Więc podjąłem się jego budowy. Zainspirowała mnie konstrukcja:...
Z programowaniem przez Bascom tez mialem problem gdy przekroczylem pewien rozmiar kodu. Gdy zaczalem uzywac PonyProg-a to wszystko wrocilo do normy. Pozdro Dexter
Witam !! Czy mógłby Pan wysłać PCB poprawne ale w eaglu ??bo to które są w paczkach nie posiadają GND ... a nie wiem czemu jak drukuje z PDF rozmiar jest mniejszy niż ten z eagla i nie pasują nóżki ... Pozdrawiam.
Parę BGF-ów i pamięć można zapełnić :) Dodano po 25 Być może to jednak problem z Atmega Zrób takie testy: Przygotuj sobie jakieś pliki o rozmiarach np. 64kb 128kb i jakiś > 128kb Zmień im rozszerzenie na.bin wgrywaj je i weryfikuj. Napisz kiedy następuje błąd weryfikacji. Jest tak . Mam w moim projekcie pliki Bin i Hex . Bin zajmuje 116k a Hex 326k....
(...) atmega jest jakby powiększona częściowo (...) To chyba nie jest możliwe. Zapewniam że footprint (jesli mowimy o tej samej bibliotece) jest zgodny z wymiarami podanymi w dokumentacji. Raczej doszukiwałabym się błędów na późniejszym etapie, najpewniej przeskalowany wydruk. Sprawdz czy w Page Setup nie masz czasem włączonego skalowania lub dopasowania...
Znowu nieco ponudzę, ale na razie udało mi się ręcznie przez terminal zaktualizować dane - program terminal ( Terminal v.1.9b ) ma zaznaczone dodawanie znaków końca linii. [syntax=bash] AT+CIPSTART="TCP","192.168.0.100",8080 CONNECT OK AT+CIPSEND=79 OK > Recv 79 bytes SEND OK AT+CIPSEND=26 OK > Recv 26 bytes SEND OK AT+CIPSEND=19 OK > Recv 19 bytes...
Kawałek kodu masz mocno namieszany, nie masz funkcji odczytującej daną z uartu - pokaż większy fragment kodu. ogólnie: [syntax=c] #define BUF_SIZE 100 char c; chat buffer[BUF_SIZE];//koniecznie deklaracja rozmiaru ... while(1){ if((c=uart_getc())){ buffer[i++]=c; if(i==BUF_SIZE-1){//zabezpieczenie przed przepełnieniem bufora buffer[i]='\0'; i--; //sygnalizacja...
Nom Atmega 32 ma jedną wadę, która też jest czasem jednocześnie zaletą. Mianowicie rozmiary (w obudowie DIP 40)
Witam wszystkich zainteresowanych ;) Chciałbym prosić bardziej doświadczonych kolegów o rady oraz sprawdzenie schematu, który wykonałem na potrzeby omawianego projektu. To mój pierwszy tak duży (dla mnie wręcz olbrzymi) dlatego proszę o wyrozumiałość jeśli popełniłem jakieś karygodne błędy. Kondensatory rzędu uF będą wszystkie Tantalowe aby jak najlepiej...
Musisz dokładnie wiedzieć, jaki rozmiar ma bitmapa aby ją poprawnie narysować -to raz. A dwa, jesteś pewny, że to logo wogóle jest w formacie poprawnym dla tego wyświetlacza? Bo tu musisz mieć kolejne bajty poskładane z pionowych, 8-mio pixelowych słupków. Znaczy zapis bajtu rysuje słupek 8 pionowo ułożonych pikseli, następnego następne 8 na prawo itd....
Dzieki za ten kod musze go przesledzic troche dokladniej :) A co do dzialania akcelerometru jak na zabawke za 30 zl dziala naprawde fajnie jest bardzo, bardzo czoly (trzymajac w rece nie jestemwstanie utrzymac lini prostej, dopieru umieszczenie go na konstrukcji dalo prosta linie) co do dokladnosci ciezko mi powiedziec poniewaz niemamgo do czego porownac...
zależy jak tą ramkę sobie zorganizujesz ale jeden z prostszych sposobów, gdy przesyłamy znaki ASCII to koniec ramki łatwo np odróżnić po tym, że nadleciał znak ENTER (0x0d). Gdy wykryjesz go w przerwaniu to już możesz powiadomić pętlę główną czy jakieś zdarzenie w tej pętli, że już jakaś cała i gotowa ramka czeka na odczytanie. Jeśli pętla główna będzie...
Witam, Buduję urządzenie oparte na uC AVR, zastanawiam się nad doborem pamięci zewnętrznej. Urządzenie to będzie dokonywać pomiarów elektrycznych sieci zasilającej mieszkanie. Będzie to watomierz cyfrowy. Chciałbym, aby uC wykonywał pomiary /używając zewnętrznego układu na SPI/, magazynował je w pamięci eprom. Oprócz tego chcę mieć możliwość pobierania...
1. Dlaczego nie na przerwaniach? Taka biblioteka już milion razy w internecie była. Ta nie używa przerwań, blokuje działanie uC przy nadawaniu i odbiorze... Ma być jak najprościej i służyć do szukania błędów, a przerwanie też zabiera czas procesora jednordzeniowego. 2. Po co funkcje do wysyłania CR i LF? przerost formy nad treścią Jak w jednej linii...
Jest możliwe. W pierwszym sektorze zapisz na przykład coś takiego jak w załączniku (Po rozpakowaniu. Spakowałem bo nie chciało mi przyjąć załącznika z rozszerzeniem fat, f16, fff, bbb, xxx i wielu innych.). To jest pierwszy sektor FATa16 (bez MBR-a) dla karty 32MB. Ale dzięki temu możliwe że karta zostanie wykryta i sformatowana (już jako jakaś większa...
Witam mam pytanie do łuki_mar44 jaki powinien być rozmiar tej płytki bo nie doczytałem? Oraz czy mógłbym prosić o spis elementów? Z góry dziękuję
Znacznie lepszym rozwiązaniem będzie jak dopasujesz rozmiarem wyświetlacz ze sterownikiem obsługa tego jest mało wygodna a dokumentacja to raczej tylko z analizatora ttl
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Witam, Mam dwa pytania: Czy w obszarze GPR przechowuje się coś innego poza zmiennymi globalnymi? i drugie pytanie: w dokumentacji Atmegi obszar GPR składa się z 32 rejestrów. Jeżeli jeden rejestr ma 8 bitów, tzn. że jeżeli zadeklaruje zmienną globalną o rozmiarze long long int (rozmiar 64 bity) to zajmie Ona aż 8 rejestrów?(8*8=64) a co dalej z tym...
Skoro podejrzewasz złe użycie pamięci, użyj wbudowanych we FreeRTOSa sposobów sprawdzania użycia stosów dla poszczególnych tasków. Mowa konkretnie o tym http://www.freertos.org/index.html?http:... Podobnie jak koledzy uważam, że powinieneś jeszcze raz zaprojektować aplikację. Nie każda funkcja...
Tak, przyznaję rację, zapomniałem ;) Słuszna uwaga co do wydajności procesora. Bardzo prawdopodobne (przy stosowaniu arduino), że procesor nie radzi sobie z tak szybką obsługą przerwań i zwyczajnie je pomija. Na razie polecam spróbować zmienić digitalWrite na bezpośrednią obsługę rejestrów wyjściowych. To znacznie przyśpieszy obsługę przerwania. EDIT:...
nie da sie wprost okreslic jaki rozmiar stosu bedzie potrzebny. mozna za to napisac sobie swego rodzaju funkcje kontrolujaca, ktora bedzie sprawdzala wartosc SP. najlepiej w postaci przerwania od timera. mozna tez recznie, w symulatorze lub debuggerze, podgladac wartosc rejestru SP. 4\/3!!
Wszystkie obliczenia na liczbach całkowitych. Dla zachowania dużej dokładności proponuję obliczenia na uV. No więc 255 odpowiada 5V, czyli 5000000uV. Stała konwertująca odczyt z przetwornika na uV wynosi więc ((5000000 + (255 / 2)) / 255) - dodanie do dzielnej połowy dzielnika załatwia zaokrąglanie do najbliższej liczby całkowitej. Aby dokonać konwersji...
Witajcie, mam problem z pamiecia programu w uC atmega128, tak sadze. Moj program rozrół sie do dosc duzych rozmiarow bo zajmuje około 70kB pamięci kontrolera. Z kolei licznik programu(PC) ma rozmiar 16, więc wydawało by sie, że maksymalnie może dostawać sie do komórki pamięci o numerze 656535 B pamięci programu, i przy większej ilości zajmowanej przez...
avr gcc i do dzieła, wszystko będzie jasne :D avr-gcc -Wall (printuj wszystkie warnigs) -Os (optymalizacja pod kątem rozmiaru) -fpack-struct (pakuj struktury bez dziur (not aligned) -fshort-enums (upakuj enumy do jak najmniejszego rozmiaru) -std=gnu99 -funsigned-char (char traktuj jako unsigned) -funsigned-bitfields (to samo z polami bitowymi) -mmcu=atmega88a...
Działa, dziękuję, ale wychodzi na to że mogę tak przesłać tablicę tylko jeśli podam jej rozmiar w deklaracji, a w moim założeniu chciałem przesyłać za pomocą funkcji dowolną tablice dwuwymiarową, o różnych wymiarach. Przecież przesyłasz: w1=y2-y1 w2=x2-x1 Poza tym rozmiar i tak musisz podać w deklaracji (tablicy). Chyba że zrobisz tablice dynamiczne.
https://obrazki.elektroda.pl/2741391200_... Witam! Chciałbym przedstawić własną konstrukcję zegara matrycowego opartego na popularnych elementach. Konstrukcja powstała jako prezent dla ukochanej dziewczyny ❤️ Konstrukcja urządzenia Zegar w założeniu miał być typu stołowego, zasilany z zewnętrznego zasilacza. Skonstruowany...
Cześć, Pracuję nad bootloaderem, który umożliwi zaprogramowanie procesora plikiem z serwera. Plik pobieram i tnę na kawałki (dowolnej wielkości, aktualnie 128 bajtów) z pomocą modułu SIM868 (póki co w osobnym projekcie). Uruchomiłem projekt bootloadera optiboot w Microchip Studio 7. Były jakieś dziwne problemy, ale udało się wgrać program bootloadera...
Po wytrawieniu powinienem jeszcze przyciąć płytkę, gdyż na początku jej rozmiar ustalam zgrubnie (zwykle większy niż wynika to z projektu), stąd na brzegach już fragmenty wytrawienia - tam nie było przyklejonej maski.
A tak przy okazji to nie znacie jakiegoś sklepu z kołami, które by się nadały do mojego pojazdu? Na allegro i targowiskach szukaj starych, zepsutych zabawek. Można dostać za grosze albo gratis i pozyskać z nich koła, silniki, przekładnie itd. Oczywiście zostawie tam sam silnik w obudowie. Więc niech taki będzie napęd. A po co iść naokoło i budować...
Na początku powiem , że moja znajomość korzystania z płytek stykowych jest niska, jednak już brałem udział w budowie układów elektropneumatycznych. Czytając kilka postów słyszałem że najlepsze dla "świeżaka" jest mikroprocesor Atmega i procesor Atmel AVR, Chciałbym zrobić projekt który mógłby się rozwijać wraz z moim poziomem wiedzy, mianowicie kalkulator...
Diody się zapaliły się od razu po podłączeniu zasilania. Układ się zainicjował, gdyż przeszedł procedurę RTLinit(). Zawiesił się w funkcji RTLreceive_packet(). Co do realizacji Ethernetu to myślę, że jest to możliwe, ale nie można obsługiwać obszernych ramek. Ja przyjąłem rozmiar ramki na 128bajtów, stąd modyfikacja kodu z opracowania.
Nie wiem, czy tylko tu się pomyliłeś, czy w kodzie też. Napisałeś, że ustawiłeś GRAPHIC_HOME_ADRESS=0x2000, a ja miałem na myśli raczej 0x0200 . Jeśli LCD ma przykładowo 8K RAM, to wartość 0x2000 jest już poza zakresem. Trudno przewidzieć, co w takim przypadku będzie wyświetlane. #define GLCD_GRAPHIC_SIZE (GLCD_GRAPHIC_AREA * GLCD_NUMBER_OF_LINES)...
W pierwszej kolejności zadeklaruj zmienne seconds , minutes oraz hours jako volatile . Modyfikujesz ich wartość w przerwaniu i odczytujesz w programie głównym (w tym czasie może wystąpić przerwanie). secondsBuffer , minutesBuffer oraz hoursBuffer musi być co najmniej 3. Funkcja itoa() dodaje znak końca łańcucha tekstowego.
[syntax=c]for(uint8_t index = 0;GGA_Buffer[index]!=','; index++){ ///nie potrafi się zatrzymac na przecinku Time_Buffer[time_index] = GGA_Buffer[index]; time_index++; PORTA |= (1<<PA2); //DODANE }[/syntax] 1) Szalenie ryzykowna pętla, gdy przyjdzie jakiś inny string bez przecinka lub ciąg znaków do przecinka przekroczy wielkość bufora Time_Buffer,...
Witam. Realizuję prosty projekt generatora wideo na VGA opartego o Atmegę1284p - obraz jest generowany z pamięci RAM dosyć chałupniczą metodą: aby osiągnąć rozdzielczość 53x240 pikseli (!) tworzę 53 tablice (rozdzielczość pozioma) uint8 o rozmiarze 240 wpisów (rozdzielczość pionowa) a następnie ustawiam PORTC po kolei każdą tablicą o indeksie linii....
Troszkę za dużym ogólnikiem rzuciłem... Tak, stos to HW Stack (sprzętowy) i Soft Stack (programowy). Należało by zwiększyć rozmiar stosu sprzętowego, bo używasz przerwania od Trmer1. Wywołanie obsługi przerwania powoduje zajęcie 32 bajtów stosu (czyli tyle, ile masz zadeklarowane), a nie tylko do tego jest on używany. Możesz ustawić np. dwukrotnie więcej....
http://obrazki.elektroda.pl/8902876500_1... Witam. Chciałem zaprezentować moją ostatnią, a zarazem pierwszą pokazywaną na elektrodzie konstrukcje. Jest to miniaturowa ściąga. Powstała ona z kilku powodów: 1. Przetestowania sposobu podłączenia wyświetlacza i karty pamięci do mikro-kontrolera. 2. Poziomu trudności napisania oprogramowania...
Witam. Do Atmegi mam podłączony enkoder z drukarki na INT0 (obsługuje przerwanie). oraz rs232 , który komunikuje się z aplikacją na PC(też przerwanie). Opcja pierwsza: czytam dane z enkodera manualnie : mam o programie guzik "daj dane". Gdy kręcę enkoderem jak szalony to w lewo to w prawo a potem wciskam guzik "daj dane" to dostaje to co trzeba - znaczy...
rozmiar programu atmega rozmiar akumulatora rozmiar alokacji
chrysler voyager układ chłodzić łamanie klucza dobrać napięcie transformatora
zestaw monitoringu zamiennik układu scalonego
Pulsujący obraz w wideodomofonie - przyczyny i rozwiązania Scania G 420: Awaria silnika a jazda bez karty