Odbiór znaków rób w przerwaniu i zapisuj je kolejno do bufora. W przerwaniu tym włączaj lub resetuj przerwanie timera tak, aby przerwanie timera było wyzwolone dokładnie 3,5 znaku później. Jeśli w tym czasie przyjdzie jakiś znak resetuj timer i cykl będzie mógł powtórzyć się, jesli jednak znak nie zostanie odebrany w tym czasie przerwanie timera wyzwoli...
Witam, Używam WinAVR i muszę użyć ATmega168, dodatkowo muszę skorzystać z wewnętrznego EEPROMu tego układu. Miałem wersje WinAVR 20050214 ale nie obsługiwała tego układu, więc zainstalowałem najnowszą 20060125, niestety jest niestabilna i powoduje różne problemy w układzie ( opisywane m.in. na AVRFreak GCC Forum ) - przy okazji nie polecam tej wersji...
ATMEGA168 WINAVR Dziękuję bardzo za informację. Przeniesiono z Programowanie Ogólne. - arnoldziq
Witam bardzo serdecznie, szukałem po elektroda i innych stronach np. http://tuxgraphics.org/electronics/ gotowca w jezyku C. W końcu jak go znalazłem to okazało się że jest program napisany na atmega168 lub atmega328. Kupiłem ten układ, podłączyłem według schematu, chciałem zaprogramować i nie udało się, więc postanowiłem zaprogramować sam procesor....
Hej! Jestem tu nowa, więc mówię CZEŚĆ! ;) Mam mały problem i będę wdzięczna za pomoc :) Otóż piszę sobie taki programik pod WinAVR i rozrósł się on już trochę i do atmegi8 już nie wchodzi :| Stąd pomysł aby kupić sobie atmegę168-20 i teoretycznie miało być po kłopocie, ale okazuje się, że w AVRPROGu nie ma tego urządzenia na liście możliwych do zaprogramowania......
Też myślałem nad takim rozwiązaniem "polling mode" ale moim zdaniem przy tak krótkich impulsach nic więcej nie zrobię na tym AVR bo będzie non stop sprawdzał bit przy którym będzie miał odczytać port. Z analizatora stanów wyliczyłem że jeden dźwięk ma 64 próbki na L kanał i 64 próbki P kanał czyli razem 128 i tak myślę że po tym czasie będę mógł jeszcze...
no tak zauważyłem tylko zapomniałem cie pochwalić no tak bardzo dobre rozwiązanie z tym zewnętrznym kwarcem i konwersja napiec , tez sobie dodałem do płytki ten bufor ale zeby zaczac cos sie uczyc musze wogule jakis program uruchomic sprawdzic czy dziala wszystko czy moduł jest sprawny itp a co ja bede wydziwial , podlanczal zewnetrzne kwarce czy cos...
Moim zdaniem najbardziej elastycznym programatorem jest AVRDUDE. Można go pobrać z http://savannah.nongnu.org/download/avrd... Jego zaletą jest fakt, że parametry programowanych układów zapisane są w pliku tekstowym, więc jest możliwość dodawania nowych typów układów bez zmian w samym programie (w przypadku Atmela wprowadzającego ciągle jekieś nowości...
Ależ w funkcji lcd_int() nie masz nic wspólnego z rzutowaniem zmiennych a szczególnie float. Jest tylko zamiana liczby binarnej na ASCII za pomocą wbudowanej funkcji ITOA (Integer To ASCII) zastanów się jakie zakresy liczb może pomieścić typ int (czytałeś o typach ? - spróbuj zajrzeć do tabelki bo masz taką w książce na 1000%) to po pierwsze wyjaśni...
Sprawdź w dokumentacji do winavr (avr-libc) czy to jest właściwy wektor tego przerwania dla atmega168...
Kamerkę w pierwszym robocie sobie podaruj. Skoro znasz C++ to najlepiej roboty programuj w C (WinAvr) Jak kupujesz procesor to zamiast atmega48 kup atmega168. Jest to praktycznie ten sam procesor, tylko ma więcej pamięci. Przy jednej sztuce jest to różnica rzędu 5zł i nie ma co oszczędzać, bo jak ci zabraknie miejsca w pamięci (a 4kb flasha to naprawdę...
Witam mam problem z potęgowaniem. Chcę obliczyć następujące wyrażenie: co2 = 3*tww_ph*pow(10,7-ph); Kompilator wywala błędy: Build started 14.6.2011 at 09:19:09 avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT phmetr.o -MF dep/phmetr.o.d -c ../phmetr.c avr-gcc...
obsługiwane uC przez avrdude5.3: Valid parts are: m6450 = ATMEGA6450 [D:\Programy\WinAVR\bin\avrdude.... m3250 = ATMEGA3250 [D:\Programy\WinAVR\bin\avrdude.... m645 = ATMEGA645 [D:\Programy\WinAVR\bin\avrdude.... m325 = ATMEGA325 [D:\Programy\WinAVR\bin\avrdude....
nie korzystam z AVR STUDIO, tylko WinAVR, wystarczy w makefile zaznaczyć opcję: http://hobby.abxyz.bplaced.net/img/art00... (at)kiziu13 dzięki za wskazówkę !
Niestety, ale po w bazie mam tylko Valid parts are: t10 = ATtiny10 [C:\WinAVR\bin\avrdude.conf:... t8 = ATtiny9 [C:\WinAVR\bin\avrdude.conf:... t5 = ATtiny5 [C:\WinAVR\bin\avrdude.conf:... t4 = ATtiny4 [C:\WinAVR\bin\avrdude.conf:... ucr2 = 32UC3A0512 [C:\WinAVR\bin\avrdude.conf:...
Wykorzystuje plytke testowa Pololu Orangutan, a podczas pisania programow korzystam z biblioteki orangutan-lib ktora jest odpowiednio skonfigurowana, tak wiec szczerze mowiac nic nie ustawialem. Z tego co czytalem domyslnie calosc jest taktowana z predkoscia 1MHz, ale specjalnie dla serw procesor jest taktowany z maksymalna predkoscia 8MHz o co dba...
W tym problem ze ja tylko mam usbasp jest może inny sposób próbowałem w Programmers Notepad ale mam błąd: Ze atmega328 nie może być znaleziona. Może ktoś zrobić schemat połączeń albo wysłać mi linka jak sprawdzić układ ? Taki kod mi wyświetla Programmers Notepad kiedy próbuje programować: > "make.exe" program avrdude -p atmega328 -P usb...
:arrow: zm_m Układ demodulatora jest do kupienia, wystarczy wpisać w wyszukiwarkę hasło TDA9830 cena i przejrzeć wyniki. Syntezę można zastąpić układem LM7001 jak wspominałem. Wyprowadzenia ma niemalże identyczne jak w tym, który zastosowałem, porównać można dokumentacje tych układów. Program na mikrokontroler jest napisany w C pod darmowym WinAVR,...
Microsoft Windows XP [Wersja 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\p4>avrdude -c? Valid programmers are: c2n232i = serial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts [C:\Win AVR-20100110\bin\avrdude.conf:876 ... dasa3 = serial port banging, reset=!dtr sck=rts mosi=txd...
Witam, mam problem z mikrokontrolerem ATmega8. Programator to usbasp. W pewnym momencie procek po prostu się zawiesił. Osobiście podejrzewam źle ustawione fuse bity (zawsze używam fuse calculatora). Logi z WinAVR: avrdude: error: programm enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or...
W pliku lcd.h dopisz extern. extern inline FILE* lcd_GetFile(void);
Po co koledze ten CTC? Prescaler ustaw na 128 i wykorzystaj przerwanie przepełnienia licznika. Fint = Fosc / preskaler / 2^ilość_bitów_licznika = 32768Hz / 128 / 256 = 1Hz Przy CTC trzeba pamiętać, że występuje taki jeden mały szczegół jak 1+OCRn , gdyż licznik musi przynajmniej zliczyć jeden impuls. A ty go nie uwzględniłeś: Fint = Fosc / (preskaler...
W katalogu "WinAvr\mfile" jest plik makefile_template
Dokładnie gaskoin. Do autora - jak masz problem odpal symulator w AVR Studio, w tak prostym kodzie błąd znajdziesz natychmiast obserwując rejestry. Poza tym #define to coś o czym lepiej zapomnieć :) Jak już musisz udziwniać, to zamień to na zwykłe funkcje - kompilator i tak zrobi z tego inline, efekt końcowy będzie więc taki sam, a przejrzystość, kontrola...
Zastanawiam sie teraz czy wina leży po stronie sprzętu(płyta ewalucayjna służy mi juz dłuższy czas) czy tez może z kompilatorem coś jest nie tak. Taa, dobre - jak zwykle gdy się zbaboli (czyli źle napisze) program i nie wie się jak rozwiązać problem to od razu winny kompilator albo sprzęt, procek itp Nie panie kolego wina leży tylko i wyłącznie po...
Grafika to pewne zmienna deklarowana w programie. Jak to się robi zapewne w postaci zmiennej tablicowej np. char grafika[][] = {}; jak zrobisz char grafika[][] PROGMEM = {}; Uzyskasz to samo w pamięci programu. Nie ma sensu ładować obrazków do RAMu.
Teoretycznie tak:) A najlepiej zrób tak żeby, prąd diody był te 15mA. Lepiej mieć pewność że wszystko będzie działać w nasyceniu;) A kondensator daj te powiedzmy 10nF.
Bynajmniej - "char" może być równie dobrze ze znakiem, to zależne jest tylko o fantazji danej wersji kompilatora. Można to oczywiście zmienić w opcjach, ale zakładanie że "typ" jest równoznaczne z "unsigned typ" jest błędem. 4\/3!!
Witam, Do pamięci zewnętrznej odwołujesz się przez zwykły wskażnik o adresie większym niż wewnętrzna przestrzeń adresowa RAM'u Więc aby stworzyć tablice musisz odwołać się przez wskażnik char* bufor = (char*)0x8000; // deklaracja adresu początkowego tablicy //--------------------------------------...
Tego typu kontrolery wymagają przy odczycie VRAM tzw. dummy read - po ustawieniu nowego adresu pierwszy odczytany bajt to śmieci, dopiero drugi zawiera użyteczne dane. Tak więc twoja funkcja rysująca piksele jest błędna.
DAC0808 - nie ma kompletnie żadnej filozofii. POdłączasz go do jakiegokolwiek ośmiobitowego portu, ustawiasz kierunek (DDRx = 0xff;) i zapiszujesz wartość (PORTx = wartosc;). PCF8591 - http://elportal.pl/index.php?module=Cont... część szósta, pobierz listingi. ADC0820 - podobnie jak DAC0808 podłączasz do portu ośmiobitowego....
Po pierwsze: Dev_2 to nie jest to samo co DEV_2 - wielkość liter! Po drugie kompilator jeśli nie zdefiniowałeś czegoś ale używasz tego tylko wewnatrz porownan przyjmuje wartosc domyslną 0, wiec dzialanie wygląda tak: #define DEVICE DEV_2 //nie znam Dev_2 ale rozumiem że mam zastępować napis DEVICE napisem DEV_2 #if (DEVICE == DEV_0) //Nie znam obu (ani...
volatile char r1, g1, b1; Popraw deklarację tych 3 zmiennych , by wyglądała j/w i spróbuj ponownie ;) Piotrek
1. Avr studio a. Próbowałem skompilować program (napisany w c; mam WinAVR) i wszystko ładnie. Nie mam tylko pojęcia gdzie to ustrojstwo zapisuje pliki hex? Katalog z projektem i domyślnie w podkatalogu default . Chyba, że utworzyłeś sobie wiele konfiguracji dla jednego projektu, to wtedy odpowiednie pliki wynikowe dla danej konfiguracji są w jej podkatalogu....
Witam, Na początek spróbuj dodać te same biblioteki systemowe - aby się powtórzyły, ponieważ Nut/OS ma z tym pewien problem, pomimo tego że dana biblioteka jest dołączona do kompilacji. np: -lnutarch -lnutos -lnutdev -lnutarch -lnutcrt -lnutnet -lnutpro -lnutcrt -lnutfs -lnut -lnutarch -lnutos -lnutdev -lnutarch -lnutcrt -lnutnet -lnutpro -lnutcrt -lnutfs...
Rozumiem, że każde odwołanie do SPI powoduje automatyczne wystawienie na PB0 stanu niskiego Nie. W trybie Master pin SS nie jest wykorzystywany, może służyć jako dowolne wyprowadzenie, choć dla wygody (bo tak ładniej wygląda :] ) oczywiście wykorzystuje się go do sterowania linią /CS w urządzeniu Slave, ale nie ma takiego przymusu, inny pin też może...
Informacje o zmianach dostępne są po zainstalowaniu: Below is just a sample of what's new. Added support for these devices: AT90PWM216 AT90PWM316 ATtiny43U ATtiny48 ATtiny88 AT90PWM2B AT90PWM3B ATmega48P ATmega88P ATmega168P ATmega328P ATmega1284P ATmega32HVB Binutils 2.18 New version. GCC 4.2.2 New version. avr-libc HEAD (Future 1.6.0) New version....
Moze byc. Pewnie ustawiles External clock. Co jest bledem ;) Teraz musisz podac jakis sygnal zegarowy na nozke XTAL1 zeby moc ponownie przestawic fusebity. Odlacz najpierw kwarc. Ten temat juz byl chyba z setke razy na forum. Szukaj. Pozdro Dexter
avr-gcc: C:\WINAVR/avr/lib/libc.a: No such file or directory Masz gdzieś w makefile na sztywno wbitą złą ścieżkę do WinAVR, bo z reszty komunikatów wynika, że masz zainstalowane w c:/winavr-20100110.
Przecież pisałem, że nie ma tu nic specyficznego dla typu procesora. Zwracanie wyniku przez wskaźnik - to są podstawy podstaw języka C: void funkcja( int argument, int *wynik1, int *wynik2) { /* ... */ *wynik1 = costam; *wynik2 = cosinnego; } int main( ) { int zmienna1, zmienna2; /* ... */ funkcja( 7, &zmienna1, &zmienna2);...
Co masz na myśli pisząc gdy kompiluję w WinAVR? W AS4 robisz cały projekt, klikasz build i już. Żadnych makefile nie robisz. A symulator masz pełny.
moglbys troszeczke uwazniej przeczytac?? napisalem ze jak byl skompilowany na 128 to nie dzialal. Nie mogę zlokalizować miejsca , gdzie to napisałeś ;) Tam gdzie przez przypadek mialem inny procesor to poszedl. Kto :?: Debugger , czy uC :?: Teraz mam ustawiony Atmega103 na ustawionym Atmega128 dalej mi nie dziala. Nie bardzo mogę zrozumieć Twoje intencje.Masz...
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
Też miałem ten sam problem, nie znalazłem rozwiązania ale znalazłem sposób jak ominąć ten problem. Do tego LCD mam swoje biblioteki ale oparte na bibliotekach saper_2 i na M8, M16 i M32 działało a na M128 nie poszło, błędy przy kompilacji itd.. Coś jest z WinAVR że dla M128 wywala błędy przy tych bibliotekach (zresztą dla każdego uC większego od M32)...
Atmega128 - domyślnie sprzedawany z zaprogramowanym fusebitem ustawiającym tryb kompatybilności z m103 (bit m103c w efuse). To powoduje, że pamięć ram jest od końca ucięta (o 256 bajtów), a więc spód stosu jest uszkodzony. Wywołanie działa ok, ale powrót powoduje błędy (brak poprawnego adresu powrotu na stosie). Musisz zmienić ten bit w fusebitach,...
Na poczatek sciagnij i zainstaluj sobie WinAVR. Na plycie z Propoxu masz prekonfigurowany Ethernut - nie musisz juz korzystac z programu configure.exe. Skopiuj katalog ethernut[wersja] na dysk. W katalogu APP masz przykladowe aplikacje - probuj je kompilować i ladowac. W dokumentacji do MMNet jest wiele cennych informacji tylko czasami sa one nienajlepiej...
Dzięki, natchneliscie mnie ... rozwiązalem to w ten sposób : ... kod przykladowy ... #include <avr/pgmspace.h> /* definicje, deklaracje, takie tam */ const prog_char girl_agata[] = "Agata"; const prog_char girl_monika[] = "Monika"; const prog_char girl_beata[] = "Beata"; PGM_P dziewczyny[3] = {girl_agata, girl_monika, girl_beata}; unsigned charmessage_buffer_[18];...
Jak skonfigurować plik makefile w WinAvr aby dało się obsługiwać pamięć zewnętrzną? Chce komunikować się z kartą compact flash podłączoną do AtMega162 według schematu do yamppa. Pozdrawiam
Witam Mam problem z inicjalizacją portu RS232 na Atmedze162, szybkość transmisji 115200. 8, N, 1 oto kod: //Zmienne volatile unsigned char buffers[55]; volatile unsigned char counter=0; const unsigned char frame1[] PROGMEM={0x1E,0X00,0X0C,0X7F,0X00,0... const unsigned char frame11[] PROGMEM={0x1E,0X00,0X0C,0X17,0X00,0...
Wojtek_P dlaczego to co napisałeś do h-doc nie dotyczy również plików elf? Przecież z nimi pracuje się o wiele lepiej.
atmega168 winavr atmega168 generator atmega168 eeprom
dziura obudowie bębna pralki porządny prostownik karta pamięci uszkodzona
electrolux mruga start interfejs delphi
SABA LED28TC2300E Firmware Update Guide Lodówka działa, ale nie mrozi – przyczyny i rozwiązania