Interesuje mnie jak napisać kod korzystając z makra RAMEND które od razu uzupełni rejestr Y. No przecież już go napisałeś: static void __start(void){ asm volatile ( "out __SP_L__, %A0" "\n\t" "out __SP_H__, %B0" "\n\t" "clr __zero_reg__" "\n\t" "out __SREG__, __zero_reg__"...
A wskaznik stosu zainicjowany na poczatku jest??:) ldi R16,low(RAMEND) out SPL,R16 ldi R16,high(RAMEND) out SPH, R16
jak pisałem kiedyś bootloader to dzięki podpowiedzi kogoś z forum tak podmieniałem zawartość jednej z sekcji: void __init0(void) __attribute__((naked, section(".init0"))... void __init0(void) { asm volatile( "out %0, %A2" "\n\t" "out %1, %B2" "\n\t" "clr...
Wstyd się do tego przyznać, ale nie mogę sobie z tym poradzić. Chcę by przerwanie INT0 było wyzwalane zboczem opadającym. Kod źródłowy programu znajduje się poniżej: .nolist .include "m16def.inc" ;dołączenie listy stałych .list .cseg ;konfiguracja przerwań zewnętrznych .EQU ISC0 = 2 ;ISC00 i ISC01 aktywne zbocza opadające dla INT0 i INT1 .EQU...
To powinno cię zadowaolić .include"m16def.inc" ldi r16,0xff out ddrc,r16 ldi r16,low(ramend) out spl,r16 ldi r16,high(ramend) out sph,r16 PG: ldi r16,0b00000001 out portc,r16 W: rol r16 out portc,r16 rol r16 out portc,r16 rol r16 out portc,r16 rol r16 out portc,r16 rol r16 out portc,r16 rol r16 out portc,r16 rol r16...
Prosty program na AVRStudio : #include <m16def.inc> ; Prohibits use of non-implemented instructions (ATmega16) .dseg .org SRAM_START .cseg ;—————R...
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...
Witam Napisalem bardzo prosty programik. .INCLUDE "m16def.inc" .CSEG .ORG 0 jmp Reset Reset: ldi R17, high(RAMEND) ldi R16, low(RAMEND) out SPH, R17 out SPL, R16 ; call INI_Klawiatury sei Main: rjmp Main INI_Klawiatury: ; Inicjalizacja klawiatury push R16 ldi R16, 0x0F out DDRC, R16 ldi R16, 0xF0 out PORTC, R16...
Wszystko dobrze napisales tylko zapomniales o tym ze funkcje call itp. odkladaja adres powrotu na stos, a u ciebie nie masz ustawionego tego stosu Musisz na samym poczatku, zaraz pod etykieta RESET wstawic instrukcje inicjalizujace stos: ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp Musisz zawsze o tym pamietac. A jesli chodzi...
ok . zamieszczam fragment kodu ,to jest cały program który nie działa -uaktywnia timer 1 -tryb przechwytywania -po przechwyceniu powinien generować przerwanie które ustawi porta w stan wysoki(zapali diody -up atmega32 -programator isp,program pony- translaror avrstudio4 pomocy .include "m32def.inc" .dseg lala: .byte 1 .cseg .org 0 jmp start .org 0x00c...
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! Uzywam symulatora AVR Simulator IDE i chce uzyskac sygnal PWM na wyjsciu procka ATTiny25 (do regulacji silnika DC). Albo ja cos zle wpisalem w konfiguracji PWM ablo AVR Sim nie chce wspolpracowac z PWM. Probowalem przeprowadzic symulacje w VMLAB, tyle ze tam nie ma ATTiny25 wiec dla testu uzylem ATMega16 i na oscyloskopie przebieg sie pojawil....
Posiadam przykład kodu na atmega16 (coś mnie ten procek prześladuje :/) i chcę to przerobić na atmega128. Pod atmega16 wygląda on następująco: .cseg RESET:cli clrr30 outEECR, r30 outMCUCR, r30 ; watchdog na ok.1s ldir31, (1<<WDE) | (1<<WDP2) | (1<<WDP1) outWDTCR, r31 ; inicjalizacja stosu ldir31, high(RAMEND) outSPH, r31 ldir31, low(RAMEND)...
Ta poczwórny 7segmentowy wyświetlacz Edit: Znalazłem rozwiązanie .include "m16def.inc" ;rejestry wartosci wyswietlanych na wyswietlaczach .def rljm = r16 ;rejestry wartości aktualnego czasu .def rls = r20 ;rejestry tymczasowe .def tmp = r21 .def adrreti = r22 .dseg .org 0x60 cyfry: .byte 10 .cseg .org 0x0000 rjmp Reset ;.org INT0addr ;rjmp...
Dziękuję za odpowiedź. Wprowadziłem kilka zmian. W poprzednim programie popełniłem błąd. Zarówno wejścia jak i wyjścia aktywne są stanem niskim. .include "m16def.inc" config:ldi r16,0xFF out ddrb,r16;port B jako wyjscie ldi r17,0x00 out ddra,r17;port A jako wejscie ldi r29, low(RAMEND); ustawianie stosu ldi r30, high(RAMEND);...
Witam Chciałbym, żeby mój program na makiecie powodował, że po wciśnięciu przycisku na porcie A (bit 6) na porcie B do którego podłączone są diody wysyłany był zadany stan 8 diod. I to mi się udało zrobić. To jest bez pętli. Naciskam guzik i świecą diody, puszczam i gasną. W tym samym programie chciałbym, żeby po wciśnięciu przycisku na porcie A (bit...
No i Bascom kolejny raz poległ ;) prawie identyczny program w Fastavr daje przerwanie co 1,3 us ;) czyli mam juz przebieg o czestotliwosci 380kHz, nie wspominając już o różnicach w objętości programu ;) plik ASM generowany przez fastavr ;FastAVR Basic Compiler, ver.4.0.1, by MicroDesign ;Created 11:07:00, 05-12-2005 ; .include"C:\FastAVR\inc\m16def....
Witam Napisalem prosty programik do sterowania jednym serwem lecz serwo przesuwa sie powolutku w jedna strone tylko. Serwo to mini serwo z Conrada ES-05 .include "m16def.inc" .org 0x00 rjmp reset .org OC2addr rjmp KrotkiCykl .org OC1Aaddr rjmp DlugiCykl DlugiCykl: ldi r16,0xFF out PORTA,r16 ldi r16,0x00 out TCNT2,r16 in r16,TCCR2 sbr r16,7...
Witam! Od paru dni uczę się pisać programy w asemblerze na AVR (dokładnie AtMega16) i mam następujący problem na którego nie potrafię rozwiązać: próbuje stworzyć tablice danych w pamięci SRAM aby odwoływać się do nich instrukcją STS jednak wpisanie danych w następujący sposób nie działa: Bo i działać nie może :( Jedynym zarządcą RAM-u jest uC i tylko...
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)....
Usiłuję nawiązać jakąś komunikację z wyświetlaczem graficznym LGM2412. Ma on rozdzielczość 240x128 pikseli. Jednak ze strony wyświetlacza nie ma odzewu. Poniżej kod: .nolist .include "m16def.inc" .list .cseg ;sterowanie LCD .EQU WR = 7 .EQU RD = 6 .EQU CE = 5 .EQU C_D = 4 .EQU RST = 3 .EQU FS = 2 .EQU STER_LCD = PORTA .EQU STER_LCD_DDR = DDRA...
Witam, Realizuje transmisję dwukierunkową pomiędzy komputerem a urządzeniem radiowym poprzez mikroprocesor z dwoma UARTami. Założenie jest takie, aby po wysłaniu z komputera danych konfiguracyjnych do modułu radiowego, odpowiedział on potwierdzeniem że konfiguracja przebiegłą pomyślnie. Dane z komputera przesyłam normalnie bez przerwań badając tylko...
Witajcie. Nie rozumiem dlaczego mimo zmian jakie wprowadziłam do kontrolera on działa wolno. 1.Podłączyłem zewnętrzny kwarc 16k w sposób pokazany w dokumentacji. 2.Wgrałem przez AVRISP mkII program (włącza i wyłącza diodę): [syntax=asm] .nolist .include "m162def.inc" .list .listmac ;***************************************... .def Ilosc_l = r17 .def Ilosc_h...
Eh, opornie to idzie. Próbuję obsłużyć przerwanie. Że tak powiem - moje pierwsze w życiu :P Póki co nie idzie za bardzo. Przypuszczam, że coś źle robię z ustawieniami pamięci (.org coś tam). W każdym razie - mam podłączony klawisz do pinu INT0 (ATmega16). Program ogólnie komunikuje się z Delphi, ale chciałem, aby przy naciśnięciu tego klawisza wyszło...
Witam, no i proszę - a gdzie kolega ustawia stos podczas inicjalizacji ???? brak tego może powodować w zasadzie najprzeróżniejsze dziwolągowate błędy. tzn masz napisane wprawdzie ;stos=ramend ale co to jest i ten średnik? tyle tak na szybko i bez analizy narazie reszty bo muszę zmykać do klienta - odezwę się później chyba że ktoś inny w międzyczasie...
Próbuję wykorzystać sprzętowe I2C zawarte w Atmedze16. Poniżej kod: .nolist .include "m16def.inc" ;dołączenie listy stałych .list .cseg ;konfiguracja I2C .EQU TWBR_ = 10 ;TWI Bit Rate Register .EQU TWPS_ = 3 ;TWI Prescaler Bits ;status I2C .EQU START = 0x08 ;sygnał startowy - wysłany .EQU MT_SLA_ACK = 0x18 ;SLSA+W wysłany, ACK odebrany .EQU...
Witam, Wykonałem na module uruchomieniowym Atmega ver. 2 sterownik do dwóch unipolarnych silników krokowych. Na porcie A Atmegi podpiąłem mikrostyki, port B połączyłem z układem ULN2803, wyjścia ULN2803 podpiąłem do silników krokowych. Kiedy naciskałem mikrostyk, na port B wyprowadzana była sekwencja, która obracała silnikiem krokowym do momentu zwolnienia...
Witam, Przesiadłem się właśnie z procka ATmega 16 na Atmegę 162 z powodu nie wystarczającej liczby portów. Napisałem program który ma za zadanie włączyć TIMER1 w tryb licznika z sygnałem taktującym na porcie PB1(T1). [syntax=asm].include "m162def.inc" .cseg .org 0 rjmp reset reset: cli ldi R16, low(ramend) out SPL, R16 ldi R16, high(ramend) out SPH,...
Jakby co, to tu masz obsługę LCD na ATmega16, tryb 4 linii danych ;) .include "m16def.inc" .equ RS = PB4 .equ E = PB3 .equ DB4 = PB2 .equ DB5 = PB1 .equ DB6 = PB0 .equ DB7 = PA0 ldi R16,high(RAMEND) out SPH,R16 ldi R16,low(RAMEND) out SPL,R16 ldi R16,0x1F out DDRB,R16 ldi R16,0x01 out DDRA,R16 call DlugaPauza call DlugaPauza...
Witam, zakupiłem niedawno na Allegro dwa takie wyświetlacze. Mają napis NOKIA na ramce, ale były jakoś dziwnie tanie (16.99), ale babka tłumaczyła się, że dostali je przez przypadek, więc mogła nie wiedzieć po ile chodzą... Zmontowałem sobie do tego płytkę (odręcznie rysowana - ale wydaje mi się, że styki pasują), którą podłączyłem taśmą do układu ATMega16...
1. Zamiast konsolaka pod win polecam coś z większymi możliwościami : http://sites.google.com/site/terminalbpp... 2. Przejrzenie tego tematu byłoby wskazane: http://www.elektroda.pl/rtvforum/topic53... 3. Skoro używasz breq, to już z brne w następnej linijce daj sobie na luz - jak coś jest wykluczone jako zerowe/tożsame to jest niezerowe/różne......
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...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Witam Jestem na etapie dogadywania się z czujnikiem temperatury dallasa, i póki co nie ma widoków na żadną formę komunikacji. Poniżej dołączam listning kodu źródłowego z możliwie najczytelniejszymi komentarzami. Całość jest pisana z dokumentacją w ręku a mimo to po zapisie i odczycie scratchpada czujnik zwraca same 0xFF. Nie wiem czy wina leży w złej...
Trochę poczytałem i prosił bym o ewentualną korektę jeśli się mylę: 1. Odnoście ulokowania bootloadera w pamięci. Z tego co wyczytałem w 2. Odnoście podziału pamięci FLASH na RWW i NRWW Istnieje dodatkowy podział pamięci flash na RWW i NRWW (widać to na str. 272), czy dobrze rozumiem że jeśli bootloader ustawie na 512 i sekcja aplikacji powiększy się...
Witam Mecze sie z inicjalizacja lcd juz troche czasu i za nic nie moge dojsc co jest nie tak w tym programie, na symulacji wszstko dziala jak powinno ale wyswietlacz nie jest zainicjalizowany po wrzuceniu programu. Moglbys ktos spojrzec i ewentualnie znalezc blad. Z gory dziekuje .include "m16def.inc" .EQUSYS_FREQ= 1 ; czŕstotliwoťŠ pracy w MHz .equ...
Witam kolegów, mam dość dziwny kłopot. Poniższy program zawiera jedynie procedury służące do komunikacji Atmega16 z PC. Jest tu obsługa wejściowego i wyjsciowego bufora kołowego o pojemności 255znaków. Pętla główna jest w zasadzie pusta. W celu przetestowania każdy przychodzacy znak jest dodawany do bufora wyjściowego i odsyłany (echo). Program testuje...
.cseg ;zainicjalizuj stos: ldi R16, high(RAMEND) out SPH, R16 ldi R16, low(RAMEND) out SPL, R16 ;ustaw porty w ATMEGA162: ldi R16, 0xFF ;porty wyjsciowe out DDRD, R16 out DDRB, R16 ;B ldi R16, 0x00 ;porty wejsciowe out DDRA, R16 out DDRC, R16 ldi R16, 0x00 out PORTA, R16 ;wylacz rez. podciagajace out PORTC, R16 in R21, PINA in R20, PINC andiR20, 0x0F...
Może spróbuj podłączyć LCD pod inny port i przekonfiguruj firmware - może ruszy, albo zauważysz jakieś fakty... Dodano po 15 zobacz czy to Ci zadziała, tylko najpierw skoryguj ustawienia portu itp. Jeśli to nie puści, to masz coś zwalone w hw. ;*H*************************************... ;* Project: HD44780...
A oto prosta funkcja (kompiluje się w najnowszym AVRStudio) :D : #include <ATmega8535.h> .include "m8535def.inc" ; Prohibits use of non-implemented instructions (ATmega8535) #define XTAL 11059200 #define USART_BAUD 19200 #define _UBBR(_X,_X_BAUD) ((_X/(16*_X_BAUD))-1... #message "_UBBR =="...
Może nie zignorowałem tylko programuję w Programmers Notepad stąd pewnych nieścisłości kompilator mi nie pokazuje:) Na pewno pokazuje. A dlaczego ie piszesz w oryginalnym Atmel Studio? 1. Zamieściłem teraz u góry F_CPU To nic nie da - czytałeś wskazany artykuł? Zmień środowisko na oryginalne Atmel Studio: http://mikrokontrolery.blogspot.com/2011...
Witam, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Witam! Mam niemały problem. Chcę uruchomić DS18b20 w połączeniu z ATMEGA16. Napisałem kod w asm zgodnie z notą AVR318 (przestrzeganie czasów opóźnień). Niestety sprawdzając rejestry po odczycie (LSB, MSB ) ich zawartość jest zerowa, a nie powinna :( Jeśli ktoś widzi jakiegoś wielbłąda niech się krytycznie wypowie :) Stawiam że skopana jest transmisja...
atmega16 eeprom atmega16 ds1820 atmega16 portc
zmierzchowy włącznik latające koło wężyk hydrostat pralka ariston
ODU 3,5m wysokość – wpływ na SINR, RSRQ, odbicia, strefa Fresnela, LTE/5G Unitra WS-442 zwarcie bieguna ujemnego z masą – skutki, diagnostyka, naprawa