"SIG_UART_DATA" - co to jest? nie znam tego. W nagłówku avr/io.h (iotn2313.h) jest: USART_UDRE_vect(=SIG_USART0_DATA=SIG_USA... Jeśli nie to jest problemem, to widocznie funkcja obsługuje inne przerwanie niż zamierzone, podczas gdy właściwa (jej brak) powoduje reset. Wklej komunikaty kompilatora.
Witam, kurde no ja zaraz szalu dostane z tym kompilatorem avrgcc :( Wkurza mnie to, ze nigdzie nie moge znalezc zadnego helpa do tego kompilatora z funkcjami dla AVRow. Najbardziej denerwuje mnie to, ze wiem jak wlaczyc jakis port na stan wysoki, ale jak go juz wylaczyc to nie bardzo :/ #define LED_ON DDRB|=1<<PB1 PORTB|=1<<PB1; #define...
Dlatego wywal tę bibliotekę z tego projektu. Gdy to zrobisz błędów nie będzie, a program na ATmega8 na pewno zadziała. Kompilator krzyczy o to, że w kilku miejscach programu zdefiniowane są funkcje obsługi przerwań od UART. W kodzie Kol. dondu ma to miejsce bezpośrednio w pliku main.c: [syntax=C] ISR(USART_RXC_vect) ISR(USART_UDRE_vect) [/syntax] natomiast...
Chciałbym napsać program do Atmegi8535 w jezyku C,używając kompilatora AVRGCC. Tylko że po zainstalowaniu go nie ma on biblioteki <ioxx.h> do tego mikrokontrilera. Skąd mógłyby je ściągnąć :?: Z góry dziekuję za pomoc :!:
poczytaj to: http://www.patron.net.pl/AVRintropl.htm tam powinieneś znaleźć w przykładach międzyinnymi taki program wszystko na kompilator AVRGCC, jak wystartować i pierwsze programy.
Moj kompilator (AVRGCC) zwraca tylko ostrzezenie ale kompiluje. Podejrzewam ze funkcja nie moze zwracac wartosci typu unsigned char. Sprobuj wpisac int (integer) zamiast unsigned char (bajt). Pozdro Dexter
Hi. Piszę właśnie mały (ciągle rośnie :)) programik w C i używam kompilatora AVRGCC. Czy Ktoś mi podpowie jak do programu w C dodać procedurę obsługi przerwania w asemblerze? Mam bardzo mało czasu na odczytanie/zapisanie bramy i kod nagłówka generowany dla SIGNAL(SIG_INTERRUPT0) się nie wyrabia. Dysponuję czasem max 1200 ns na podanie/odczytanie bajtu...
Programatorem tym możesz programować mikrokontrolery AVR bez względu na to czy program został skompilowany w BASCOM czy w AVRGCC czy jeszcze w innym kompilatorze. Aby zaprogramować układ, potrzebujesz połączyć linie MISO -> MOSI MOSI -> MISO SCK -> SCK RST -> RST programatora oraz mikrokontrolera, co nie jest zbyt skomplikowaną czynnością. Pozdrawiam
Ciekawi mnie ten edytor M-IDE Studio for MSC-51. Możesz dać link do niego? Swoją drogą ja też używam SDCC i AVRGCC. Oczywiście, że komercyjne kompilatory mają wiele udogodnień, ale jednak przede wszystkim SDCC i AVRGCC są darmowe, więc nie trzeba się martwić tym problemem. Co do środowiska pod SDCC, to ja na razie używam edytora CONTEXT. Można przypisać...
Mam ogromny problem ze skompilowaniem pewnego pliku w C próbowałem już długo ale nadal nic czy ktoś może mi powiedzieć czy ten kod jest w porządku ?? Jest w porzadku , ale dla kompilatora avrgcc :( Dołączam przeróbkę dla CV. Teoretycznie działa :wink: Pzdr. Piotrek Sz. i tez mam gitare :wink: PS. [url=http://www.myplace.nu/avr/gtuner/] Tu jest strona...
mam nastepujaca linijke kodu while (indeks_linii<64) {} kompilator AVRGCC zamienia to w nastepujacy ciag instrukcji in R31,0x23 cpi R31,0x40 brcs PC-0x02 jak zrobic z tego wstawke asemblerowa do AVRGCC? kod typu asm volatile("in R31,0x23"); asm volatile("cpi R31,0x40"); asm volatile("brcs...
A nie zgłasza nic kompilator przy linii: [syntax=c] sscanf(time, "%d:%d:%d", &hour, &minute, &second); [/syntax]
424B to juz calkiem fajnie .no to chyba zmienie kompilator z WinAvr (AvrGcc) na Codevision szkoda ze nie jest za darmo :D
Witam Mam pare pytań 1) Czy można połączyć AVRStudio 4 i jakiś kompilator C (AVRgcc) ?? 2) Czy połączenie j.w. będzie chodziło pod XP ?? 3) Czy AVRgcc można podpiąć tylko pod AVRStudio 3.53 ?? 4) Czy którekolwiek z tych połączeń pójdzie pod XP czy mam instalować drugi system (win98) ?? Programuje Atmega32 Dzieki i pozdrawiam
Na sam początek proponuje zainteresować się nieco programowaniem mikrokontrolerów oraz samymi procesorami z rodziny AVR (strona Atmela+google to dobry początek+zapoznanie się z notą katalogową mikroprocesora :) ), bo bez tego nie ma sensu się w ogóle zabierać. Program, który jest zawarty na temacie jaki podałeś wymaga skompilowania zanim zostanie zaprogramowany...
Witam ! Piszę program na uC , kompilator to - AVRGCC. I mam pytanie co do samej instrukcji switch, czy może być coś takiego : switch(costam) { case ( 0 | 4 ) : wykonywane jesli costam = 0 lub 4 ... } kompilator to przepuscil bez bledow, jednak nie wiem czy to zadziala, a mam juz program dosc rozbudowany i nie chce sie pogubic, a zarazem chce napisac...
Witam, szukam sposobu żeby w czasie kompilacji zewnętrze pliki było wkompilowane jako tablice. Chodzi o to że w projekcie tworzę stronę składającą się z kilku plików i muszę je trzymać jako tablice, co jest niewygodne. Wolałbym żeby były to zwykłe pliki i w kodzie odwoływać się do nich jak do tablic. Pierwsze co mi przychodzi do głowy to napisać program...
czy ktoś moze wie jak zintegrować avrstudio 4.07 i jakikolwiek kompilator C, np. avrgcc? sa opisy jak to zrobić a avrstudio 3.x , dalej sa gdzies posty że z 4 nie idzie, ale w helpie do 4.07 jest napisane jak byk że można tylko jak???? Przestudiował ktoś juz może ten problem?
W C pisać. W asmie tylko dla tych co mają za dużo czasu.... Nie radze sie brać akurat za asma do AVR....jest on dosyc dziwny i nietypowy, duzo instrukcji a wiekszosc z nich nie sluzy do niczego konkretnego i trzeba sie nakombinować sporo.... Podpowiedź: BROŃ BOŻE NIE BASCOM!!!..... ...i nie zaden basic, to juz kompilatory pascala pod avry są lepsze......
Witam dziekjuę za link , czy mówóbyś mi podpowiedzieć którm kompilatorem C to skompilować ? pozdrawiam Seba jak zapewne wiesz, uisp to soft pod linux. Ale nic nie stoi na przeszkodzie, aby źródła kompilować nie pod tą platformą a jedynie .hex wgrywać przy użyciu uisp-a. Jest też oczywiście kompilator C na avr-y pod Linux. Jest to avr-gcc (www.avrfreaks.net/AVRGCC/)...
A nie lepiej ten fragment poprawić: Kompilatory pod 8bitowce: * ASEMBLERY : AVR Asembler (składnik AVR Studio), AVRA * C/C++ : WINAVR (środowisko), AVRGCC, IAR C++, CodeVisionAVR * BASIC : BASCOM AVR, FastAVR * PASCAL : Embeeded Pascal AVR, AVRCo
Wrzucilem spakowane na http://shp.isx.pl/avrgcc/
To nie żaden test, to próba "dotarcia" do procesora za pomocą zewnętrznego sygnału zegarowego żeby programator go "widział". Jak już go "zobaczy" to wszystkie "fusebity" można zmienić. Boże-nie WSZYSTKIE próbuj zmieniać... 1-3MHz-bo mi wszystkie przy tej częstotliwości "wstawały". Kombinacji fusebitów przy której nie można połączyć się z procesorem...
MikeC zalecana wersja kompilatora jest wersja 3.02 i jest dostepna pod adresem http://www.avrfreaks.net/filednload.php?... Przy zastosowaniu innej wersji moga wystapic problemy z poprawna kompilacja zwiazane ze zmianami w bibliotekach LIB zastosowanych w kolejnych wersjach.
Może pomoże przeinstalowanie windowsa?? Może pomoże wymiana komputera na lepszy? No ludzie... co to za rady?! Jak nie działa to trzeba szukać przyczyny a nie przeinstalować windowsa. Chodzi Ci o kompilator z avrstudio czy avrgcc? bo z tego co wiem to najnowsza wersja znow moze współpracować z avrgcc.
To zalezy co masz na mysli piszac "zintegrowac" Napewno da sie symulowac programy poprzez pliki .elf Napewno takie pliki wytwarza AVRGCC nie wiem jak inne kompilatory. Do pisania programow i ich kompilacji musisz uzywac dotychczasowego srodowiska. Pozdro Dexter
chodzi mi o samą kompilację - niech ktoś kto zna sie na tym kompilatorze mi pomoże PROSZE !!
Tak, to prawda, jednak aby uzyskać hex'a trzeba mieć kompilator, wiem, że jest to kod pod avrgcc, ale nie znam wersji itp, itd. Skoro umieszcza się źródła, to fajnie by było umieścić również wsad do procka. Ok marudzę. Btw. Zrobiłem odpowiednik tego urządzenia na msp430G2211. Ma tą przewagę, że jest zasilany z bateri CR2032, w stanie czuwania pobiera...
Potrzebujesz na przykład wyświetlic x= 127 w formacie 5 cyfrowym z zerami na froncie „00127” ? Zrób tak: Wyświetlasz najpierw: Lcd.print("- :Wynik: 00000"); A w następnej lini określasz położenie cursora na poz początku wpisu zmiennej’x”. W tym wypadku oczywistą będzie to 13 poz.(16-3) i wpisujesz zmienną „x”, która...
To może wyjść drogo-ale można. Kup książkę P. Góreckiego "Mikrokontrolery dla początkujących" i skoro nie chcesz znać Bascoma wyrwij z niej kartki z napisem "technikalia" i tylko te przeczytaj. Książkę R. Baranowskiego "Mikrokontrolery AVR ATtiny" i skoro nie chcesz znać asm to wyrwij początkową część do rozdziału 3. i tylko to przeczytaj. Jeszcze jest...
Albo makro, albo możesz przekazać adres SFRa jako (volatile uint8_t*). Zobacz: http://www.nongnu.org/avr-libc/user-manu... Jeśli funkcja będzie inline, to kompilator być może wygeneruje efektywny kod (IN/OUT/SBI/CBI). W przeciwnym wypadku będziesz miał LD/ST. Jeśli będziesz przekazywać tylko jeden z 2 możliwych rejestrów, to rozważ...
Cena- avrgcc, codevision, iar... Uczyć się chyba trzeba na czymś tanim- avrgcc jest jednak najtańszy. Jak będziesz robił dziesiątki projektów rocznie to wtedy cena kompilatora i IDE gra mniejszą rolę. No i wsparcie techniczne avrgcc- książka mirka. A książka tmf miała być w maju a piszą że dopiero w czerwcu...
Pamiętaj tylko aby SREG został zabezpieczony i na końcu znalazło się RETI (kompilator wtedy go nie dodaje). Żadna z w/w instrukcji , nie powoduje zmian w SREG(nie modyfikuje flag) , więc nie ma potrzeby , odkładać go na stos. Piotrek PS Mam na myśli "przycięty" kod , który pokazałem , bo w tym wygenerowanym przez GCC , instrukcja CLR modyfikuje SREG.
Bascom niestety nie dorasta poziomowi AVR Studio. Nie ma co porównywać BASCOMa i AVR Studio. Po pierwsze AVR Studio to tylko platforma uruchomieniowa. Bez zewnętrznego asemblera (AVRASM) czy kompilatora C (AVRGCC) się nie obejdze. Po drugie nad AVR Studio pracuje sztab osób z ATMEL-a. Nie wiem czy wiecie ale nad rozwojem BASCOM-a pracuje JEDNA osoba....
REMOVE_UNUSED = 0 wynik w załączniku. używając gotowego przykładu dla freertosa myślałem, że skrypt linkera i pliki inicjujące działają... Nie znam się kompletnie na tym, w avrgcc było wszystko zaimplementowane w kompilator.
UL to jawne zdefiniowanie stałej jako należącej do typu unsigned long (kiedy kompilator nie jest w stanie tego domniemać z wartości, jak w tym przypadku). Podobnie L to typ long a LL to typ long long (rozszerzenie gcc). Ewentualne wyjaśnienie szczegółów: W AVR gcc typ int ma 16 bitów. I taki jest domyślny typ stałej 1. Jeżeli kompilator nie promował...
Z tego co widzę piszesz w C. masz dwie funkcje na obsługę przerywania INTERRUPT oraz SIGNAL któraś z nich pozwala na obsłużenie przerywania podczas obsługi jej a druga blokuje przerywania. PS. Chyba funkcja SIGNAL będzie dla ciebie odpowiednia. PS2. wszystko zależy również od kompilatora jakiego używasz ja pisze w avrgcc Pozdrawiam.
Polecam WinAvr, radzi sobie (podobno) też z C++, a tu masz polskie środowisko do AVRGCC (czyli do WinAvr): http://www.avrside.fr.pl/ Pozdrawiam.
Proponuję żebyś o tej wersji AvrStudio zapmniał i poszedł na całość AVR Studio 4.09 + AvrSide + AVRGCC Tu znajdziesz wszystko na ten temat http://www.avrside.fr.pl/
Najnowsze wersje AVRStudio mają już"wbudowaną" obsługę WinAVR. Przy tworzeniu nowego projekty w AVRStudio zaznaczamy opcję AVRGCC. Później wskazujemy procesor, i miejsce zapisania projektu. Wszystko bardzo ładnie się robi. Później w opcjach projektu możemy zmodyfikowac ustawienia co do kompilatora. Domyślnie ma on ustawioną ścieżkę dostępu do AVRGCC...
Ale tu nie mówimy o tym jak konkretny kompilator, na konkretną architekturę ma to rozwiązane. Być może avrgcc tak właśnie postąpi. Jego prawo. Ale nie obowiązek. Dlatego nie zgodziłem się z twierdzeniem kol JacekCz Mówimy o tym co gwarantuje volatile. A to wynika bezpośrednio ze standardu języka C. A tam nie ma nic o tym jakoby takowej zmiennej nie...
Atmel daje darmowe narzędzie - AVRStudio. I to nie jest tylko kompilator ale IDE. Bez żadnych ograniczeń (typu długość kodu 2kB lub tylko na 30 dni) To narzędzie łatwo zintegrować z darmowym AVRGCC. Kompilator C też bez żadnych ograniczeń. Chyba to były pierwsze procesory dające się programować w układzie- ISP- choć tego nie jestem pewien (czy pierwsze)....
Co do diody to Ci nie podpowiem, bo nie używałem takiej, ale jeżeli znalazłeś, że MOSFET to pewnie tak. Możesz jeszcze spróbować układu Darlingtona na 2 tranzystorach. Drobna uwaga dot. cli() i sei() - w funkcji przerwania nie musisz ich podawać, bo są one odpowiednio automatycznie wykonywane na początku i na końcu funkcji. Jaką masz ustawioną w kompilatorze...
Kod przedstawiony przeze mnie na początku działa, ponieważ przed założeniem tematu sprawdziłem to kompilując pod "normalnym" kompilatorem c++ (devcpp). W zasadzie w AvrGcc też działa, tylko przez moją nieuwagę i mały bałaganik w pliku, nie zauważyłem że nadawanie parametrów nowemu obiektowi robiłem przed funkcją main. Gdy tylko przeniosłem to moja.x...
Teraz już przeczytałem. Mam szukać dokumentacji avrgcc czy gcc? P.S. No to program startowy czy kompilator? W podręcznikach podają że zmienne global i static są zerowane- w standardzie C. To program startowy działa inaczej? Niezgodnie ze standardem C?
Polecam książke: Mikrokontrolery AVR w praktyce: Dolińskiego.Jest tam kilka przykładów, co prawda pisanych w C++... Każde polecenie assemblera jest opisywane szczegółowo w treści ksiązki. A jeśli byś chciał to są symulatory do tych mikrokontrolerów: 1.AVR Studio - http://www.atmel.com/dyn/products/tools.... - bezłatny programik 2.AVR-GCC...
Tutaj leży dokumentacja do AVRgcc: http://www.avrfreaks.net/AVRGCC/ a tutaj takie zintegrowane środowisko programisty... :) AVREdit - http://www.terabank.co.kr/avr_download/a...
Zaintrygowany Qmexx postanowiłem dorzucić beczkę dziegciu do tej łyżki miodu niemniej kolega mnie uprzedził i zamknął temat. Chciałbym zapytać o jeszcze dwie dziwne przypadłości z którymi się spotkałem w czasie mojej zabawy z avrgcc. 1. xpos = (xpos%8); i voila! Kompilator potraktował zmienną i operacje na niej jako char. Czemu wcześniej nie chciał?...
5-10-15- zaraz się zacznie... A co Ty chcesz od Atmela- sami tego kompilatora nie robią i nie dają. Trafiło im się jak ślepej kurze ziarno. Po prostu kiedyś tak zrobili IDE że można to było zintegrować z innym kompilatorem. No jak można- to trzeba. I miłośnicy otwartego oprogramowania to zrobili. Pamietam że ATmel chciał się z tego wycofać- trzeba było...
Dodam, że sprawdziłem nową wersję AVRStudio w wersji 4.12. Faktycznie przywrócono pełną współpracę z AVRGCC. Przy tworzeniu nowego projektu od razu możemy wybrać kompilator, i jesli mamy zainstalowany WinAVR, to AVRStudio domyślnie przyjmuje i ustawia odpowiednie ściezki dostepu. Dodatkowo nie trzeba tworzyć pliku makefile. Super sprawa.
Witam serdecznie, chciałbym poznać waszą opinię na temat czy jest sens tworzyć środowisko programistyczne (Edytor, Symulator, Kompilator, oraz debuger) dla procesorów AVR w oparciu o AVRGCC. Chciałbym abyście wyrazili swoją opinie na temat przydatności takiego środowiska oraz napisali jaką funkcjonalność takie środowisko powinno posiadać. Na chwilę...
Pamięć jest zorganizowana w komórki 16-bitowe, objawia się to np tym że wskaźnik programu wskazuje na słowo (2 bajty) a nie na bajt. Wszystkie instrukcje muszą być więc wyrównane do granicy dwóch bajtów. Jakkolwiek z poziomu samego programu pamięć flash jest zorganizowana bajtami, więc spokojnie można w niej umieszczać tablice bajtów bez utraty pamięci....
Nie za bardzo widzę by trzeba było jakiegoś specjalnego wsparcia dla fixed point. Nie rozumiem? Przecież kompilator musi wspierać odpowiedni typ danych i operacje wykonywane na nich. Nie będę tego pisał na piechotę, zwłaszcza, że używam funkcję pow(). AVRGCC wspiera tylko typy całkowite i float...chyba, że się mylę... R
W asm atmela jest taka możliwość, otwierasz segment .ESEG i piszesz, co ma być w EEPROM, kompilator generuje wtedy oddzielny plik ".eep" do zaprogramowania EEPROM-u, być może jest coś analogicznego w C ?
Dziwne to jest. W danej linijce jest znak zapytania żółty i jak się najedzie to napisze: Unresolved inclusion: <stdio.h>. Ale program się skompiluje. Tak się dzieje z każdą biblioteką dołączaną poprzez <....>. W project->properties->c/c++ general->patchs & symbols pojawiła się nowa zakładka INCLUDES jakimś cudem (możliwe, że...
Witam, Przedstawiam poniżej program (kompilator AVRGCC+AVRStudio5), który przygotowałem jako testowy, jest to fragment większego projektu. Jego zadanie polega na odczycie kilku parametrów z pamięci EEPROM, sprawdzenie czy jest w określonym zakresie, jeśli nie jest to wprowadza wartość domyślną i zapisuje z powrotem do pamięci EEPROM. Program działa...
AVRgcc tak niestety ma. Naked albo zawsze ten sam prolog i epilog (albo ja nie umiem [zreszta nigdy nie szukałem] znaleźć tej opcji kompilatora) . Niestety nie jest tak jak w ARM. To kolejny dowód na to, że narzędzie (uC) trzeba dobierać do zadania a nie swoich umiejętności.
Chyba przez podobieństwo funkcji powinieneś sam na to wpaść ;) uint8_t zmienna = eeprom_read_byte(&zmienna_w_eepromie... Jeszcze dla uściślenia dlaczego to działa - operator & (ampersand) zwraca adres zmiennej, a dzięki atrybutowi EEMEM kompilator wie, że chodzi o adres w eepromie, a nie w RAMie. Pozdrawiam, Dr.Vee
Trochę nie tak. Deklaracja wskaźnika powoduje tworzenie w pamięci obiektu który może wskazywać jakieś tam miejsca w pamięci (w AVR to trochę bardziej skomplikowane, ale na razie to pomińmy). Fizycznie jest to zwykle adres. Instrukcja: [syntax=c]B = "ZERO";[/syntax] powoduje, że kompilator gdzieś w pamięci umieści tekst "ZERO" - pięć bajtów, 4 literki...
Programator podłączany przez port szeregowy - chyba w każdym palmie takowy jest, a program który znalazłeś taką możliwość posiada. Kompilator c - potrzebny jest taki, który będzie umiał produkować kod dla avr - jedyne co mi się nasuwa, to avr-gcc, który trzeba przekompilować na palma. Ten kompilator, który wskazałeś produkuje kod dla palmOS. Jak widać...
JUż napisałem powyżej. To przez deklaracje na początku kodu. Po podstawieniu przez kompilator wychodzi z czegoś takiego: "Device_0=0;" cos takiego: "PORTC.0=0;" co dla AVRGCC jest zupełnie nie zrozumiałe. Możesz ręcznie zamienić wszystkie linie typu: Device_0=0; na PORTC &= ~(1<<0); Device_0=1; na PORTC |= (1<<0); Device_1=0; na PORTC...
Oglądnij rezultaty kompilacji i linkowania w każdym z powyższych przypadków, czyli pliki .lst. Kiedy zaczynałem z AVRGCC, to po napisaniu każdej funkcji oglądałem rezultaty w pliku wynikowym asemblera i niekiedy mocno się dziwiłem co kompilator wyczynia! ( ale przeważnie to ja popełniałem błędy :? ) Pozdrawiam.
PS. Sprawdź, czy jeszcze szybsze nie będzie coś tkaiego: void delay(unsigned int czas) { unsigned int lczas=czas; for(; --lczas; ) asm("nop"); } Po pierwsze ten kod nie jest równoważny funkcjonalnie (w tym sensie, że pętla wykona się jeden raz mniej). Po drugie, z włączoną, czy wyłączoną optymalizacją w kompilatorze?...
Cóż, przejrzałem forum, sekcję download i nie znalazłem w zasadzie nic. Interesuje mnie darmowy lub tani (do 500 pln) kompilator C dla 8051 (wystarczy obsługa podstawowych modeli Atmela). Dotychczas pracowałem w Keilu (pirat), ale chciałbym coś zacząć na tym zarabiać, więc chcę być "czysty". Marzy mi się coś na miarę Keila, albo AVRGCC - kompletne środowisko...
Podaj wersję kompilatora. W nowszych zostało to poprawione i kompilator odkłada tylko te rejestry, które używa. Niemniej, nawet w tak prostym kodzie może używać ich wiele, bo w większości przypadków nie wiąże się to z żadnymi kosztami, więc optymalizator nie jest na to nastawiony. Zauważ, że w C nie ma koncepcji przerwań, więc kompilator nie do końca...
"I tym sposobem ubascomowimy C. A to jest tragedia." Problem skali. W avrgcc jest ze trzydzieści plików nagłówkowych. A w każdym kilka- kilkadziesiąt gotowych funkcji. Nie miałem do czynienia z żadnym profesjonalnym kompilatorem C na mikroprocesory ale podejrzewam że też starają się iść projektantowi "na rękę". Zgodnie z filozofią- Ty zajmij się swoim...
Hmm. Powiem Tak. AVR Studio jest jedynie programem do wizualizacji działania programu który stworzysz. A więc jeśli chcesz pobawić się w programowanie mikrokontrolerów to w pierwszej kolejności musisz zastanowić się w jakim języku chcesz programować. Najpopularniejsze to: 1) Bascom, 2) C++, 3) Asembler. Jeśli zdecydujesz się na Bascoma polecam książkę...
http://obrazki.elektroda.net/1_122383564... Witam wszystkich. Dziś chciałbym zaprezentować wytrawiarkę. Po przeszukaniu postów na elektrodzie, przejrzeniu kilku schematów, wziąłem sie za tworzenie od podstaw. I tak w wolnym od pracy i studiów czasie powstała moja wytrawiarka ;) Na jednej fotce widać oznaki nocnego zmęczenia, zapomniałem narysować...
ja też jestem początkujący... ale z tego co wiem to jest tak: DDRB=0xff; - portb jako wyjścia cbi(PORTB, 1); - ustawia zero na portb.1 sbi(PORTB, 1); - ustawia jedynkę na portb.1 to tak na szybko, coś jeszcze poszukam To wszystko jest OK i pod AVRGCC działa, ale czy instrukcje cbi oraz sbi (są to instrukcje asemblera) każdy kompilator C dla AVR zaakceptuje?...
Ja polecam AVR-GCC bo osobiście używam, jest bez ograniczeń kodu, w komplecie z AVR Studio v4,09 stanowi niezły zestaw uruchomieniowy. A ja dorzucę jeszcze do tego polskie IDE do AVRGCC, czyli AvrSide: http://www.avrside.fr.pl/ - darmowe środowisko z wieloma udogodnieniami - między innymi: nie musisz przejmować się plikami makefile i jednym kliknięciem...
I radze nie uzywac (1<<...) tylko makra _BV(), bo potem cos nie dziala i nie wiadomo czemu;);) Witam, muszę się wtrącić :)) Nie masz racji sugerując, by nie używać operacji (1<<....). Jest to wyrażenie jak najbardziej poprawne w języku C. W każdym kompilatorze. Zaś _BV() to jak sam napisałeś to tylko makro w avrgcc. W dodatku makro sprowadza...
Rzeczywiscie chodzilo mi o atmel studio. Dziekuje za ludzkie wyjasnienie problemu. Kod w atmel studio jest na starcie mniejwiecej 2x mniejszy niz w avrgcc pomimo tych samych stopni optymalizacji. No to jakaś magia. Bo Atmel Studio jak pisał już przedmówca to tylko IDE, wykorzystujące do kompilacji ten sam kompilator avr-gcc. Być może w innej (nowszej)...
Ja to sobie nieco inaczej wyobrażam: najpierw kurs architektury i małe wprowadzenie do asemblera, a następnie przesiadka na język wyższego poziomu. Brzmi to bardzo patetycznie, tym niemniej nie ma co się na asm obrażać, kompilacja niektórych wyrażeń standardowych (pętle, warunki itp) mnie osobiście zachęca do zrobienia wstawki w asm, która załatwi...
Z tego co widze to masz po prostu problem z przeniesieniem sie na C z Bascoma a wiec nie bedzie mialo dla ciebie znaczenia z jakiego kompilatora bedziesz korzystal.Na forum jest temat w ktorym jeden z kolegow zadal sobie trud i napisal wlasny dokument (jak sam okresla zlobek) do programowania AVR-ow z uzyciem avrgcc.Moze warto, dla ciebie, sie z nim...
Ponieważ włączoną masz optymalizację to kompilator GCC skopiował ciało funkcji ff(); do funkcji main() (co śmieszne: pozostawiając jednak całą funkcję tt() nieco wyżej w kodzie) i tak ułożył instrukcje by kod nie korzystał z wywołania tej funkcji. ---- elka_timestudio4.c ----------------------------------------... (at)0000002F:...
Zobacz co napisałem na końcu poprzedniego posta no i zwróć uwagę kiedy mnożysz i sziftujesz, żeby pomnożone dane mieściły się w zmiennej - często trzeba używać longów, bo często wychodzą duże wartości, które mogą nie zmieścić się w 16-bitowych zmiennych. W przypadku >> zamiast dzielenia lepiej też żeby zmienna była unsigned. bo jeśli masz wartość ujemną...
AVRGCC ma w ogóle wsparcie dla takiego programatora?? Dziw bierze ze dałeś się naciągnąć na taki badziew za 100PLN,na allegro STK200/300 za 16 PLN ma wsparcie w prawie każdym kompilatorze isp programerze w dodatku jak się spali to nie ma wielkiej straty. Ale dobra,programator musi być zasilany stabilizowanym, filtrowanym napięciem 5V.Jeszce raz zapoznaj...
If both ADATE and ADEN is written to one, an interrupt event can occur at any time. If the ADMUX Register is changed in this period, the user cannot tell if the next conversion is based on the old or the new settings. ADMUX can be safely updated in the following ways: 1. When ADATE or ADEN is cleared. 2. During conversion, minimum one ADC clock cycle...
Freddy -> po tym jak porównałem kod asemblera dla pętli opóźniającej 300ms przez FastAVR (krótszy nieco kod) do kodu wygenerowanego przez MikroPascal (nieco dłuższy) to - jasno widać, iż autor FastAVR'a przyłożył się bardziej do optymalizacji kodu. Z tego co mówisz zapewne nie tylko przy fragmnetach odpowiadających za pętle opóźniające. Więc jest to...
Jeśli zaś chodzi o błąd kompilacji , to dotyczy on instrukcji out SPL,r16 i nie pasuje mu SPL , bo dla kompilatora SPL jest równy 0x5D , a powinien 0x3D.Spróbuj w kodzie zapisać: Kod: #define __SFR_OFFSET 0 #include <avr/io.h> Ja , w AVRStudio "stworzyłem" nowy projekt AVRGCC,do Source Files dodałem minidds.s(zmieniłem asm na s),w opcjach zaptaszkowałem...
Ta książka Dolińskiego powinna wystarczyć - jest tam kilka programów napisanych w C pod AVRGCC co prawda i dla innego procesora, ale to szczegół. Ponadto masz opis jego architektury, listę rozkazów z opisaniem działania i parę innych wskazówek i na tej bazie poznasz filozofię AVR'ów. Znając to i data sheet'y możesz pisać dla ATMega. Kompilator praktycznie...
hm taie wielkośći otrzymuje po kompilacji w AVRGCC. Co do stosu nie wiem jak to sprawdzić :( a może co jakiś czas czyścic stos stos aby mieć miejsce Dodano po 3 ...teraz juz nic nie kumam w makefile zmieniłem parametr optymalizacji kompilatora z -O3 na -O1 plik jest mniejszy o połowe i teraz mogę wywoływać proceduryobsługi LCD ktore wcześniej powodowały...
Pomoże na pewno... ;) AVCC is the supply voltage pin for the A/D Converter, Port C (3..0), and ADC (7..6). It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter. Note that Port C (5..4) use digital supply voltage, VCC. To jest z "Pin Descriptions/AVCC" Drugi...
w petli glownej po sprawdzeniu flagi odebrania danej i odebraniu danej powinienes te flage skasowac, inaczej bedziesz caly czas informowany o czekajacej na odbior danej: while(1) { if (RC5Avail) { PORTC = RC5RxCommand; RC5Avail=FALSE; // >>tutaj<< } // display new RC5 dataPORTC = ; delay(10); }...
tmf pisał o tym niedawno w temacie o nowym AVRStudio5. Domyślnie korzysta z kompilatora o którym wiadomo że ma błędy. Nie obsługuje starszych programatorów- tylko nowsze i drogie. Trudno znaleźć ustawienia zegara itd. AVRStudio4 jest dość siermiężne jeśli chodzi o edytor. Ale według mnie im mniej bajerów na początek- tym lepiej. Innym wyjściem jest...
Ja zdecydowanie polecam w pierwszej kolejności naukę ANSI C. Parę luźnych uwag w odniesieniu do asemblera : 1. Najważniejsze - dobrze napisany kod będzie w większości przenośny między różnymi procesorami i nie trzeba od 0 pisać wszystkiego (jak w asm ...) gdy chcemy przejść np. z '51 na PIC. 2. Przy pisaniu kodu można skupić się na algorytmie a nie...
Witam, Mam taki sam problem, z tą różnicą, że w moim przypadku sterowanie jest w trybie 8 bitowym. Poniżej oryginalny program Pana Radosława Kwiecień: HD44780.h //--------------------------------------... // Wyświetlacz alfanumeryczny ze sterownikiem HD44780 // Sterowanie w trybie 8-bitowym z odczytem...
ginar --> możesz zrobić jak chcesz (jeśli chodzi o pominięcie iluś tam początkowych bajtów), w tym przypadku także spokojnie, tak jak pisałem wyżej i to zadziała pod warunkiem, że na wszelki wypadek po kompilacji sprawdzisz sobie w pliku *.map w jakim porządku umieścił ci linker te struktury. I wcale nie trzeba się obawiać tego że ci "COŚ" tam namiesza...
Witam Napisałem taki program i nie wiem czemu kompilator ATMEL STUDIO 6 zgłasza mi błędy. Moim zdaniem wszystko jest ok. Może ktoś z was widzi jakieś nieścisłości. Będę wdzięczny za pomoc Build started. Project "termostat.cproj" (Compile target(s)): Target "Compile" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.targets" from project...
Utworzenie projektu pomogło. Mam tylko jeszcze kilka problemów; Przeszedłem krok po kroku opis konfiguracji który znalazłem na tej stornie: http://mikrokontrolery.blogspot.com/2011... tylko nie jestem pewien co do konfiguracji avdude z Atmel Studio (ponieważ używam USBasp). Czy trzeba to ustawić w tym okienku:...
-funsigned-char -funsigned-bitfields -DF_CPU=8000000 -O0 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99 -mmcu=atmega8 Linkera: -mmcu=atmega8 Co wypluwa: ------ Build started: Project: stacja, Configuration: Debug AVR ------ Build started. Project "stacja.avrgccproj" (default targets): Target "PreBuildEvent"...
Witam, Mam pewien problem powiazany z UARTem pod atmega8l... Otoz mam pewnien program ktory pieknie dziala pod attiny2313(UART sprawny, komunikacja rs232<=>pc tez dziala dobrze). Problem narodzil sie, gdy chcialem przeniesc ten program na atmege8l... Podejrzewam, ze problem lezy we flagach... Nie znam sie jeszcze na tyle dobrze na C, zeby problem...
Witam. W internecie znalazłem opis procedury obsługi przerwania INTERRUPT. Niestety używam kompilatora który tej procedury nie obsługuje bo jest przestarzała. Jak wykonać odpowiednik tej procedury używając ISR, tak żeby działała jak w poniższym opisie. http://difer.za.pl/Podstawy_AVRGCC.pdf -strona 39 INTERRUPT (nazwa_uchwytu) { // Instrukcje tu zawarte...
No niestety nie ruszył na tym. Dodam, że jest to mój pierwszy projekt i nigdy nie testowałem mojego Makefile. W ramach testów wpisywałem w mcu name np. kwiatek :D a kompilator nie reagował na to jakby tego pliku w ogole nie czytał. avr_gcc mam skonfigurowany tak jak to opisywali w kursie w EdW, czyli zrezygnowałem z domyslnego ustawiania systemowego...
http://obrazki.elektroda.pl/3756344700_1... Linduino One to kompatybilny z Arduino Uno moduł stworzony przez firmę Linear Technology. W założeniach twórców modułu ma być on platformą deweloperską do produkowanych przez Lineara elementów. Pakiet Linduino to kompletne rozwiązanie kwestii testowania elementów - płytka Linduino One z układem...
Przykładowy kod: [syntax=c]if ((strncmp(uart_buffer,"Test",4))==0) {} else if((strncmp(uart_buffer,"Remm",4))==0) { } if(memcmp(&uart_buffer,"Test", 4)==0) { } else if(memcmp(&uart_buffer,"Remm", 4)==0) { }[/syntax] wygenerował następujący kod dla obydwu funkcji (bez optymalizacji): [syntax=asm]if ((strncmp(uart_buffer,"Test",4))==0) 96:20 e6...
bibliotek avrgcc avrgcc biblioteki biblioteki avrgcc
dht22 raspberry pioneer mikrofon ustawić opalarka grzeje
rover program sortowanie śmieci
Jak wpisać kod radia w Nissan Qashqai 2008? Ślizganie siłownika bramy po zębatce - przyczyny i naprawa