Asemblera niepolecam dla niezawaansowanych osób ponieważ aby go wpełni zrozumieć należy mieć wiedzę o działaniu pamięci, adresach, przelicznia liczb DEC, HEX i BIN we szystkie stron i tym podobne. Bez tego daleko się niezajedzie. EEEEEeeeeeeeeeee...... Ogólnie to, co napisałeś jest zupełną podstawą jeśli chodzi o pisanie programów w jakimkolwiek języku....
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...
#include "msp430.h" ; #define controlled include file NAME main ; module name PUBLIC main ; make the main label vissible ; outside this module ORG 0FFFEh DC16 init ; set reset vector to 'init' label RSEG CSTACK ; pre-declaration of segment RSEG CODE ; place program in 'CODE' segment init: MOV #SFE(CSTACK), SP ; set up stack main:...
Jeszcze kilka informacji. System zapewnia ci obsługę okna dialogowego: komunikaty - brak pętli, standardowy wygląd - prostsze programowanie ale są pewne ograniczenia np. nie potrafiłem dodać swojego kursora (w formie impulsu) w zwykłym oknie chodził poprawnie. Osobiście umieszczam elementy okna dialogowego w pliku zasobów rsrc, można w pliku asm ale...
Witam, mam pewien problem z programem na avt-2250 licze wyrazenie (x-3):2 = y x pobieram z portu rs232 y wyswietlam na hyperterminalu oraz na wyswietlaczu 8 segmentowy avt-2250. Teraz sedno problemu program liczy dobrze gdy wstawie za x liczbe parzysta, w przypadku nie parzystej juz nie. Moglby ktos pomoc ? Mam jeszcze jedno pytanie , jak wyswietlic...
Jak potrzebujesz masz tu ten sam program który działa z MPLABem: LIST P=16F84 include <p16f84.inc> BSF STATUS,5 MOVLW B'11111110' MOVWF TRISA BCF STATUS,5 STARTBTFSC PORTA,1 CALL DIODA BTFSSPORTA,1 CALLDIODA2 GOTO START DIODAMOVLW B'00000001' MOVWF PORTA RETURN DIODA2MOVLW B'00000000' MOVWF PORTA RETURN END; Dając stan wysoki na RA1 świeci sie...
Nie nie. Zobaczyłem tutaj: http://obrazki.elektroda.net/71_12652375... Zobaczyłem że odpowiedziałeś. Ale treści odpowiedzi jeszcze nie widziałem a już wiedziałem jaka będzie. Bo niby jaka inna mogła by być? ;) Jak by to dotyczyło komunikacji radiowej a odpowiedział by Balu to też bym z góry znał odpowiedz ;) No to gratulacje. Asembler wcale...
Przepraszam za zakładanie nowego wątku w temacie tyle razy poruszanym na forum ale właśnie program oparty na wiedzy z forum mi nie działa. Ogólnie układ powinien co 1sek zwiększać wartość na linijce diodowej podłączonej do portu B i w symulacjach na WINAVR to właściwie działa jednak, gdy wgrałem program do kości ciągle obserwuje świecenie pierwszej...
Witam, mam taki nie typowy problem, dlatego jego rozwiązania nie mogę znaleźć przy pomocy Google. Jest to mój pierwszy post na tym forum, gdyż zawsze korzystam z porad w istniejących już tematach i staram się nie zaśmiecać forum i dlatego jak już wspomniałem potrzebuję pomocy indywidualnej. Przechodząc do meritum. Piszę pracę magisterską, znam języki...
Cieszy mnie to, że są jakieś odpowiedzi :) A teraz odpowiadam na wszelkie wątpliwości, pytania i spostrzeżenia: 1. widzę, że bez C i symulatora się nie obejdzie, chyba lepiej potrzymać ze 2 miesiące dłużej program i dorobić te funkcje do programu. 2. układy ST6 i Texas Instruments prawdopodobnie będą obsługiwane, jednakże w późniejszej wersji, ponieważ...
Witam .include "m16def.inc" Pozdrawiam
W sumie to biblioteki można dołączyć na końcu lub umieścić za tablicą "przerwań": CSEG ;segment kodu ORG0 JMPINIT $INCLUDE(procedura.ASM) INIT: ;tu jest główna pętla programu SJMP $ $INCLUDE(procedura2.ASM) Używam prostego, "jednoprzebiegowego" asemblera z funkcją optymalizacji kodu i zawsze to działa. A i zawsze umieszczam wszystkie...
MOTOROLA #include "st7flite19.asm" BYTES segment byte at 80-FF 'ram0' segment byte at 180-1FF 'stack' segment byte at 1000-107F 'eeprom' segment byte at F000-FFDF 'program' segment byte at FFE0-FFFF 'intvect' WORDS segment 'program' .led ld A,#$FF ld PADDR,A ...... l Zamiast: #include "st7flite19.asm" , napisz: #include "st7flite19.inc" a plik st7flite19.asm...
No dobrze zrobię kilka prób to dam znać bo przyda mi się takie narzędzie. Szkoda że nie dałeś programu w asemblerze to by sie wszystko wyjaśniło. W asemblerze include da się załączyć bezproblemowo. N.
Oto szkielet programu *** .dseg .include "2313def.inc" ; Jaki procesor ;.......................................... SEGMENT DANYCH W SRAM ; Twoje dane ;.......................................... SGMENT DANYCH W EEPROM .eseg .org $0000 ; Twoje dane w EEPROM ;..........................................
no to spox, następny przykład (nasm) dla liczb dziesiętnych 32bit %include "asm.mac" global StrToInt SUB StrToInt, lpString mov esi,lpString xor ecx,ecx mov ebx,10 ; podstawa dziesiętna cld .next: sub eax,eax lodsb ; al=[esi] esi++ sub al,'0' jc .quit ; znak mniejszy od '0' : koniec cmp al,9 ja .quit ; znak większy od '9' :...
Spróbuj tak: #include <avr/io.h> .global Dodawanie Dodawanie: add r24,r22 ret Dodano po 1 Zdaje sie że bajtowe parametry zwracane są właśnie w r24.
.include "m32def.inc" .cseg ldi r16, 0b00000001 out DDRA, r16 cos tutaj: rjmp tutaj zapalenie diody mysle ze powinno działac chociaz rok nie pisałem nic w tym asemblerze :D szukaj w mecie kursów asemblera pod AVR jak nie znajdziesz to ja poszukam czegos w swoich materiałach ze studiów z zeszłego roku i wrzuce pare przykladowych programików na 3 pytanie...
... Chciałbym móc ją wywoływać z poziomu C. Oczywiście nic nie stoi na przeszkodzie żeby dopisać tych kilka rozkazów w postaci wstawki asemblerowej np. asm ("sbis UCSRA, RXC") itd... Muszę Cię zmartwić , bo taka "wstawka" nie przejdzie ;( Ale można tak: plik.c #include <avr/io.h> extern void USART_FlushRX(void); int...
Przekopując zakątki internetu nie mogę znaleźć informacji o tym jak zalinkować w eclipse-AVR części asm'owskich v-usb. W samym projekcie dodałem folder z biblioteką w: properties → resource → Linked Resources . W dalszych próbach w: properties → c/c++ General → Paths and Symbols → includes dodałem folder z biblioteką v-usb...
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. ; ****************************************...
Mam pytanie jak w asemblerze avr zadeklarowac w segmencie danych tablice slow, o wielkosci np. 5. Można jedynie zarezerwować stały dany obszar pamięci .dseg tBuffer: .byte 0x05 Powyższe rezerwuje 5 bajtów w SRAM pod etykietą tBuffer . Można używać ten obszar w róznych nie kolidujacych ze soba procedurach. A tak mozna się odwołać do 3 bajtu : sts...
Mimo dobrych chęci nic mi to nie mówi. (zamało wiem o asemblerze) Mam proźbę jak masz dokumentację GCC w wersji polskiej do daj znać. I jeszcze jedna proźba, czy mógbyś przerobić następującą wstawkę żeby poszła w DEV C++ include <?> // czy jest jakies przewidziane dla wywołania "asm" int main(void) { int port=378; // niewiem czy zmiena ta nadaje...
Ale i tak dlaczego nie mogę kodu skompilować ? Oto jest pytanie ! Bo AS musi wiedzieć co z twoim plikiem zrobić. W tym celu potrzebujesz utworzyć normalny projekt, tyle, że asemblerowy. Sam plik asemblera to za mało. - przy #include <mega8.h> pisze "No such file or directory" - domyślam się, że układ został niewłaściwie oznaczony. Jak powinienem...
Czy ktos uzywal wstawek asemblerowych w keilu? Uzylem dyrektyw #pragma ASM i #pragma ENDASM. Kompiluje sie le pokazuje warninga. Ktos wie jak go zlikwidowac? #include <sfr51.h> void main (void) { #pragma asm CLR P3.0 #pragma endasm P3_3=0; } warning: assembling .\testasm.src... linking... *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_STARTUP...
Ogółem wygląda na to że metoda którą przedstawiłem w pierwszym poście jest najprostsza w zaimplementowaniu gdyż wymaga jednego pinu na jeden sensor (i bez ADC). Obydwie metody które są w linku nie wymagają użycia ADC. Poza tym są proste. Poza tym metoda QTOCH wymaga n+1 portów na n czujników. Na ten przykład implementaja metody QTOUCH w asm z inicjacją...
Usuń include z zakładki asemblera..
mam problem z uruchomieniem najprostszego programu napisanego w asemblerze: chce zapalic diode ktora powinna swiecic kiedy na PD5 jest stan niski, dzialajacy program w C sprowadza sie do 2 linijek: sbi(DDRD,PD5); cbi(PORTD,PD5); ale kiedy pisze cos podobnego w asemblerze: .nolist .include "m32def.inc" .list .cseg .org $0000 Main: sbi ddrd, ddd5 cbi...
Mam problem. Chce podejrzeć jak wygląda program po skompilowaniu. Program jest banalny, coś w stylu : #include <iostream.h> using namespace std; int main(void) { int a, ii, jj; i tu parę insrukcji return 0; } Czy znacie jakiś disasembler, który mi pokaże w asemblerze tego fragmentu i tu parę insrukcji Jak to będę umiał zrobić, to porównam później...
Po prostu przychodzi moment kiedy zapanowanie nad kodem assemblera staje się uciazliwe i tu powinno wkroczyc C. Przyznam się szczerze, że nie ma dla mnie takiego momentu (może dlatego, że w kwesiach programowania jestem samoukiem i nie miałem tu szczególnych osób jako autorytetów które by mnie naginały w jakimś kierunku... ;)). W asemblerze też można...
"monitorować RB4 w PIC 16f84a i po podaniu napięcia na RB4 podać stan niski na RB0,1,2,3 na około 2s. a po spadku napięcia zamrugać 2 razy" Definicje rejestrów specjalnych (SFR) dołączasz tak processor 16f84A #include <p16f84A.inc> i nie trzeba ich (a nawet nie można) ponownie deklarować w programie Ta konfiguracja procesora : __config h'3ff5'...
ok, a jesli pisze w asemblerze? A cóż to za różnica :?: Składnia będzie inna niż w C , ale cel ten sam. No i żeby uniknąć kolejnego postu w postaci "wywala błędy" , podam przykład: $NOMOD51 ;"wyłączamy" domyślny plik $INCLUDE (AT898252.INC) ;dołączamy nas interesujący sjmpreset reset: nop sjmp reset end Piotrek
Zamieszczając w głównym programie CALL etykieta takiego podprogramu assembler nie sygnalizuje błędu Include we wszystkich językach programowania jakie znam, jest prostym wstawieniem Y a jakimś puncie Y. ale nie wykonuje podprogramu. Podejrzewam, że musisz zmienić diagnozę, albo ten kod pokazać. W asemblerze można zrobić dziesiatki błędów, ze kod jest...
CPI r24, 4BRSH wylacz_usypianie...wylacz_usypianie:CLI.... Kod: avrasm ] CPI r24, 4BRSH wylacz_usypianie...wylacz_usypianie:CLI.... Powiem szczerze, że nie bardzo rozumiem. Obecny kod wygląda w ten sposób: [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h>...
Nie masz wyjścia, jak zacząć bawić się AVRStudio ... :D Bascom potrzebuje SRAM-u, którego ten procek nie posiada... A kodzik, proszę bardzo, ale za jego kompatybilność z Bas-monster nie odpowiadam ;) : #include "m8515def.inc" ; Prohibits use of non-implemented instructions (ATmega8515) .cseg ;—————R...
OK Dzięki Dodano po 9 Jeszcze jedno: czemu nie może skompilować ".include "2313def.inc" ??
To jest zdaje się biblioteka pisana pod kątem AVRGcc: Definicje rejestrów są tu: http://www.papafernandez.com/avr/ATtiny/... http://www.papafernandez.com/avr/ATtiny/...
Kompilowac sie kompiluje.Plik HEX tez jest ale jest tez raport obledach. Oczywiscie ze zmienilem device...ale w pliku asemblera jest ->LIST P=16F873A ->INCLUDE "p16f873a.inc"
WItam Czy ktoś posiada może plik pomocniczy "include" do asemblera obsługujący procesor ADuC841? Korzystam z MetaLink Assemblera i potrzebuję do niego tego własnie pliku. Wiem ze istnieje taka biblioteka , a nazywa się MOD841 bo w przykładowych kodach programów ze strony analoga znajduje takie właśnie nagłówki. Gdyby ktoś potrafił mi pomóc byłbym wdzięczny....
Ja w takim przypadku dodaję moduł w asemblerze. #include <avr/io.h> #include <avr/interrupt.h> ; przepełnienie timera0 - nic (wybudzanie) .global SIG_OVERFLOW0 SIG_OVERFLOW0: ; tu można wstawić kod reti Szablonowo wygląda to tak mniej więcej tak.
Witam;) Jeśli chodzi o nadawanie kodu cyfr klawiaturki zestawu to pisałem jakiś czas temu taki program w ramach zaliczenia tegoż przedmiotu. Podejrzewam jednak, że chodzi o wykorzystanie np. HyperTerminal'a i podawanie znaku z klawiatury komputera. Oto program który wówczas napisałem: st7/ TITLE"starter.asm" MOTOROLA #INCLUDE "st72334.inc"...
Próbuję ale sypie błędami przy kompilacji a program jest dobrze napisany bo w pracowni działał. Pomimo zapisu jako C on to chyba traktuje jako asemblera np. "Syntax error at 2 in "MCU 8051 IDE.asm": Unknown keyword: `#include' `#include' is neither macro nor instruction nor directive"
A mój makefile wygląda tak: ########################################... # Makefile for the project Atiny13c ########################################... ## General Flags PROJECT = Atiny13c MCU = attiny13 TARGET = Atiny13c.elf CC = avr-gcc.exe ## Options common to compile, link and...
A przepraszam, dlaczego do 2313 stosujesz "8515def.inc"? Nie ładniej wyglądałoby: .include "2313def.inc" ? Pozdrawiam.
Kolego Tomcio7 , avr/io.h to nie jest żadna biblioteka tylko zbiór definicji. Oczywiście można te definicje przepisać do pliku z kodem źródłowym ("wyręczając" kompilator), ale zanim się to zrobi, to trzeba zrozumieć co te definicje oznaczają. Krótko - kolega przepisał definicje dla asemblera zamiast dla kompilatora C. Konkretnie chodzi o test warunku...
Nie. Wszystkie $include mam na samym początku pliku "głównego" - tak jak się to robi np. dołączając pliki nagłówkowe w języku C. Teraz wyjeżdżam, ale jak wrócę to spróbuję powstawiać je w odpowiednie miejsca. Niesądzę jednak, aby to pomogło - pliki te zawierają procedury oraz deklaracje zmiennych w pamięci RAM i Flash, zawsze są poprzedzone odpowiednio...
Jak przerobić program c++ na asembler? program w c++: #include <iostream> using namespace std; int main() { int n, k; cin >> n >> k; int tab Proszę pamiętać o używaniu znaczników syntax . Opcja Listing kodu . Proszę to poprawić! - arnoldziq
Brrr, Basic. ;) Przerzuć się na C lub asemblera. Nowe AVRStudio można zintegrować z WinGCC i działa to bez zarzutów. A w C deklarujesz sobie od razu, czy masz zmienną całkowitą (char, int), czy zmiennoprzecinkową (float) i o dziwo artytmetyka zmiennoprzecinkowa nie zajmuje ogromnych ilości flasha. :) Ciekawie prawisz , tylko wytłumacz mi dlaczego ten...
Witam!!! Muszę przerobić pewien dość krótki fragment wstawki asemblerowej z atmega32 na atmega88. Oryginał się zaczyna: .arch atmega32 #include <avr/io.h> #include "lcd_conf.h" po zmianie na atmega88 dostaję komunikat, że procesor jest niezdefiniowany (jak na listingu poniżej) In file included from lcd_write.S:3: /usr/lib/gcc/avr/4.1.0/../../../../avr/i...
$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,...
Napisałem prosty program w asemblerze na ustawianie stanów wyjść lini portów i mam problem w napisaniu tego samego w języku C: [syntax=asembler] .nolist .include "m32def.inc" .list .cseg .org 0 sbi DDRB, 0 sbi DDRB, 1 sbi PORTB, 1 sbi PORTB, 0 petla: rjmp petla [/syntax] Powyższy program działa, ale niestety wszystkie programy napisane w języku C (program...
Podam Ci przykład, jaki u mnie działa: #include <iostream> using namespace std; int port=0x378; int dane=0x01; void outport(int port,int dane); int main() { outport(port,dane); cout <<"D0 ustawione na 1"; getchar(); return 0; }; void outport(int port,int dane) { asm(".intel_syntax...
Witam Piszę w asemblerze (za pomocą RIDE IDE) program na procesor AT90S8515. Potrzebuję pliku z definicjami rejestrów specjalnych (INCLUDE). Jeśli ktoś wie gdzie w sieci takie pliki się znajdują lub jest w posiadaniu takich prosiłbym o przesłanie ( zeisp(at)interia.pl ). Dziękuję Grzegorz.
Kazdy procesor operuje na liczbach. Dla niego nie jest zrozumiale P1, zrozumiale jest dla Ciebie, czlowieka. Ow tajemniczy plik z definicjami to wlasnie nic innego jak tlumacz. Zawarte w nim sa "tlumaczenia" z jezyka ludzkiego na liczby tak zeby kompilator wiedzial ze piszac P1 masz na mysli liczbe 90 hex. Takie pliki sa potrzebne zawsze jesli chcesz...
Witam , #include <iostream> using namespace std; int port=0x378; int dane=0x01; void outport(int port,int dane); int main() { outport(port,dane); cout <<"D0 ustawione na 1"; getchar(); return 0; }; void outport(int port,int dane) { asm(".intel_syntax noprefix");...
Witam, Przyjaciele moi programiści. Przeczytałem pól książki związanej z asemblerem i oto co stworzyłem. Program oczywiście działa, dziękuje wam wszystkim za pomoc i oczywiście dobre rady. Temat uznaje za zakończony. ;Aplikacja tworzy plik \dane.txt i zapisuje do niego 100 pseudolosowych liczb .586P .MODEL flat, STDCALL ;--- stale z pliku .\include\windows.inc...
Tu masz gotowce z bardzo dobrym opisem, wystarczy ściągnąć plik i dołączyć include lub wkleić do źródła http://cyna.barlinek.biz/index.php?stron... Chyba ok 10 instrukcji ;)
Swojego czasu próbowałem upchnąć program w attiny13 (1kb ROM) i mi się nie udało. Ostatnio przekonałem się do asemblera wiec przyszedł czas żeby projekt który chciałem zrobić - skończyć. Na razie zacząłem pisać to w symulatorze. Zatrzymałem się już na takim etapie: .nolist .include "tn13def.inc" .list .DEF q1 = R16 rjmp start start: main_loop:...
W ten sposób: Jaka to książka? Również jestem ciekawy co to za książka.
Piszesz w C czy w assemblerze? W tytule masz c, ale format include wskazuje na asembler... Jeśli to jest jednak c to masz włączyć nagłówek IO.h on sobie zainkluduje co potrzeba, o ile w projekcie wybierzesz właściwy procesor. W każdym przypadku pokaż kod programu, który powoduje takie zachowanie. Sorki, ale w zapewnienia "Tak, oczywiście, wszystko jest...
Kod w obszarze wektorów przerwań jest jak najbardziej bezpieczny, dopóki przerwania nie zostaną włączone. Czasem tak się robi, gdy zaczyna brakować flasha. Stos trzeba koniecznie zainicjalizować, żeby można było używać CALL i RET. RET powoduje powrót do miejsca z którego podprogram został wykonany. call podprogram ; ret wroci tutaj (reszta programu)...
Witam mam problem z działaniem takiego programu [syntax=avrasm] .INCLUDE "m32def.inc" .INCLUDE "czekaj_ms.inc"; oczekiwanie milisekundowe ldi R16,HIGH(RAMEND) out SPH,R16 ldi R16,LOW(RAMEND) out SPL,R16 ldi R16,0x01 out DDRC,R16 .EQU SYS_FREQ=8 ; Replace with your application code ldi R16,200 ldi R17,1 start: ldi R22,0x00 out PORTC,R22 call Czekaj_ms...
Witam wszystkich, proszę o pomoc w rozwiązaniu problemu w kodzie w języku C ale ze wstawką asemblerową. Poniżej zamieszczam kod. [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <util/delay.h> #define WDT_ENABLE ISR(WDT_vect)//przerwanie...
Spróbuj tak: [syntax=c]#include <avr/cpufunc.h> ... _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); ...[/syntax]
uzywam borlandowskiego buildera. Hm... myslałem ze wymaga to wiekszych kompikacji, nic tylko dodanie biblioteki do swoistego "include". Czy jesli tak zrobie, moge bez zadnej pomocy, odwoływania sie do uchwytów etc odwoływac sie od razu do polecen? przyznam sie ze dll uzywałem tylko raz i to w celach szkoleniowo-dydatkotyczny, wiec sie nie orientuje....
Szanowny kolego, ja rozumiem Twoje powody do language-war, ale: 1. Producent układów AVR (Atmel) daje darmowe narzędzia do asm i to ciągle ulepszane, czyli widzi sens, bo monitoruje ilość pobrań, ale to tak poza konkursem, nie mam zamiaru nikogo namawiać, skoro nie zrobił od dłuższego czasu (być może w ogóle) w asm ani jednego projektu i z braku wprawy...
Ten temat pojawia się tu od czasu do czasu ale żadna z porad nie jest skuteczna w moim przypadku. Od paru godzin już męczę się z wpisaniem czegokolwiek pod EEPROM. I udało mi się to ale jedynie w asemblerze w którym mam już pewne doświadczenie. Próbowałem zarówno EEMEM jak i inne funkcje z nagłówka eeprom.h ale nic z tego. Najbardziej obiecujący lecz...
Dzieki. Czyli sa to procedury asm do wywolania w C, tak? Niestety, nie pisze w C i potrzebuje czystych asm. Problemem jest takze brak dodatkowych plikow, np. CtoASM.inc (#include CtoASM.inc) w ktorych jest definicja przypisanych do rejestrow nazw. Bez tej definicji - jezeli przypisze 'po swojemu' ani dane wejsciowe ani wynik nie beda juz w np. R25,R24......
Witam Napisałem program w asemblerze na PIC16F84A. Przetestowałem go tylko w MPLAB'ie i PIC Simuator. Wszystko działa bez zarzutu. Miałem pod ręką tylko PIC16F628A 20MHz wiec zaprogramowałem go.Uprzednio zmieniwszy procedurę inicjalizacjii procka(w sumie wyłączyłem komparator i lekko zmieniłem CONFIGURATION BIT). Niestety nie chce działać prawidłowo,ani...
Masz jeszcze kilka rozwiązań. Skoro to całe funkcje, to możesz je przenieść do osobnego pliku z rozszerzeniem .S - plik asemblera, który przed asemblacją zostanie przetworzony przez preprocesor - możesz tam normalnie używać #define, #include itd. Oczywiście musisz się stosować do konwencji przekazywania parametrów/zachowywania rejestrów. Jeśli chodzi...
tablicę z danymi umieść na samym końcu za programem: [syntax=asm].include "tn13def.inc" .cseg .org0x00 rjmpstart .org 0x0A start: cli ; blokada przerwań ldi r16,low(RAMEND) ; stos na koniec RAM out SPL,r16 ldi r16,0b00000111 ;konfiguruje porty B pin0-pin2 na wyjscie out ddrb,r16 ps0:ldiZL,low(Ledy<<1) ;adres tabeli w pamięci programu ldiZH,high(Ledy<<1)...
Poprobowalem z asemblerem ASM51 Metalink, ktory bodajze jest w dziale download. Kilka kosmetycznych poprawek i kod sie asembluje. Jest jednak jeden problem. Jak przenisolem czesc kodu do drugiego pliku i dolaczalem ten plik dyrektywa &INCLUDE(plik) to komplilowalo sie co prawda bez bledu, ale w chwili proby wykonania kodu ktory byl w czesci dolaczanej...
.386 .model flat, stdcall option casemap: none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\include\user32.inc includelib \masm32\lib\user32.lib .data tytul db ' Asembler' , 0 dane db '987654321', 0 min db '?',0 /[b]Dlaczego w apostrofach jest '0'[/b]...
Witam. Również piszę sporo w assamblerze jednak jeszcze nigdy nie używałem makr i mam kilka pytań odnośnie ich używania 1) jak przeskakuje się do wykonania makra ?? 2) z tego co mi się wydaje to pliki inc które można znaleźć w tym temacie należy dodać d programu przy pomocy .include ?? Jeśli tak to czy wszystkie zawarte w tym pliku makra zostaną skompilowane...
po pierwsze są 2 atmelowskie assemblery, na '51 i AVR. Chciałem się dowiedzieć w jaki sposób piszecie programy w asemblerze udostępnionym przez firmę atmel. Jak go uruchomić, jak zapisać program i inne rzeczy. ja pisze w Avr Studio 4. w jaki sposób?w kolejności w kodzie: skoki do przerwań, procedury obsługi przerwań, właściwy kod, dodatkowe procedury(w...
Może trzeba dać SEI przed uśpieniem procka? Przecież włącza SEI tyle że wszystko wg najgorszych praktyk programistycznch. SREG |= 0x80; --------------------------------- W nocie PDF ATtiny2313 wprawdzie napisano w uwadze, że tylko INT0 reaguje na wybudzanie poziomem, ale to słówko tylko (Only) tyczy się poziomu a nie samego przerwania. Powinno być...
Tak. Jest opisane w dokumentacji doi avr-libc. Szablon makefile posiada również taką funkcję, ale jest nieco kulawy jeżeli chodzi o make clean (dotyczy to nie tylko bibliotek) - nie usunie biblioteki, oraz plików .o i .lst wygenerowanych ze źródeł w asemblerze i C++. Każda funkcja musi być w osobnym pliku, żeby taka biblioteka miała sens. Potem dla...
co do _sfr_io_addr: - głównie chodzi o to, że standardowa przestrzeń IO ma 64 komórki (dostępne przez instrukcje in/out), ale dostępne również w przestrzeni pamięci ram (przesunięcie +0x20).. w nowszych/większych procesorach te 64 komórki może być za mało - wtedy dodatkowe komórki są pod wyższymi adresami w przestrzeni pamięci, ale oznacza to, że są...
Miewiem czym autor to kompilował,ale wiedząc ze to jest w C dla AVRów to można to zrobić w WinAVR ,VMLAB i w ielu innjych programach.Ja mam zainstalowanego WinAVR (bo ma w sobie już kompilator AVR-GCC) i VMLAB w którym tworze projekty.Dlaczego taka kombinacja??Bo przyzwycziłem się do VMLAB jak pisałem w asemblerze dla AVRów,no i mozna odrazu tam testować...
Ale te same komendy masz do dyspozycji w asemblerze v.2 czy v.2.1 np.: #define #elif #else #endif #error #if #ifdef #ifndef #include #message .... tylko nie bardzo wiem jak z nich korzystać :/ przykłady w helpie są ubogie
Witam! Napisałem następujący program w asemblerze i chciałbym przerobić go w ten sposób aby na naciśnięcie przycisku było np kilka sekund, a po tym czasie program zaczynałby się od nowa. Pojawia się jednak problem, ponieważ w trakcie wykonywania pętli typu wait: ldi r18,255 dec r18 brne wait program nie zareaguje na wciśnięcie przycisku. Tak myślałem...
Witam, Tworze projekt w AVR Studio + kompilator GCC Win AVR. Ogólnie kod piszę w C. Ale chciałem porobić wstawki w assemblerze - jednak będę musiał dużo pisać w asm(ważny element programu) i zdecydowałem sie na dodanie całego pliku napisanego w asemblerze. Podsumowując mam projekt: funkcja main w pliku "*.c" . Dodatkowy plik z rozszerzeniem *.s (Asembler)...
Może zróbmy coś takiego. Poniżej zamieszczam program, który w nieskończonej pętli wysyła znaki na terminal. To jest narazie wszystko co udało mi się napisać z pomocą książek. Na samej górze tego programu zadeklarowałem tablicę, w której będę chciał przechować te 6 trzycyfrowych liczb. Czy pomółbyś mi rozbudować ten program w oparciu o Twój pomysł? $NOBUILTIN...
Witam. Pewnie tematów z podobnymi prośbami było tu już mnóstwo. Niestety nie znalazłem odpowiedzi na nurtujące mnie pytanie. Napisałem taki króciutki programik w asm. .include "m8def.inc" .CSEG .org 0x0000 rjmp RESET .org 0x001C rjmp timer0 RESET: ;inicjowanie stosu ldi r16, LOW(RAMEND) out SPL, r16 ldi r16, HIGH(RAMEND) out SPH, r16 ;poczatkowe ustawienia...
Witam, mam oto taki program napisany w asemblerze pod Atmega16: .INCLUDE "m16def.inc" ldi R16, 0xFF out DDRA, R16 .EQU SYS_FREQ = 16 Petla: ldi R16, 0b11111111 out PORTA, R16 rjmp Delay rjmp Delay rjmp Delay rjmp Delay rjmp Delay rjmp Delay rjmp Delay rjmp Delay ldi R16, 0b00000000 out PORTA, R16 rjmp Petla Delay: ldi R16, 1 ldi R16,...
Mam taki problem z portem C , napisałem taki program by zmieniał stany na porcie C dla testu, akurat jest on wspoldzielony z JTAGiem, wyłączyłem JTAG, w fuse bits zaznaczając ptaszkiem JTAGEN w ponyprog dodatkowo wpisuje 1 do rejestru MCUCSR w bicie JTD, niestety miga mi tylko połowa portu, co ciekawe w avrstudio jest bit JDT a w pdf JTD, sprawdziłem...
Witam. Temat już był wałkowany wielokrotnie ale w asm dopiero zaczynam i już pół dnia siedzę i mi sie coś sypie. $include(REG51.inc) ORG 000Bh JMPPRZERWANIE MOV TMOD, #00000001b SETB TR0 SETB EA SETB ET0 MOV R7,#1FH ;=======================================... LOOP: JMP LOOP ;=======================================... PRZERWANIE: PUSH B...
[syntax=x86asm] list p=10F200 #include ;***** CONFIGURATION __CONFIG _MCLRE_OFF & _CP_ON & _WDT_ON ;***** VARIABLE DEFINITIONS UDATA dc1 res 1 ;***** RESET VECTOR ****************************************... RESET CODE 0x000 movwf OSCCAL movlwb'10111111' option movlwb'1000' ; configure GP0-2 (only) as an output trisGPIO nop nop nop nop nop...
Z powodu objętości programu musze napisać w asemblerze troche rzeczy, i mam tu problem z transmisją na rs232. Niby cos wysyłą, ale terminal źle odbiera. Potrzebowałbym wyświetlić jakąkolwiek daną, 1 bajtową, w pętli co 1-2 sekundy, i to mi nie dziaą. w bascomie program testowy działą więc to nie wina rsa i max 232. Potrzeba mi w asemblerze odpowiedznika...
z "drobną" pomocą kolegi napisałem coś takiego $include (C8051F020.inc) CSEG AT 0 ORG 000h JMP Main ;Program glowny ORG 083h JMP Int_timer4 ;Timer 4 Overflow Main: MOV WDTCN,#0xDE MOV WDTCN,#0xAD Init_T4: ORL T4CON, #000h MOV RCAP4L, #000h MOV RCAP4H, #0a0h ;!!! W tym miejscu zmienia sie czestotliwosc MOV EIE2, #0x04 ORL T4CON, #004h...
Kolejne pytanie : Jak użyć atrybutu "naked" ? Pozdrawiam. #include <avr/io.h> void naked_func() __attribute__ ((naked)); void func() { asm("nop"); } /* wygenerowany kod asm bez optymalizacji void func() PUSH R28 PUSH R29 IN R28,0x3D IN R29,0x3E NOP POP R29 POP R28 RET */ void...
Mam coś takiego jak poniżej. Różne rzeczy są zakomentowane bo w myśl zasady "tonący brzytwy się chwyta" próbowałem już różnych dziwnych rzeczy niemniej AS chyba w ogóle nie widzi tego pliku bo nie zwraca uwagę na to co wpisuję. [syntax=avrasm]//#include <avr/io.h> //.include "m8def.inc" #defineX1_2_SFR_IO_ADDR(PINB),1 #defineX1_4_SFR_IO_ADDR(PINB),2...
Dość, że taka starość ten procesor to jeszcze jakieś asemblery na kartce, paranoja. Osobiście to bym napisał w C++ albo jako schematy blokowy, ale kod jest lepszy bo go można uruchomić. Potem to już tylko ręczne przekształcenie do asemblera. Na przykład: [syntax=c]#include <iostream> #include <stack> using namespace std; int main() { uint8_t...
Witam! Mógłby mi ktoś pomóc i powiedzieć dlaczego mie nie działa ten wyświetlacz? Z góry dziekuje. .include "m16def.inc" .equ E = 0 .equ RS = 1 .equ DATA = PORTA ; do portu A podlaczona szyna danych 8 bitowa ; port C pin 0 -- E ; port C pin 1 -- RS .list .cseg .org0 ldiR16,HIGH(RAMEND) outSPH,R16 ldiR16,LOW(RAMEND) outSPL,R16 ldi R16, 0xFF out DDRA,...
Witam Próbuje napisać program w asemblerze wykorzystujący przerwania od dwóch liczników (uczą dopiero programowania avr w asemblerze) Przerwanie od licznika 0 ma obsługiwać pierwsze cztery wyświetlacze a przerwania od licznika 2 kolejne 4 Problem polega na tym - że pojedynczo liczniki działają a jak chce użyć dwóch to działa tylko jeden (licznik 2)....
Zmieniłem kod.Niby jest bez błędów ale jest brak reakcji na zmianę wartości w OCR0,tzn.czas odliczany jest taki sam bez względu na zmianę w OCR0. #include <avr/io.h> #include<avr/interrupt.h> .global pwm TIMER0_COMP_vect : ldi r17,0 out _SFR_IO_ADDR(TCCR0),r17 out _SFR_IO_ADDR( TCNT0),r17 reti pwm: push r17 ldi r17,0b00001101...
Witam. ja mam też problem z silnikiem krokowym. Wymontowałem go z dysku twardego(więc może to jest raczej DLDC ale nie jestem pewien). W każdym razie zrobiłem układ jak na schemacie , na: - Atmega8 - BS170 - rezystorki i to wszystko. I moim zdaniem (czyli wątpliwe;) ) to powinno działać. Pobniżej przedstawiam kod programu . Może coś robie źle :( , już...
Ale to jest nówka(też może być włączony Watchdog?) na pewno dobrze podłączyłem Dodano po 23 Na pewno coś jest źle skonfigurowane w WinAVR(jeśli chodzi o asembler) bo wgrałem ten program w C i działa: [syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB = 0xFF; PORTB =0xFF; }[/syntax]
Program był pisany w środowisku Mikroluk v1.0 prerelease (czego nie podałem wcześniej). W tym programie nie ma możliwości zdefiniowania portów, ani rejestrów. W kiepskim srodowisku sie obracasz . Asembler, ktory nie zna elementarnych dyrektyw, jak EQU, ORG, #Include ... jest o kant (...) potluc! Asembler i debugger byc moze znajdziesz do sciagniecia...
Jestem początkujący jeśli chodzi o mikrokontrolery AVR. Znam dobrze natomiast '51. Chcę napisać program naprzemiennie gaszący i zapalający diodę LED. Dioda jest podpięta katodą do linii portu, anoda przez rezystor do +5V. W związku z tym dioda jest sterowana zerem. Poniżej przedstawiam mój kod. Częstotliwość zegara wynosi 16MHz. .nolist .include "m8def.inc"...
eclipse include ds18b20 include include winavr
alarm master podłączyć wyswietlacz k750i blokada pływająca
falownik hybrydowy growatt blaupunkt ms30bt
Zmywarka Electrolux zatrzymuje się i rusza losowo - przyczyny i rozwiązania Waga łazienkowa Huawei szybko rozładowuje baterie - przyczyny i rozwiązania