Używając etykiet w .eseg nie zastanawiasz się nad fizycznymi adresami, robi to za ciebie kompilator. Tym niemniej aby operować na tych danych należy oczywiście użyć "okienka podawczo - odbiorczego" w EEDR, zgodnie z notą katalogową ( http://www.atmel.com/dyn/resources/prod_... ). Wszystko z .eseg ląduje w pliku .eep, którym możesz za...
(at)yanan Sposób na timeouty jaki masz jest ok, jakbym miał się czegoś przyczepić to tego, jak odróżnisz odebranie 0xff od timeouta w twojej funkcji? Oczywiście najogólniej robienie odbioru danych z wolnych interfejsów typu UART za pomocą poolingu to porażka na całej linii. Zdecydowanie należałoby użyć przerwań interfejsu UART, co w połączeniu z timerem...
Jest co najmniej kilka języków, w których można programować uC Atmega. 1. assembler 2. Basic (Bascom) 3. C 4. Pascal
Ale jest EOR, który robi za XOR ;)
Jeśli jesteś całkowitym początkującym to zacznij od przerobienia przykłądów http://mikrokontrolery.net/avr_kursy.htm... poczytaj tematy na elektroda.pl uzywajac szukaj ( hasła asembler avr). Poczytaj również posty w temacie http://forum.mikrokontrolery.net/viewtop... , ściągnij sobie ze strony atmela noty katalogowe avrów np. http://www.atmel.com/dyn/resources/prod_...
...do tej tablicy odwołuję się poprzez ldi r31,high(0x200) ldi r30,low(0x200) lpm wpisanie w nawiasach sinus nic nie daje, wpisanie 0x100 także nic. Ldi wtedy nie bierze elementów tablicy. Dziwne... Pzdr.
potrzebuje z tego jeszcze schemat blokowy !
gdyby to było takie proste to nie pisałbym o tym na forum, ja potrzebuję czytać pozycje przy pełnej prędkości i to bezbłędnie bez żadnych przekłamań... Maksymalnie schrzaniłeś hardware, teraz to już Cię nic nie uratuje. Do zliczania trzeba było wykorzystać ten większy Timer, a do wykrywania zmiany kierunku przerwanie. Pięknie by to chodziło a procek...
Nie analizowałem dokładnie, ale sądząc po rozszerzeniach (*.S) to wygląda raczej na wstawki assemblerowe do kodu w C. Zauważyłem też, że kod korzysta z przerwań, więc nie będzie kompatybilny z ATmega168. Atmega88 do wektorów korzysta z instrukcji RJMP , natomiast ATmega168 - z instrukcji JMP . Użycie tego samego pliku *.hex - moim skromnym zdaniem -...
To assembler czy bascom? Może też napiszesz jaki to procesor bo atmega nie za wiele mówi. Jak assembler to szukasz zestawu instrukcji dla swojego procesora i rzeźbisz. Przykładowy zestaw instrukcji (może to będzie nawet ten): http://www.atmel.com/webdoc/avrassembler... Pozostaje mi życzyć powodzenia i wytrwałości bo...
Za pomocą jakich instrukcji w assemblerze mogę zapisywać coś do rejestrów R0-R15 ? Masz na myśli zastąpienie załadowania bezpośrednich wartości np. ldi / cbr / sbr r0, 0xD5 (nie istnieją !) ? Jest tego trochę ;) (na przykładzie r0 , r16 i wartości 0xD5 ): ldi r16, 0xD5 mov r0, r16 ldi r16, 0xD5 push r16 pop r0 Można także zatrudnić w/g własnej pomysłowości...
Programowe generowanie sygnału video w jakimkolwiek standardzie jest zadaniem krytycznym czasowo, dlatego bez asemblera niewiele zwojujesz. Nawet w asemblerze trudno uzyskać więcej niż 100 punktów w linii. Zresztą zerknij na: Rejestrator przebiegów cyfrowych - przystawka do TV z EP Rejestrator przebiegów analogowych - przystawka do TV z EP Nie jest...
Dokumentację już znalazłem. Może ktoś ma sprawdzony sposób zapisywania i odczytywania danych na tej karcie z poziomu BascomAVR albo za pomocą innego środowiska np. Assembler?
No to książka Rafała Baranowskiego z BTC "Mikrokontrolery AVR Atmega w praktyce" :) Gorąco polecam:)
Problem jest w tym że tablice są umieszczone od 0x40 (org 0x40) w pliku WaveSmpl.asm a przy starcie masz skok do procedury RESET i RX_COMPLETE_INT .org 0 rjmpRESET .org URXCaddr rjmpRX_COMPLETE_INT więc skok musi być wykonany przez tablice a jak dodajesz jeszcze jakieś tablice to ten skok jest za długi. usuń .org 0x40 ; Flash word address w pliku WaveSmpl.asm...
Ja w kodzie widzę 5ms. co daje 200Hz
do asemblera i C masz kilka książek w wydawnictwie BTC proponuję "Mikrokontrolery avr atmega w praktyce" Rafała Baranowskiego .Świetna książka sporo opisów i przykładów napisana przystępnym językiem w odróżnieniu od wielu gniotów których pewnie nawet autorzy nie rozumieją do końca ...
Aby sprawdzić czy optymalizacja zmieniła kod uruchom debugowanie w AVR Studio i zobacz podgląd kodu assemblera poprzez menu View/Disassembler.
jeżeli programujesz w bascom (a nie assembler) to proponuję jednak Atmega AVR. O wiele wygodniejsze w programowaniu jak już kolega pisał. Tylko podpinasz programator do układu w którym pracuje mikrokontroler i możesz programować.
zobacz sobie www.propox.com ja u nich kupiłem płytkę EVBavr02 z atiny2313 + programator na port drukarki. Razem wychodzi jakieś 180 cośtam zł. Książki kup sobie w zależności od języka, w którym chcesz programować. Np. J. Doliński "Mikrokontrolery AVR w praktyce" - programowanie w C R. Baranowski "Mikrokontrolery ATmega w praktyce" - assembler jest jeszcze...
c) chodzi dokładnie o to co napisałeć, plus dodatkowo - skoro napisali w treści, że to call jest pod adresem 0x100 to zapewne autor oczekuje jeszcze, aby napisać jaka wartość znajdzie się na stosie. Tu mały problem w AVR - przestrzeń FLASH adresowana jest w słowach, więc adresy bajtowe trzeba pomnożyć razy 2. c) i d) można się jeszcze zastanowić o ile...
Tak. To jest czcionka. A wiesz skąd? Z BASCOMa. Bo taka mi się spodobała. Tylko że zamiast niektórych znaków są znaki specjalne. Znak stopnia i znak fi. I chyb a co jeszcze. No niestety. Assembler ratuje skórę czasami i dlatego go stosuję. Program jest dość nietypowy. Nie wystarczy zmienić definicję pinów na początku programu. Więc albo podłącz tak...
9 miejsc znaczących
W asemblerze wstawiasz : etykieta: .db "Jakis napis",0x0a,0x0d,13,12,0 .db "dalsza czesc tego samego napisu" itd. a wyciagasz z flasha: ldi zh,HIGH(etykieta<<1) ldi zl,LOW(etykieta<<1) lpm acc,z (lub z+) Ten napis w "" zostanie przekonwertowany na znaki ASCII. Jesli kody twoich liter nie sa...
Dowiedziałem się, że to tych rejestrów trzeba dostać się przy pomocy funkcji LDS/STS... Jak piszesz w C nie musisz się o takie rzeczy martwić. To zadanie kompilatora dobrać odpowiednią instrukcję. Przeszukałem forum i google ale są tylko przykłady dla assemblera, nic dla C. Na pewno są też dla C, ale podam jeszcze raz: // kasowanie bitu 5 (bit...
proszę bardzo: .include"m32def.inc" .cseg .org 0 .def acc=r16 ldi acc,HIGH(RAMEND) ; Definicja stosu out SPH,acc ldi acc,LOW(RAMEND) out SPL,acc ldi acc,0b00000000 out DDRA,acc ;wszystkie bity jako wejscie ldi acc,0b11111111 out PORTA,acc ;wszystkie wejscia w stanie wysokim out DDRB, acc ;wszystkie bity jako wyjscia ;ldi acc,0b11111111...
Jak by ta optymalizacja nie była (niektórych ciężko zadowolić) to jest i to spora a zmiany w źródłach kosmetyczne. Ja coś pokazałem, teraz czekam na innych i zacznę (niektórych bardzo surowo) oceniać. Uważasz że wszyscy powielają Twoją obsesję 1-wire? Chodzi mi o przykłady optymalizacji, jakiekolwiek. Ja, jako początkujący amator (pytania związane...
Po pierwsze, to wcale nie treba tych pakietów nigdzie odsyłać. Z opisu wygląda na to że ma to być raczej "monitor" sieci, a nie urządzenie "aktywne". Wystarczy w monitorowane połączenie wstawić urządzenie typu "hub" i wtedy całość ruchu będzie można oglądać na dodatkowym połączeniu z niego. Po drugie, "czysta" implementacja stosu TCP/IP do niczego się...
Chodziło mi o oba HEXy :D Choć ten z assemblera w sumie niewiele podpowie. W ogóle to trzeba spróbować jakiś bardziej skomplikowany program w assemblerze. Nawet jakieś byle instrukcje bez sensu (nic nie robiące). Chodzi o to żeby sprawdzić poprawność programowania (weryfikowania). Bo puki co to ten program w assemblerze jest bardzo krótki i być może...
A działa? Bo ciekawy jestem a zaraz muszę wychodzić ;) A co do programu to on jest w assemblerze. A nieumienie assembera to (prawie) żadna niewiedza. PS. Assembler będzie twierdził co innego ;)
Bascom nie da sobie z tym rady, C też nie da rady bez wstawki assemblerowej, W wartym 5zl ARM klasy STM32F030F4P6 masz 5 kanałów DMA którymi ogarnąłbyś problem tak po prostu. A z czego Ty chcesz te DMA wyzwalać? W przerwaniu bez wstawki assemblerowej też sobie z tym nie poradzi. Coś nie chce mi działać, wgrałem z kompilowany hex do procka i restartuje...
Witam, mam do dyspozycji ww. zestaw i chcę się nauczyć programować na nim w C. Znam podstawy C, posiadam książkę dedykowaną do tego zestawu pt. "Mikrokontrolery AVR ATmega w praktyce" pana Baranowskiego. Niestety wykorzystywany jest w niej język Assembler. Czy możecie polecić jakąś inną książkę bądź kurs dedykowany do tej płytki? Pozdrawiam
Pomnóż przez 405 i podziel przez 1000. Jak 0.405 jest stałą to pomnóż przez 0.405x1024=415 i podziel przez 1024 co jest łatwe do zrealizowania (tylko przesunięcia bajtów). Inne opcje: http://www.avr-asm-tutorial.net/avr_en/c... Pzdr. N.
0x34 komenda działa, skoro mi się wyświetla, że adres MCUSR to 0x54 Jest to specyfika pewnej grupy rozkazów assemblerowych. Takich jak IN, OUT, CBI, SBI, etc: https://obrazki.elektroda.pl/5094084500_... Tam, gdzie w manualu adres jest podany jako P. Komendy te odwołują się do adresów z zakresu 0-3F: https://obrazki.elektroda.pl/6653290300_...
1. Eliminacja niepotrzebnych skoków tu i tam. Da się to zrobić inaczej - patrz CPSE, SBIC, SBIS. 2. Brak podstawy czasu - impulsy nie będą zawsze równe w czasie. Użycie licznika bardzo wskazane. 3. Brak synchronizacji zmiany stanów na portach - możliwe przesunięcia fazowe. 4. Skąpe komentarze. Za dwa dni nie będziesz wiedział co, jak i dlaczego tak.
Witam Panowie... potrzebuję zrobić kilka programów. Chodzi o programowanie mikrokontrolerów AVR w języku assembler. Jakie poradniki polecacie, jakie programy symulacyjne. Nam osobiście wykładowca polecał książkę Pana Rafała Baranowskiego - Mikrokontrolery AVR ATmega w praktyce Do do programu .... Atmel Studio Z poradników znalazłem coś takiego... http://www.forbot.pl/forum/topics20/kurs...
Wstawki asemblera tak ale C już nie.
Przeróbka hexa jest możliwa o ile: 1. dokonasz dezasemblacji 2. znasz perfekt Assemblera dla AVR'ów 3. potrafisz przerobić program w ASM między tymi prockami Czyli w praktyce - nieopłacalne/niemożliwe ;-)
Witam, Potrzebuję wycisnąć a ATmegi32 maksymalną prędkość ADC. znalazłem wiele artykułów, i w większości z nich zrobione są wstawki w języku Assembler, dzięki którym Atmega korzysta tylko z 8 bitów przetwornika. Wiem że ustawia się to bitem w rejestrze "ADLAR", ale niestety całość musi być napisana w ASM, bo Bascomowa komenda "getadc()" i tak konwertuje...
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ł?...
Na podstawie zgromadzonych przeze mnie informacji, ściągnąłem z sieci program AVR Studio 4, znalazłem fajną stronkę z nauką typu zapal LED itp. uczę się ale nic mi nie wychodzi bo AVR Studio nie pozwala mi na uruchomienie wpisanych instrukcji assembler'owych i sprawdzenie jak działa, w tym wyświetla mi komunikat, że nie znalazł pliku hex - mimo, że...
W jaki sposób chcesz wgrać program w assemblerze 8051 do AVR (Atmega). To dwa kompletnie różne mikrokontrolery. Oparte są o inny rdzeń procesora. Przykładowo - w ATMEGA AVR nie ma instrukcji SETB. Porównując do samochodów - to tak jakbyś do silnika Diesel'a wlał benzynę. Pojedziesz? ale gdzie?
Witam!! Najlepiej to wziąść sie za jakiegoś Atmega np. uniwersalnego ATmega 128. Można w fajnej podstawce kupić w firmie www.propox.com za parę złotych. Ale zależy co ma wykonywać projektowany układ. Do prostych gdzie nie wymagane są obliczenia tylko operacje proste na portach to pasuje '51, a jeśli o szybkość obliczeń, moze wyświetlacze graficzne LCD...
Ten procek ma użyteczność bardzo podobną do archaicznego 8051. Oczywiście pod warunkiem że zaczyna wykonywać kod z EPROM'u. Wtedy i tak musisz się bawić z programowaniem/kasowaniem EPROM'u i egzotycznym assemblerem. http://bitsavers.informatik.uni-stuttgar... Zwykła atmega wyjdzie...
O, ktoś dorzucił we/wy na 24V do Arduino i zamknął w obudowę z przyłączem na śrubki :) Sam kilka razy chciałem tak zrobić. Ile to kosztuje? Myślę że choćby z ciekawości się jutro odezwę. Dajecie jakieś biblioteki do PT100? Bo nie ukrywam że by mi zależało, a z tego co rozumiem mogę to sobie w gołym C programować? Jakieś zdjęcia LCD i klawiatury "wyrzuconej"...
$katalog_WinAVR$/doc/avr-libc/avr-libc-u... Tworzysz osobny plik w asemblerze (.S, nie .s) zawierający procedurę obsługi przerwania, kompilujesz do pliku .o i linkujesz z pozostałymi plikami. W dołączanym wo WinAVR szablonie Makefile jest przewidziane miejsce na wypisanie źródeł w asemblerze (ASRC = $tu wpisz nazwy plików$). Przykład,...
Ad. 1 Nie, ale zapewne potrzebna będzie pamięć zewn. dla uP Ad. 2 Tak jak tu np. http://www.propox.com/products/t_124.htm... Ad. 3 O największej możliwej częstotliwości czyli 16MHz Ad. 4 Długości ścieżek nie mają znaczenia Ad. 5 Tak, można zastąpić Ad. 6 Bez problemu można użyć C, ewentualnie C + assembler
Jest dodatek do AVR Studio pozwalajacy symulowac wyswietlacz, klawiature itp. nazywa sie to HAPSIM http://www.helmix.at/hapsim/ Tak samo jest bardzo fajny VMLAB (juz darmowy - niestety nie rozwijany) http://www.amctools.com/vmlab.htm Moim zdaniem VMLAB lepiej sobie radzi niz wbudowany w AVR Studio symulator. Juz mialem kilka przypadkow ze symulator...
(at)grysek Komunikacja z SD odbywa się przez interfejs SPI. Jedyne co zrobiłem to aktywacja trybu SPI pomiędzy kartą a ATmegą oraz procedury wysłania i odbierania danych poprzez SPI. Nie wiem jak ugryźć ten FAT. (at)francus Przeszukując internet natrafiłem na te biblioteki, jednak one są w języku C. Czy da się to jakoś przetłumaczyć/przerobić lub używać,...
Działa ;-) Ustaw Breakpoint na linijce (prawy myszy Toggle Breakpoint) [syntax=avrasm]com LED[/syntax] naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 itd. Zamiast 15625 ładuj do OCR1A 15624. Wieczorem wrzucę inny sposób migania tym...
Zapomniałeś ustawić stos - bez niego rcall/ret i inne takie tam niebędą działać...
Witam, Pierwszy błąd, który wychwyciłem to brak zachowania i odtworzenia rejestru stanu procesora SREG we wszystkich obsługach przerwań. Należy również zadbać o zachowanie używanych rejestrów (R0-R31). Zobacz ci się stanie np. w takim przypadku: CPI R16,10 ; tutaj przychodi przerwanie które zmienia stan SREG (znaczniki Z,C ...) BRNE xxx LDI...
Przesyłam garść konstruktywnej krytyki. Bisz stworzona aplikacja przy kompilacji programu tłumaczy go na język IL (czyli coś w rodzaju assemblera). Instrukcje w tej postaci trafiają do pamięci flash ATmegi. Pamięć flash podzieliłem na dwie sekcje (po 64kB). Jedną zajmuje oczywiście firmware, a do drugiej zapisywane są instrukcje programu. Firmware posiada...
piszesz funkcje w ASM pamietajac o tym ktore rejestry uzywane sa do przekazywania parametrow, ktore mozesz zmienic, a ktore musisz zachowac (instrukcja do kompilatora gcc wyjasnia ta kwestie, jest to rowniez poruszone w FAQ dla AVR-GCC). dolaczasz do projektu plik naglowkowy, w ktorym podajesz prototyp funkcji: extern uint8_t funkcja(uint8_t parametr);...
dzieki za cenne rady. jesli chodzi jednak o assemblera to nie mowie ze jest trydny i juz napewno nie jest mi obcy, ale w bascomie poporostu bede musial kodowac. Chodzi o to ze we wrzesniu (ostatni miesiac wakacji studenta :) ) bede mial praktyki w firmie ktora zajmuje się tym i wlasnie oni nakazali mi zapoznanie się z tym modelem mikrokontrolera i...
Jeżeli nie jest on zabezpieczony przed odczytem (ustawiona blokada za pomocą Fuse Bitów) to jak najbardziej możesz odczytać zawartość jego pamięci. Jednak będzie to surowy, skompilowany obraz. Możesz go zdekompilować za pomocą np. IDA, ale ostrzegam, że uzyskasz z tego tylko kod assemblera.
Witam. Musze wykorzystac ten uC do probkowania napiecia. Niestety nie wiem jak zainicjalizowac w nim przetwornik A/D oraz jak ograniczyc przedzial napiec, zeby zwiekszyc dokladnosc (moj przedzial to 2,5 - 4V). Musze napisac to w assemblerze. Jezeli ktorys z grupowiczow pisal kiedys cos takiego to bardzo prosze o pomoc. Z gory dzieki.
Mam pytanie. Po co w dzisiejszych czasach jeszcze niektóre firmy robią sprzęty elektroniczne oparte na Atmega jak to przecież ile kasy trzeba wydać by zatrudnić programistów assemblera, dłużej się przecież programuje w assemblerze niz w C. To nie lepiej kupić o 100zł droższą płytkę, która pomieści przekompilowany kod w C++ czy Bascomie niż męczyć się...
Potrzebuję wysłać do urządzenia rozkaz w postaci np 0xFF,0xFE,0x02. Bascom wysyła ale w kodzie ASCII a Ja potrzebuję w czystym hex. Jest to możliwe w Bascom czy trzeba pisać wstawkę assemblerową? Marek
MUL a ATMega jest, potwierdza to Atmel
Kompilowane pod asemblerem AVRasm2 od najnowszyego AVRStudio. Przeznaczenie pliku eep jest do wewnętrznego EEPROM mikrokontrolera, bez jego zaprogramowania robocik ma prawo wariować, z tego co wyczytałem w pliku źródłowym. To nie jest pod WinAVR, ewentualnie avrdude, ale trzeba czytać dokumentację jak się programuje EEPROM. Polecam : http://www.amwaw.edu.pl/~adybkows/elka/i...
Za bardzo nie mogę zrozumieć dlaczego po stronie odbiornika wszystkie dane mają postać zanegowaną w stosunku do nadajnika. Nie musi tak być - po prostu większość (wszystkie?) dostępne demodulatory podczerwieni w przypadku braku sygnału mają na wyjściu stan wysoki. Pojawienie się paczki impulsów generuje stan niski na wyjściu takiego odbiornika. Tu...
Najlepiej zrób coś takiego samemu, wyniesie cię to najtaniej i będziesz miał to czego szukasz. Jak na początek widzę że nie masz wielkich wymagań, dzięki temu twój zestaw powinien zamknąć się w 100 zł. Jako mikrokontroler na początek polecam ATmega8 na jego temat znajdziesz w sieci mnóstwo informacji, łatwo go programować ( programator to wtyczka do...
OCR0=0x20; /// podobno mozna zjechac do 0 i otrzymac fck/2 Zjechać może i można, ale chyba tylko do sprzętowego przełączania pinu. bo obsługa przerwania w 1 cyklu jest niemożliwa. void timer0_comp_isr(void) { PORTC ^= BIT(0); } Wrzuć co kompilator wyrzuca do assemblera do kompilacji. W sumie na obsługe jest 32 takty razem...
IMHO nie ma póki co kombinować ze sprzętem Tak jak pisałem, najpierw należy wyizolować problem - czyli proszę wklej tu kompletny i minimalny przykład, który wg ciebie powinien coś wysyłać, a tego nie robi. Taki przykład to kilkadziesiąt instrukcji assemblera. I od tego możemy zacząć. Bo piszesz dosyć chaotycznie opisując problem i co jakiś czas wyskakują...
bufor FIFO to generalnie pewien obszar pamięci RAM, do którego uzyskujemy dostęp za pomocą dwóch wskaźników. Pierwszy z nich (nazwijmy go WRptr) wskazuje nam miejsce zapisu, a drugi (RDptr) miejsce odczytu. Inicjując bufor ustwaiamy WRptr=RDptr=adres_bufora. Po zapisie lub odczycie zwiększamy odpowiedni wskaźnik o jeden. Zgodnie z tymi założeniami,...
Napiszę słówko jako człowiek, który pisze programy na mikrokontrolery od kilkunastu lat. Taka prawdziwa nauka assemblera w tym momencie nie ma najmniejszego sensu. Dlaczego? Bo niby, którego asemblera uczyć się. Każda rodzina procesorów ma inną listę rozkazową. Jeżeli nauczysz się asemblera, powiedzmy na AVR-y 8 bitowe (seria ATmega), napiszesz tam...
- czy praca równoległych timerów nie będzie jakoś na siebie wpływać (program przerywa pracę na skutek działania timera1 by precyzyjnie wyznaczyć czas, a tu w tym samym momencie dochodzi kolejne przerwanie od innego timera, i co wtedy) Timery działają niezależnie, ponieważ realizowane są sprzętowo. Nie będą na siebie wpływać. Program niestety (w tym...
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. ; ****************************************...
WITAM! Chciałbym prosić o podanie (jeśli istnieje) komenda na losowe wybieranie podprogramu z jakies "puli". Chodzi oto ze sterując AtMegą kilkanascie diod che aby one się losowo zapalały nie w kolejności jakiej ja Je ustawie. Program pisze w AVR STUDIO 4 w języku Assembler'a Z góry dzięki za odpowiedzi/podpowedzi
Twoja płytka jest taka sama, czy bardzo podobna? Jakie nosi oznaczenie? Mnie ostatnio wpadła w łapki właśnie taka. Aby zacząć się nią bawić nie potrzebujesz programatora a bootloader wgrywasz przepinając piny bezpośrednio z FT232. Całą instrukcję, opis i programy znajdziesz na www.and-tech.pl. Są też bardzo podobne zestawy startowe z www.atnel.pl, nie...
po to sie uzywa jezykow wysokiego poziomu, zeby sie nie bawic takimi rzeczami. skoro znikaly ci w EEPROMie zmienne, to znaczy ze cos pomieszales w programie (albo bascom cos pomieszal Nie chodzi o nadpisanie przez kompilator zmiennych tylko o to czy atmega z nimi czegoś nie zrobi. Tak jak wyżej wspomniano, w atmegach jest problem z EEPROM. Najczęściej...
Thunderacer opluł kolejna osobę. Proszę forumowiczów o nie podejmowanie z nim dalszej dyskusji do momentu w którym on opublikuje własny program w ASM do tego projektu który będzie lepszy (podejrzewam że z PWM) niż program Jaglarza. Jestem pewien że Thunderacer pokaże nam swój kunszt programistyczno-projektowy i zaprezentuje coś lepszego. Thunderacer...
Nie miałem za bardzo czasu ale wracam do nierozwiązanego problemu. http://obrazki.elektroda.pl/7699775600_1... http://obrazki.elektroda.pl/3826926900_1... Tak wyglądają screeny po wywołaniu programu CRCGEN. Pliki wgrane programatorem działają poprawnie a przez bootloader tylko ten krótki (choć po przemieleniu ma także...
(Trochę mnie ten AREF podpięty do masy przez kondensator martwi, czy to nie ma czasem wpływu... może zamiast tych 2.56V wewnętrznych wlutować zewnętrznie kabelek z 5V w miejsce nogi AREF?) Wręcz przeciwnie tak włączony kondensator poprawia stabilność napięcia odniesienia dla przetwornika ADC. Sprawdź co pisze o tym w datasheet tego mikrokontrolera...
Mi się wydaje że nawet 20 kanałów spokojnie pójdzie. Ale raczej przerwanie to w assemblerze by musiało być.
pomijajac juz to ze petle sa kiepsko napisane (po co ci zmienna int, skoro wystarczy char?), to predkosc tego kodu zalezna jest od optymalizacji. jedyny sposob - poza syzyfowym liczeniem czasu instrukcji assemblerowych - to symulator. tak czy siak nie ma to jednak specjalnego sensu, bo czas twoich instrukcji bedzie stanowil ulamek tego opoznienia 5ms,...
A czy wykorzystujesz do tego wstawki assembler'owe ??
cos innego w programi Ci zmienia. Ok dzięki. Gdybym miał najmniejsze podejżenia co to może być to bym się nie pytał na forum... Dlatego zamieściłem cały kod programu, łącznie z assemblerem. Nie ma żadnego odwołania do zmiennej cmd_ready_flag (adres 0x100), a jedyne przypisanie do flag_now (adres 0x103) to "000000B3 STS 0x0103,R24". Jako że to jest...
Zapraszam do współpracy w realizacji projektów elektronicznych, sterowania, programowanie niskopoziomowego - ARM STM32, AVR Atmega, Attiny - assembler, C/C++, programowanie FPGA i innych. Projektowanie i realizacja modeli, detali za pomocą frezarki CNC. Więcej szczegółów na mojej stronie [url=limdream.pl]limdream.pl i [url=https://www.facebook.com/micromaste...
A ja obstawiam, że podczas zmieniania zmieniłeś po prostu długość napisów. Otóż program po kompilacji zawiera skoki - jeśli przesuniesz coś za napisem choćby o jeden bajt to potem skok np. do jakiejś funkcji/obsługi przerwania nie "trafi" w jej początek i wszystko się posypie. Stąd robiąc takie modyfikacje musisz zachować dokładnie długość oryginalnego...
Witam Otóż mam mały problem. Pisze sobie szybkie przerwanie dla timera na Atmega644, to co mi kompilator z C przetłumaczył na assembler wrzuciłem do wstawki assemblerowej a przerwanie zadeklarowałem z argumentem ISR_NAKED, rejestry używane w przerwaniu zarezerwowałem przez: register uint16_t licznik asm("r30"); register uint16_t temp...
Witam, napisałem prawie całą obsługę tegoż urządzenia w assemblerze, ale niestety po odbiorze bajtów scratchpada mam same zera, podejrzewam, że problem leży w procedurzeodbioru bajtu, prosze spojrzeć: readbyte: push R16 push R17 push R18 clr R18 clr R16 ldi R17,8 read: cbi PORTB, 0 sbi DDRB, 0 ldi R18, 1 rcall waits ;procedura mikrosekundowa...
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...
Który lepszy? Zadaj głośno to pytanie a zaraz rozpęta się burza mózgów i opinie udowadniające wyższość Świąt Bożego Narodzenia nad Wielkanocą. Odpowiedź na nie jest indywidualną sprawą każdego, kto chce się bawić w kodowanie. Osobiście do programowania AVR-ów używam Win AVR z całym jego dobrodziejstwem inwentarza (C). Do zabaw an kompie środowisko...
Zapodaj cala procedure tak jak masz napisane. Ogolny opis nie wszystko mowi. Tez mi kiedys nie dzialalo przerwanie w ATmega16. A wedlug opisu robilem dobrze. Pozniej sie okazalo ze zle stosuje pewna instrukcje i anuluje wczesniejsze ustawienia. Pozdro Dexter
Witaj Lulubella . Co prawda zbyt wiele Ci nie pomogę (sam sie uczę ASM), ale jednak lepsze coś niż nic. A więc zacznijmy od początku. Niezbędnym dla rozwiązania Twego problemu jest utworzenie tablicy 100-tu element owej w pamięci flash mikrusa. Oto ta tablica .org $2500 oznacza umieszczenie tablicy od adresu 2500 * 2 Teraz przyszedł czas na odczytanie...
Witam, uczę się programować w assemblerze z książki ,,Mikrokontrolery AVR Atmega w praktyce" ale jednej rzeczy nie rozumiem (albo mi sie wydaje że nie rozumiem) Nie wiem jak włączyć rezystory podciągające ale coś tam kombinowałem oto co wykombinowałem: cbi DDRB, DDB1 ;tryb wejściowy linii 1 portu B cbi PORTB1, PB1 ;włącz podciągnięcie linii 1 portu...
Prąd DS1337 faktycznie jest mały, ale rezystory TWI to już wciągają mA. no i procek chodzący na 32 kHz bierze znacznie mniej niż na MHz. O usypianiu procka nic nie mówiłem ;-) 32kHz mogą być niewystarczające do wyświetalnia, ale to chyba kwestia kodu (assembler pomoże??)
Z tym assemblerem to gościu faktycznie przegiął, jakby nie to, że raczkuję w C++ sam bym sobie kod poskładał - oczywiście mógłbym wykorzystać inny projekt, ale wszystko na LCD albo tylko 3 segmenty. Złożę ten układ na płytce, jak nie ruszy to najwyżej odżałuję te 8zł na właściwy uC. Ale i tak dlaczego nie mogę kodu skompilować ? Oto jest pytanie ! EDIT:...
A może Koledze chodzi o problem opisany już kiedyś na końcu tego tematu? [url=http://www.elektroda.pl/rtvforum/to...
http://obrazki.elektroda.pl/8074733100_1... Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było....
Wiesz programowanie w "C" to wystarczy że znajdziesz odpowiedni kompilator żeby zapisał Tobie program zapisany w "C" na język maszynowy. Ja niestety Tobie w tym nie pomogę bo osobiście wolę Assembler'a. Jak będziesz miał już plik *.hex (w języku maszynowym po kompilacji) to wgrasz to sobie do uC. Podałem Tobie rozwiązanie z AtMega bo w sumie do "C"...
Odpowiem na własne pytanie zamieszczając cytat z avrfreaks forum. Autor: clawson. "This is dependent on your C compiler. In the case of GCC there is some "hidden" assembler: Code: 0x0000 JMP reset 0x0001 .. interrupt vector table 0x00NN 0x00NN+1 reset: clear register R1 0x00NN+2 clear SREG (including I) 0x00NN+3 set stack pointer 0x00NN+4 if .data vars...
widze ze nadszedl juz czas na napisanie Post raportowany, brak konkretnych informacji pozwalających rozwiązać problem.
Skoro go zaprogramowałeś to tym samym programem możesz odczytać zawartość mikrokontrolera. Odczytasz oczywiście tylko zawartość pamięci w postaci liczb, nie licz więc na to, że zrobisz z tego z powrotem kod źródłowy, no chyba że użyjesz disasemblera, choć pewnie w assemblerze programu nie pisałeś, więc to i tak niewiele da. No i dobra rada na przyszłość:...
(at)janbernat: Zupełnie nietrafiona odpowiedź. int8_t i; if (i < 0) { ... } // albo if (i & 0x80) { ... } Obydwie linijki robią to samo, obydwie zapewne skompilują się do takich samych rozkazów (ewentualnie adekwatnych, zajmujących tyle samo miejsca i cykli), ale z pierwszej coś wynika, a druga oznacza tylko tyle, że piszący chciał pokazać czego...
Odpowiedzi fajne, ale jednak jestem uparty i chcę zostać przy swoim sprzęcie a jedyne na czym mi zależy to jak i gdzie nauczyć się programowania do np Atmegi328 w microchip studio, bo samo nauczenie języka na pewno da dużo, ale jednak chcę tak bardziej do mikrokontrolerów, bo czymś na pewno się różni, jednak jakoś trzeba zdefiniować że jak będzie stan...
Czesc, od jakiegos czasu ucze sie programować układy atmega. Chciałbym nauczyc sie obslugi wyswietlacza lcd (mam taki 2x16) Czy ktoś z Was mógłby mi pomóc ? Zamieścić przykładowy program i opisać co po kolei sie dzieje ? Szukałm juz w różnych źródłach, ale albo są to bardzo skromne informacje, albo na tyle obszerne, ze mozna sie pogubić. Za wskazówki...
Atmega jeszcze mogła by być ale co do assemblera to dziękuje adaptować biblioteki baskoma do assemblera :)
assembler atmega dioda assembler atmega atmega timery assembler
prostownik pierwotnej wymuszenie sinusoidalne skrzynia automatyczna dodge
ciśnienie układzie klimatyzacji numer seryjny
Sonoff nie wysyła temperatury na serwer - przyczyny Wymiary pasków do Technics RS-EH600