Można bazować też na tutorialu na atmega8... Jest nieco więcej chyba tutoriali na ten uC... Oczywiście trzeba się zapoznać z dokumentacją do mega16 bo konfiguracja portów jest inna... Pozatym drastycznych różnic niema... Co do języka to bascom faktycznie jest nienajlepszy i chyba nawet nie warto się w niego pchać... W miarę dobrze znam C a asembler...
.INCLUDE "m16def.inc" ldi R16, 0xFF out DDRA, R16 .EQU SYS_FREQ = 16 Petla: ldi R16, 0b11111111 out PORTA, R16 rjmp Delay 'to jest skok we wskazane miejsce a nie do procedury. powinno być rcall Delay ldi R16, 0b00000000 out PORTA, R16 tu też brakuje opużnienia rjmp Petla Delay: ldi R16, 1 ldi R16, 1 push R18 push R19 push R20 push R21 mov R20, R16 mov...
Proponuje zacząć od ćwiczeń na jakimś gotowym zestwie np. coś takiego: http://sklep.avt.pl/p/pl/49612/plytka+dr... Lub szukaj pod nazwą "Zestaw uruchomieniowy". Jeśli czujesz się na siłach to możesz kupić w częściach i zlutować samodzielnie. Jak nie, to szukaj gotowego uruchomionego. Na początek sugerowałbym coś z procesorów...
http://obrazki.elektroda.net/71_12692978... Witam, Do niedawna byłem przeciwnikiem płytek testowych (zestawów uruchomieniowych) różnej maści. Zawsze wolałem sklecić sobie coś na szybko na płytce stykowej i już. Nie mniej jednak przy dużej ilości wpadających pomysłów do głowy (a mam ich ciągle bez liku jak na razie), w końcu braknie tych płytek stykowych,...
peikman --> a po co ty w ogóle dokonujesz deasemblacji kodu binarnego skoro możesz sobie podejrzeć super dokładny kod i to wraz z etykietami i ładnymi opisami wprost z kompilatora!..... zajrzyj, że sobie do pliku o nazwie *.lss po zapuszczeniu kompilacji ;) .... i zobaczysz swój prawidłowy oraz pięknie opisany kod w asemblerze zamiast robić to od tyłka...
Wyswietlacz nie potrzebuje zadnej skomplikowanej inicjalizacji. Po odczekaniu kilkudziesieciu milisekund po starcie uC i wyswietlacza wysylasz do obu polowek komende DisplayON i tyle. Jak wyglada ta komenda i co trzeba poustawiac i w jakiej kolejnosci jest w dokumentacji. Moj kod na Atmega16 z kwarcem 10MHz, asembler (wszystkie nazwy portu oraz stale...
Wszystko dobrze napisales tylko zapomniales o tym ze funkcje call itp. odkladaja adres powrotu na stos, a u ciebie nie masz ustawionego tego stosu Musisz na samym poczatku, zaraz pod etykieta RESET wstawic instrukcje inicjalizujace stos: ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp Musisz zawsze o tym pamietac. A jesli chodzi...
Twój podstawowy błąd jest taki, że procedury które podałeś są dla 2313 a on nie posiada sprzętowego I2C więc jest to rozwiązane programowo. ATmega16 ma sprzętowe I2C więc powinieneś z tego skorzystać. Kod będzie wtedy inny.
A to co masz w tej chwili tobie działa ? Mam na mysli te dwie linijki kodu ? W nocie katalogowej masz gotowce w zakresie inicjowania samego SPI jak i wysyłania i odbioru danych. Jest w c i asm. Mimo że odbierasz tylko dane musisz jednak coś wysłać choćby 0 bo wpisanie tam czegokolwiek jest warunkiem aby wyzwolić impulsy zegarowe SCK(pisząc TAM mam na...
Witam! Po kompilacji programu dostaję taki komunikat : Program will overwrite bootloader [52 to long]. Rozumiem że kod przekroczył wielkość pamięci flash i nachodzi na obszar zarezerwowany na bootloader. Za pomocą fusebitów można ustawić wielkość obszaru bootloader'a 128-1024B. Ale jak całkowicie wyłączyć rezerwację obszaru dla bootloader'a i swobodnie...
http://obrazki.elektroda.net/90_12302453... Kontynuacja zeszłorocznego projektu Co Nowego: Nowy sterownik oparty jest o procesory atmega16 włożone może trochę na wyrost ale okazały się najtańszymi oferującymi dostateczną ilość wyprowadzeń. Każdy obsługuje 16 kanałów i posiada własny unikalny adres ustawiany dipswithem. Sterownik ma na chwile...
;... start: ;jmp delay rcall delay ;lub call delay ;... haslo2: ;jmp delay rcall delay ;lub call delay ;... ;---------------------- delay: ;... ;clr r31 ldi r31,255 ;... in r17,pina ; cp r17,r31 brne exit_delay ;... exit_delay: pop r23 ;... pop r16 ret ;---------------------- Niestety nie wszystko działa tak jak powinno Powyżej masz...
Sądząc z opisu jak to się zachowuje przy wyświetlaniu czegokolwiek to program jest chyba napisany tak, że czeka aż do LCD będzie można wpisać dane (czeka na gotowość przyjęcia nowych danych a to trwa po kilkanaście albo i kilkadziesiąt milisekund w najlepszym przypadku). W Bascomie pewnie te procedury operują czasami z zapasem i dlatego tak to sie wlecze....
no ale czy trzeba znać cały język Asembler dla danego µP bo tyle co się orientuje to tak . Jednak okazało się że mi wystarczy pamięci w attiny2313 z 52% skróciłem do 42% no i jestem zadowolony z efektów . Jestem początkującym i mam pytanko ile razy można programować µP i czy bascom avr demo compile większy kod niż 2 kb mam zamiar kupić atmega8...
mirekk36 , obecnie szykują się poważne zmiany w BASCOMie. Powoli dodawane są układy XMEGA, tworzone jest nowe IDE (Wreszcie mają być projekty!). Chodzą też słuchy o BASCOM-ARM, choć osobiście sobie tego jakoś nie wyobrażam. Ja o tych "słuchach" szłyszę już od wielu miesięcy ;) .... i nadal nic. Przypomina mi to sytuację z próbą wyprodukowania przez...
co napisaliscie jako swoj pierwszy program na dany uC w danym jezyku (rozbudowy sie licza, byle by wciaz byla to ta sama baza) n. n. - literka, cyferke z przodu dodam sam. zachowujcie chronologie w swoich dokonaniach na roznych platformach jezykowych i sprzetowych, tak aby to mialo sens! ____________________ 0x1-a. Freddie Chopin - migacz diodkami o...
Tak, odczytuje zarówno same 0x00 jak zewrę do GND, jak zewrę do Vcc to same 0xFF lub czasami śmieci jak zaczynam podczas próby odczytu ruszać rezystorem przy Vcc.
Witam.Szukam osoby która potrafi napisać obsługę RS na Atmega16 w asemblerze.
Mam atmega16 oraz czujnik temp na i2c(twi). Mam problem z odczytem drugiego bajtu danych z tego czyjnika... Pierwszy bajt danych odbieram, potem wysylam potwierdzenie i drugi odebrany bajt ma zawsze wartosc FF. Nie wiem gdzie jest blad. Czyjnik jest ok! Ma ktos moze jakis kod w asemblerze odczytujący z jakiegos urządzenia (czyjnika) na magistrali TWI...
Witam, (at)Kamiljo21 W załączeniu. Jest to cały program działającego do tej pory zegarka, który pisałem kilkanaście lat temu w Atmel Studio 4 (też jest plik *.APS, który wystarczy otworzyć w AS4), co prawda na Attiny25, ale port na Atmega16 nie powinien zająć dużo czasu (może nawet obejdzie się, nie mam czasu sprawdzać pinoutu). Interesujące dla Ciebie...
Witam zainteresowanych, tak jak w temacie zlecę napisanie programu w Asemblerze na Atmega8 / Atmega16 Program na kilka linijek raczej, chodzi o odczytywanie zawartości pamięci ram z ww.mikrokontrolerów. Mikrokontroler podpięty juz mam pod programator usbasp. Potrzebuję pomocy bo w C, nie mogę tego zrobić a asembler a nie obczajam. Proszę o pisanie na:...
Gdybyś przeczytał to co Ci proponowałem to w w bardzo krótkim czasie mógłbyś napisać coś takiego i wiedziałbyś dlaczego warto jest zrobić wstawkę assemblerową. To co jest poniżej skopiuj i zapisz jako plik prj dla VMLAB gdybyś chciał pooglądać przebiegi bez lutowania. Częstotliwość można zmieniać przyciskami. ; ****************************************...
Tylko właśnie zależy mi na tym, żeby to było w asemblerze:(
Czy ten drugi zapis gdzies widziałes? Bo nie ma za bardzo sensu w przypadku rozkazu ldi. Ogólnie podana notacja mówi na które miejsce rejestru wsunąć 0 czy 1. Pozdr. N.
Pozwoliłem sobie uczytelnić kod dla pokazania jak można sobie ułatwić pisanie kodu - zmieniamy w jednym miejscu, a zmiany są uwzględniane w całym kodzie... Daje to bezbolesną możliwość dowolnego przepięcia linii sygnałowych pod inne wyprowadzenia µC przy minimalnych zmianach w kodzie (podobnie jak w językach wyższego poziomu). #include <m16def.inc>...
Witam! Od paru dni uczę się pisać programy w asemblerze na AVR (dokładnie AtMega16) i mam następujący problem na którego nie potrafię rozwiązać: próbuje stworzyć tablice danych w pamięci SRAM aby odwoływać się do nich instrukcją STS jednak wpisanie danych w następujący sposób nie działa: .dseg bus: .db 0xc2, 0xc6, 0xce, 0xcc natomiast "ręczne wklepywanie...
A nie mogą oba przerwania od liczników 0 i 2 działać niezależnie ? ldi R16, SYS_FREQ*1 out OCR2, R16 ldi R16, SYS_FREQ*2 out OCR0, R16 w rejestrze OCR0 mam wartość dwa razy większą niż w OCR2. Jeśli zakomentarzuje ustawienia jednego licznika i jego przerwania to drugi działa i na odwrot . Próbuje korzystać z dwóch liczników na raz i juz nie wychodzi...
No to żeś tak szczęśliwie trafił na JTAGA, który jest na porcie C... ;) Dorzuć na początku, po konfigach taką wstawkę w asemblerze, jeżeli nie widzisz potrzeby wyłączać JTAG-a fusebitami : $Asm push r16 in r16, MCUCSR sbr r16, 1<<JTD cli out MCUCSR, r16 out MCUCSR, r16 sei pop r16 $End Asm
U nas tylko się uczyliśmy asemblera na Atmega16 + na kółku trochę C.. 8051 - a co to jest?:P
Można się bawić w STMy i kombinowanie z grafiką, można kupić np. FT80x lub FT81x i mieć za parenaście złotych gotowy akcelerator graficzny, który realizuje wysokopoziomowe polecenia graficzne, w efekcie nawet 8-bitowy MCU będzie generował grafikę lepszą niż STM32Fxx... Oczywiście OpenGL jest poza zasięgiem nie tylko 8-bitowców, ale nawet wspomnianych...
Może to Ci coś pomoże http://www.elektroda.pl/rtvforum/topic19...
Witam, chciałbym przekazywać wartość, która będzie się zmieniała.Mam cos takiego ldi r16, high(1000) ldi r17, low(1000) i chciałbym, żeby zamiast wartości liczbowych mógł podawać różne zmienne. Jak to mogę wykonać? kod jest w asemblerze
On jest na Atmega16 w załaczeniu pierwsza cześć
Pisałem tylko na rodzinę AVR (Tiny12, 90S2313, 90S8535, ATMega16) głównie w asemblerze, ale teraz mieszam asemblera z bascomem, bo w bascomie łatwiej robić pętle opóźniające i bascom "robi" obsługe lcd. Na tiny12 pisałem w AVRStudio, bo bascom nie daje sobie rady z Tiny12. Kiedyś też dłubałem troche na 2051, ale to w Bascomie, więc żaden wyczyn
W manualu od strony 129 dla Atmega16 wszystko pisze odnośnie SPI
Nic nie trzeba informować kompilatora - Bascom ładnie przyjmuje wprost rozkazy asemblera ale w zasadzie atom1477 zrobił to nawet bez asemblera - sorki - po prostu "ręcznie" odwołał się do rejestrów i wpisał do nich odpowiednie wartości tzn poustawiał bity tak żeby coś tam działało w tym przypadku co ja ci podałem trza by to było mniej więcej zrobić...
Wiesz, mam książkę Baranowskiego 'ATmega w praktyce'. A to co było??? oczywiście mi pomylił się autor ale tytuł ten sam ;) więc ją masz Co do wydajności prądowej to chyba też dostałeś już odpowiedzi różne, albo drivery ULN albo zwykłe tranzystory żeby ją zwiększyć i po ptakach Żeby nie robić na jednej nodze jednej diody nawet przez te tranzystory to...
A może inaczej... właśnie zrobiłem własne procki na podstawie ATMEL'owskiego przykładu na UART'cie i po użyciu tych stałych czasowych udało mi się nawiązać odpowiedź po resecie. Poniżej funkcja próby odbioru temperatury(tylko jeden slave), który zawsze daje 0x0101? Co to oznacza? Nie zmienia się ze zmianą temparatury... int16_t OW_Read_temperature(void)...
Najlepiej zobacz jak obie wersje były zapisane w asemblerze, to może pokazać Ci co było nie tak.
Jak chcesz, to mam napisaną w asemblerze obsługę wyświetlacza KS108 na ATmega 8 ;)
No cóż, Bascom umożliwia wstawki w asemblerze, co może skrócić obsługę przerwania...
Mam problem z ATmega16 i AtmelStudio 6.1. Dzisiaj uruchamiałem ATmega16 po raz pierwszy na płytce stykowej. Komunikacja za pomocą ISP. Udało mi się wgrać prosty program napisany w asemblerze - miganie diodami podłączonymi do portu B (współdzielenie pinów z ISP). Po wgraniu tego programu nie mogę go usunąć ani zastąpić innym. Przy każdej próbie Atmel...
Nie zauważyłem przepisania stałych do odpowiednich rejestrów bo nazwałeś je bardzo podobnie. Mój błąd. A tak w ogóle to nigdy nie napisałem żadnego programu na AVR lub PIC w niczym innym jak tylko w asemblerze i wiem dobrze jak działa procesor. Piszę w asemblerze żeby dokładnie wiedzieć co się dzieje.
Czy Asm to kolejny język? (Pytanie poza tematem) ASM - to pierwszy i podstawowy język niskiego rzędu kolego, wszystkie inne języki jak C czy Bascom - to języki wyższego rzędu a ich kod źródłowy jest ostatecznie zawsze kompilowany do asemblera ;) odnośnie Bascoma i Rc5 - to coś przesadzasz chyba, że nieczego nie znalazłeś w necie. Na samej elektrodzie...
Winny jest Bascom. :( Program (migająca dioda LED) napisany w Asemblerze działa. Chyba niestety czeka mnie przesiadka z Bascoma na C lub Assembler. Najprawdopodobniej wybiorę ten pierwszy ,czyli C.
>>> autor jeżeli nie musi to być ATmega16 to zobacz na ATtiny261...861 który ma piękny zestaw liczników do sterowania 3-fazowego z czasami martwymi, multiplexerem komparatora itp. potrzebnymi bajerami. Plus noty aplikacyjne w temacie. To co potrzebujesz to 100 wierszy w asemblerze. N.
Witam Nie wiem czy to dobre podforum, ale temat chyba tu najbardziej pasuje. Czy ktoś mógłby mi napisać program w asemblerze na Atmege 16 który na porcie RS232 będzie oczekiwał na znak a później do odsyłał z powrotem. Wyśle mu litere a on odeśle ją. Kwarc 8 MHz, Baud 9600, brak kontroli parzystości. Ja to pisałem w bascomie, ale coś się wali i nie wiem...
ad.1 - poczytaj tutaj to ci się wszystko wyjaśni - i będziesz nie tylko wiedział o co chodzi ale jak kod pisać LINK ad.2 - pokaż chociaż fragmenty kodu, co to oznacza że obie funkcje korzystają z tych samych rejestrów ? o jakich rejestrach piszesz ? czyżby to była wstawka w asemblerze ?
Jak napiszesz dobrze program to wystarczy i na 30 kanałów PWM. Co do Bascoma to nie wiem czy sobie poradzi bo nie używałem i nie wiem jak ma napisane programowy PWM. W asemblerze spokojnie do zrealizowania.
W przypadku Bascoma jest najgorsza sytuacja Nie do końca. CONFIG RC5 = PINx.y Koledze najwyraźniej sprzętu brakło, a na to nie poradzi nawet asembler.
asembler programować atmega16 asembler programowanie atmega16 diody asembler
większy dysza olejowy hikvision password wyczyszczenie dysku
Audi A6 C6 2008 – montaż hebla masy, skutki, procedura, alternatywy Hexelon MAX na Linuksie: Alternatywy i Rozwiązania