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...
Witam .include "m16def.inc" Pozdrawiam
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 ;..........................................
$INCLUDE(REG517.INC) $INCLUDE(c:REG517.INC) $INCLUDE(c:\Keil\C51\Examples\MOJE\LCD.I... Asembler asem51 dwa pierwsze akceptuje, w trzecim może być za długa ścieżka.
... 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...
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. ; ****************************************...
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...
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.
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
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...
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...
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...
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...
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...
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...
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' :...
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...
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...
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ą...
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");...
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>...
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...
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"...
Usuń include z zakładki asemblera..
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. Ja polecam C++ ponieważ: -Jest bardzo popularny(duża ilość książek i innych materiałów) -Wydaje się dosyć prosty -Daje ogromne...
Spróbuj tak: [syntax=c]#include <avr/cpufunc.h> ... _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); ...[/syntax]
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...
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...
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]
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.
.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]...
podejrzałem jako asembler i ta funkcja dla debug nie istnieje. Napisałem cos takiego: #include <avr\io.h> int cz(int a) { PORTB=a; return 0; } int main(void) { DDRB=0xff; PORTB=0xff; while(1) { cz(54); } return 0; } i też funkcji cz nie widzi . Jak należy programować aby funkcje były...
OK Dzięki Dodano po 9 Jeszcze jedno: czemu nie może skompilować ".include "2313def.inc" ??
a jak to wstawic do c++ zeby sie z nim nie zagryzlo? mozna zrobic to np tak : #include < iostream.h> main(){ int dana; _asm { mov dx,0378h mov al,dana out dx,al } return(0); } ?? jestem lewy jesli chodzi o asembler:(
"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'...
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ć...
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....
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...
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...
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)...
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...
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"
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/...
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...
Witam wszystkich :) Przyjąłem już strategię działania. Otóż, wersja MikroLuk v2.0 zostanie wypuszczona z moim własnym asemblerem, obsługą dwóch, może trzech programatorów, symulatorem i następującymi możliwościami integracyjnymi: 1. Będzie można zdefiniować obsługę programatora poprzez wywoływanie zewnętrznego oprogramowania, będą również dodane standardowe...
A przepraszam, dlaczego do 2313 stosujesz "8515def.inc"? Nie ładniej wyglądałoby: .include "2313def.inc" ? Pozdrawiam.
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...
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...
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.
[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...
.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...
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...
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"
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, Zaczynam właśnie swoją przygodę z Avr-ami i asemblerem i już pojawił się problem. Próbuje skompilować następujący kod: .nolist .include "m16def.inc" .list .cseg .org 0 ldi r16, 0xFF out DDRD, r16 main: out PORTD, r16 rjmp main Dostaje komunikat: FATAL ERROR: Cannot open output file C:\Documents and Settings\Pawel\Moje dokumenty\projekt3\projekt3.hex:...
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,...
Jeśli twój kod nie jest zbytnio "udziwniony" to spróbuj użyć środowiska MikroLuk 1.0 http://www.mikroluk.prv.pl/. Asembler powinien już działać w miarę poprawnie. Program jest pisany "pod" XP, ale działa także ze starszymi OS-ami. Możesz także poszukać jakiś DOS-owych asemblerów. W konsoli (tzn. z poziomu okna lini poleceń) powinny przecież chodzić....
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)...
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.
Witam. Niedawno kupiłem książkę Pawła Borkowskiego "AVR & ARM7-programowanie mikrokontrolerów dla każdego " Pierwszy program jest w języku asemblera i ma za zadanie zaświecić diodę led (sch1), pokazuje też w jaki sposób określać porty uC jako wyjścia itp. Zgodnie z tym co było w tekście (programator SI prog) zaprogramowałem tym uC. Po włączeniu zasilnia...
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...
Witam, posiadam kod który po wgraniu do 8051 wyświetla na wyświetlaczu 7 segmentowym czas. Czas zaczyna zliczać od 00:00 ale min i sekundy. Jest możliwość by wyświetlał godz i min? Dopiero zaczynam z assemblerem i mam mały problem zrozumieć kod który znalazłem w sieci. Mógłby ktoś opisać co oznaczają: SWAP ANL [syntax=x86asm] $INCLUDE (REG52.INC) ORG...
Może tak: W c++ wyglądałoby to np. tak: A w Assembler: ... Pewnie mało efektywnie ale tak by kompilator przetłumaczył ten konkretny kod, te konkretne rozwiazanie Nie rozumiem, co kombinujesz z tym asemblerem. Tu taki, tam, zupełnie inny (korzystając z b. standardowej C++ - jaki to assembler). Bez sensu. Masz się "wykazać"?
Kompilator avr-gcc opytmalizuje kod na tyle, ze trudno jest uzyskac mniejsze programy samemu piszac w assemblerze. tu bym się z kolegą nie zgodził do końca ;) .... bo wszystko zależy na ile ktoś zna asembler .... ... natomiast w całej rozciągłości zgadzam się z kolegą dex - bo wielu ludzi zaczynając naukę asemblera zraża się tym, że napisze jakieś...
:cry: OOOPS!!! Na szczęście używałem tych procedur w wersji 16/16 i 32/32 Widocznie nie da się tego algorytmu używać w wersji z 24/16 (nierówny wymiar dzielnej i dzielnika). Poniżej załączam programik do testowania dzielenia 3-bajtowego: ;sprawdzanie procedury dzielenia 24/24 .include "m162def.inc" .equ Dzielna=0x697800 .equ Dzielnik=0x008D00...
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:...
Osobiście proponuję wersję kodu łatwiejszą do połapania się, w pełni proceduralną ;) i łatwiej modyfikowalną przy zmianie konfiguracji schematu (np. przy zmianie portu na przyciski nie wprowadzamy zmian pieczołowicie w każdym miejscu z dużym ryzykiem, że coś pominiemy, tylko zmieniamy w jednym i gra), z pełniejszym wykorzystaniem tego, co oferuje asembler...
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...
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. Pierwszy raz mi nie powiodła się przesiadka z asm'51 na asm'avr - ze względu właśnie różnorodności poleceń itp. Teraz podjąłem się drugi raz i nie jest tak źle - piszę po kolei swoje odrębne procedurki - tak jak piszesz muszą zajmować niestety więcej pamięci ale za to atmegi mają jej sporo w porównaniu do '51. Jeśli ty jesteś "skrzywiony" to...
No niestety przewidywania się sprawdziły, są jakieś linie, ale nie wygląda to tak jak ma wyglądać:cry: Coraz bardziej zastanawiam się nad asemblerem, tylko w zasadzie czas na naukę zaczyna się kończyć, bo przyjdzie szkoła i nie będzie go za wiele. Moglibyście z doświadczenia napisać ile mniej więcej trzeba czasu bym nauczył się asemblera w takim stopniu...
Witam Chcę zbudować generator fali 36kHz. Doczytałem się ,że mogę wykorzystać tryb CTC. Proszę o kilka wskazówek: 1. Czy dobrze myślę ,że wyjście timera T0 jest na nodze PB2 (14) ? 2. Chcąc zrobić generator fali muszę: - ustawić częstotliwość zegara - ustawić toggle mode - ustawić preskaler Wyliczyłem ze wzoru z dokumentacji ,że potrzebuję częstotliwość...
1. Kontrola nad kodem w przypadku C jest niemal taka sama jak w asm. 2. C to jest w zasadzie "strukturalny asembler" :wink: i do mikrokontrolerów wcale nie trzeba go naciągać. Różne rodzaje pamięci w AVR narzucają konieczność kontroli - w asm także. I to jest poza standardowym C. 3. Dyrektywa "include" w C działa tak samo, jak w asemblerze, jeżeli ten...
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...
Witam! Od kilku dni uczę się asemblera. Chciałem napisać bibliotekę DLL w asemblerze, która zamienia małe literki na duże, w podanym w argumencie łańcuchu(w ramach nauki). Funkcja biblioteczna otrzymuje w argumencie wskaźnik na łańcuch(char *). Odczyt poszczególnych znaków działa, problem występuje natomiast w momencie gdy chcę coś zapisać pod adresem...
Zamiast BREQ użyłbym BRNE i stworzył coś takiego: Krauser wskazał Ci podstawowy błąd w Twoim kodzie.
Jestem na tej grupie pierwszy raz, wiec Wszystkich goraco witam!!! Witamy na FORUM... ;) FAQ Działu Mikrokontrolery przeczytane ? ;) Chciałbym zaznaczyc, ze przejrzalem wszystkie archiwalne posty na tej grupie zwiazane z tym i podobnymi problemami i niestety nie znalazlem rozwiazania. Teraz do rzeczy: Jest to mój pierwszy projekt i mam problem z jego...
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...
#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:...
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 ;)
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...
.include "tn2313def.inc" .org 0 ldi r24,LOW(RAMEND) out SPL,r24 ser r24 out DDRB,r24 ; port B - wyjscia ldi r24,0 out DDRD,r24 ; port D - wejscia ser r24 out PORTD,r24 start: in r16,PIND cpi r16,16 breq czerwona cpi r16,32 breq zielona rjmp start czerwona: ldi r24,64 out PORTB,r24 ret zielona: ldi r24,128 out PORTB,r24...
Witam, Mam 2 schematy (załącznik), w pierwszym muszę zapalić jedną diodę, w drugim trzy. Nie wiem czy zrobiłem to poprawnie schemat 1 : [syntax=avrasm].nolist .include "m8def.inc" .list .cseg .org 0 sbi DDRB, 4 sbi DDRC, 1 sbi PORTB, 4 cbi PORTC , 1 [/syntax] schemat 2 : [syntax=avrasm].include "m8def.inc" .list .cseg .org 0 sbi DDRC, 2 cbi PORTC ,...
Witam.. Muszę napisac do jutra wieczorem program w języku asembler dla mikroprocesora ATtiny2313, który będzie zapalał 2 diody. Do dyspozycji mam program: AVR Studio 4. Tylko nie za bardzo wiem jak się za to wziąc :( Przykładowy program: .include "tn2313def.inc" start: ldi r16 0b11111111 out ddrb r16 ldi r16 0b11101111 out portb, r16 petla: rjmp petla...
Jak na razie robię tak,że do każdej komendy dopisuje obok co robi ale zadanie na czym innym polega. jest np. OUT PORTA,R16 <--- pisze tutaj, że jest to ( pull-up na wejściu T0) Tak do każdego robię ale nie mam pojęcie jak to zrobić :(. Jaki jest efekt działania poniższego programu? Odpowiedz na to pytanie posługując się informacjami z ostatniej lekcji...
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...
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......
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...
Jak już pisać wstawki w ASM, to zamiast używać kodu w stylu (przykład z GCC-AVR Inline Assembler Cookbook): naked ): _SFR_IO_ADDR(SREG) zamiast zwykłego SREG . Można zresztą w ten sposób pisać także funkcje wywoływane później w plikach *.c, jeśli są np. krytyczne czasowo. No chyba, że tego wstawianego kodu będzie naprawdę niewiele :)
Dziękuję za szybką odpowiedź. Czy istnieje jakieś proste wyjaśnienie tego faktu? (at)EDIT: Próbowałem zaświecić diodę LED programując dwa górne wyprowadzenia: PC6 (który jest oznaczany jak reset) oraz PC5. Po wgraniu programu dioda się nie świeci. Czy są jakieś wyjątki od tej możliwości? Poniżej wstawiam program, który wgrałem: [syntax=asm]/* * dioda_asm_cw3.asm...
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...
Byłaby szansa na jakiś kawałek kodu asm ze zwiększaniem wartości zmiennej w przerwaniu :-) ? Zmienna ustawia potem stan wyjść. Np. .include "tn12def.inc" .cseg .org 0x000 rjmp start .org INT0addr rjmp intr0 start: in r16,GIMSK ori r16,(1<<INT0) out GIMSK,r16 in r16,MCUCR ori r16,(1<<ISC01) out MCUCR,r16 sbi...
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...
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...
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...
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...
Po raz kolejny zwracam się z prośbą do kolegów forumowiczów. Od pewnego czasu pracuję nad regulatorem fazowym zwykłe sterowanie triaka, wykrywanie 0 sieci nastawiane opóźnienie załączenia nic odkrywczego. Postanowiłem napisać taki program aby rozpocząć przygodę z uC. Pierwsza wersja powstała w C dodałem do tego coś a'la soft start i nawet to pracowało...
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ż...
include hd44780 include winavr include różnica
napięcie zasilające jonizator perpetuum mobile tuner ul1200
inwerter wyspowy dewalt dcb107
Audi A4 B7 – podłączenie przewodów instalacji haka, wiązka, moduł J345, kodowanie VCDS Jimmy JV85 Pro, H8 Pro, H10 Pro – kod F5, przeciążenie silnika, objawy i naprawa