No tak, ale wtedy otrzymasz wygenerowany przez kompilator zupełnie inny kod assemblera, stąd program jak i symulacja nie będą odpowiadać wersji końcowej.
- 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...
Wystarczy zwykły attiny2313 (chyba że musi być to atmega), przecież ma wbudowany układ UART. Odczytujesz w pętli (albo w przerwaniu timera) stan PinB, dalej, wysyłasz to poprzez UART do komputera.. Do napisania w pół godziny w assemblerze dla kogoś kto dopiero się uczy :) (Mogę Ci pomóc z tym kodem, daj tylko znać na priv...)
Zmieniłem - niestety, nie pomogło :( p.s. biblioteka nawet w oryginale przy kompilacji wywala błąd... Dodano po 3 Mam ochotę się poddać i kupić płytkę z ATmega... W sieci jest worek przykładów i wszystko działa - przy zmianie na Xmega zaczynają się problemy, spowodowane moją znikomą wiedzą. Trochę mi szkoda dwóch miesięcy owocnej nauki i potencjału...
https://obrazki.elektroda.pl/4148743200_... Pierwszy mikrokontroler AVR ATmega zadebiutował w 1998 roku i zrewolucjonizował rynek. Stworzony został przez firmę Atmel, która została przejęta w 2016 przez Microchip. Mikrokontrolery ATmega od początku były dość ważne dla hobbystów. Ale w ostatnich latach ich pozycja na rynku została zakwestionowana...
Witam. Mam pytanie: Czy 1 ms może być różna przy różnym kwarcie? Czy jaki kolwiek kwarc da tą samą 1ms? To juz sa dwa pytania. Po pierwsze ... "przy różnym kwarcU", ok? Taka (umowna) "1ms" zalezec bedzie zawsze od czestotliwosci uzytego kwarcu. W mikrokontrolerach masz wszystko czego trzeba, by precyzyjnie odliczac czas: kwarcowy takt (XTal) z precyzja...
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...
Jakie komendy obsługują timer i counter w procku 90s2313 pod Asemblerem?? Proszę o pomoc!
Jak wyliczyć (Wykonać) dokładnie opóźnienie np. 500ms Nie chcę tego robić na timerze ! Chodzi mi o to jak wyznaczyć taką liczbę cykli procesora które zajmie pętla for tak aby wykonała się dokładnie w 500ms Do dokładnego odmierzania czasu służą timery. Jeżeli nie chcesz, to masz złe podejście. Nie chodzi mi o czysty assembler tylko o wykonywanie pętli...
(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...
Do TCCR0 wpisałem raz w timer0 a do TCNT0 za każdą obsługą przerwania... Chciałem obczaić ogólnie możliwości tego timera0 teraz będę obczajał pozostałe timery, jak mi nie będzie szło to będę pytał... Dzięki za pomoc;) Dodano po 14 Panowie a może wiecie jak skonfigurować eclipse do współpracy w avrasm?? Używam ubuntu, ale avrasm można dzięki 'wine' zainstalować......
Nie wiem czy ktos w Polsce zadal SOBIE na tyle trudu aby dokonac tlumaczenia czegos co sluzyloby INNYM... (obie srony za darmo). ktoś przetłumaczył dokumentację do ATmegi16 (fakt, nie zdanie po zdaniu, ale gdzieś w 80-90% najważniejsze rzeczy). Pytanie do autora: czy to ma być czynność powtarzająca się na okrągło, czy może rzadko i dodatkowo w tym...
Sposób jest bardzo prosty ... zmień język na C lub assembler. Też nad tym myślałem ale to proste nie będzie W drugiej kolejności zastanów się nad zewnętrznym flashem, bo jak sądzę tę pamięć zajmują Ci próbki dźwięków, a nie program. Nie ma żadnych próbek dźwiękowych program działa od kilku lat i jest ciągle udoskonalany. Buzzer znajduje się na płytce...
Po pierwsze wszystkie biblioteki Arduino mają otwarty kod i można je przeanalizować, samo to ma wartość dydaktyczną. Po drugie platforma sprzętowa Arduino w żaden sposób nie narzuca swojego IDE. Nawet w oryginalnym środowisku Arduino, można a czasem nawet warto operować na rejestrach bezpośrednio. Łatwo na niej pokazać jakieś podstawowe koncepcje -...
8kanałowe a ile próbek? Najtańsze nowe ok. 500zł (atlantec) taki z akcesoriami 800zł, oczywiście, że wew. pamięć a potem "po fakcie", jak Sobie wyobrażasz oglądanie ONLINE przebkiegu 100MHz?xD Masz racje pytanie było debilne. O ile koledzy byliby na tyle uprzejmi prosiłbym także poddanie recenzji poniższego pomysłu. Z góry zaznaczam ze nie do końca...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
Nie zgadzam się z Twoją opnią, która sprowadza się do tego, że skoro jest dostepny C, to zapomnijmy o asemblerze. Zacytuj ta opinię, bo chyba coś innego napisałem. Masz rację, jeśli dotyczy to projektów amatorskich (hobby) lub krótkoseryjnych, w których ważniejszy jest czas wykonania prototypów niż korzyści ekonomiczne. Nie wiedzieć czemu, wszystkim...
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...
A masz ustawione odpowiednio fuse ? Mój Make: # Name: Makefile # Project: hid-data example # Author: Christian Starkjohann # Creation Date: 2008-04-07 # Tabsize: 4 # Copyright: (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH # License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)...
Bo jak ma działać? Widać kolega nie do końca rozumie mechanizm przerwań, skoro czeka na przerwanie INT0, a włącza przerwanie przepełnienia Timera0. Adresem przerwania przepełnienia Timera0 jest OVF0addr, a nie INT0addr. Przerwanie od INT0 wyzwalane jest ZEWNĘTRZNIE zboczem lub stanem na fizycznym wejściu INT0 mikrokontrolera, a nie Timerem. Skąd ten...
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...
Tak powinien wyglądać plik Makefile: # Hey Emacs, this is a -*- makefile -*- #---------------------------------------... # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al. # # Released to the Public Domain # # Additional material for this makefile was written by: # Peter Fleury # Tim Henigan...
http://obrazki.elektroda.pl/4871444500_1... Steropes Witam, chciałem przedstawić robota klasy linefolower. Pracowałem nad nim w wolnym czasie około roku wliczając różne wersje. Jak zwykle chciałem odejść od stereotypów i głównego nurtu linefolowerów. Głównym celem było, aby robot mógł widzieć linie przed nim, by mieć trochę więcej czasu...
Hej (at)And! Do uruchomienia użyłem prawdziwej żywej atmegi8 podpiętej do "portu szeregowego" po USB z FTDI (chiński klon chyba arduino nano). Chciałem być fair i nie zaglądać do środka jako że to miał być BlackBox ;) Co do mojej specjalizacji :D Wszystkie 3 etapy dało się przejść bez jakiejś szczególnej wiedzy na temat elektroniki, assemblera i budowy...
Pętla ma tą drobną wadę, że jeśli w nią wrzucisz jakieś funkcje warunkowe to nigdy nie wiesz, co jaki czas się dokładnie obróci :) takie tam. Przy jednym warunku to jeszcze nic, ale już przy n rozgałęzieniach, policzenie najgorszego możliwego czasu obrócenia pętli staje się utrudnione. Bo jak warunek nie spełniony to sprawa krótka skok, a jak spełniony...
Po pierwsze jakie czasy chcesz obliczać i jakie przerwania po co ??? To jest bascom nie assembler, deklarujesz na wstępie programu prędkość kwarcu a kompilator troszczy się o resztę tj. dajesz deklarację $regfile = "m8def.dat" $crystal = 12000000 Po drugie, procedura obsługi wyświetlaczy LCD (mowa tu o alfanumerycznych HD44780) jest w BASCOM zaimplementowana...
$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,...
Witam :) Jako ze jest duzo pytan na forum na ktore odpowiedz padla, postanowilem ze zbiore choc troche postow do kupy, tematy dotycza glownie AVR, bo z ARMow jeszcze nie czuje sie na tyle na silach zeby robic FAQa ;) Mam nadzieje ze sie komus przyda :) Niby FAQ jest, ale dla mnie jakoś malo czytelny i chyba nikt go juz nawet nie aktualizuje ;) Jesli...
Pisząc program stanąłem przed problemem odbioru kodu RC5 z pilota ale z użyciem przerwania. O ile w BASCOM 8051 GETRC5 w przerwaniu działa doskonale, to w BASCOM AVR jest to kompletna porażka. Wadą Bascomowej funkcji GETRC5 jest: 1) Dziadowskie działanie w przerwaniu (niby działa ale traci pierwszy pakiet z pilota) 2) Zastosowanie jej w programie powoduje...
Witaj, Za co jest odpowiedzialny Timer0? Za określenie częstotliwości granicznej? Czy masz wolny Timer 1? Jeżeli tak, to moim zdaniem strasznie sobie to komplikujesz. W końcu Twoim zadaniem jest zmierzenie okresu przebiegu o częstotliwości, którą podajesz z generatora, a od tego jest tryb Capture, czyli pomiar długości impulsu. strona 83: Input Capture...
Praktycznie bo takie dostałem polecenie i nie bardzo wiem jak ugryźć temat. Praktycznie (nie teoretycznie) ktoś cię nie lubi, bo daje takie bzdurne zadania. Praktycznie - napisz na sztukę kod (w assemblerze) wykonujący poszczególne instrukcje assembler'a. Następnie z użyciem JTAG'a (którego pewnie nie masz) - możesz pobawić się w coś - co się nazywa...
:arrow: dscreator Przede wszystkim koniecznie skomentuj każdą linię i wklejaj za pomocą znaczników Code , ponieważ (jak widzisz) Twój program jest zupełnie nieczytelny (forum usuwa spacje na początku linii). Program powinien zaczynać się zaraz za obszarem wektorów przerwań. Jeśli jakiegoś przerwania nie wykorzystujesz to zamiast mnemonika rjmp wstawiasz...
Przerwania wcale nie są złe tylko dlatego że tobie się na nich nie udało. To trzeba zrobic w assemblerze. Ale nawet przy taktowaniu 16MHz nie podzielisz częstotliwości większej niż powiedzmy 1MHz. Ja bym walną to na Timerze w trybie CTC. I ustawił Timera tak żeby generował sprzętowo sygnał na swoim pinie IO. Będzie i szybkie i proste. Wtedy przy taktowaniu...
Widzę, że coraz bardziej zbliżamy się do assemblera. W bascomie da się wyłączyć generowanie odkładania i pobierania ze stosu rejestrów w czasie ubsługi przerwania: On timer1 nazwa_suba NOSAVE Ale wtedy to asm w obsłudze przerwania obowiązkowy (bo kto odkryje, które rejestry zmienia Bascom). Ewentualnie można zdekompilować prog sprawdzić i potem dopisać.
Witam Jako że niestety spaliła mi się karta teleVGA postanowiłem wy myśleć inne rozwiązanie na obsługę TV lub monitora. Na elektrodzie było sporo tematów jak podłączyć telewizor bądź monitor pod mikroprocesor. Jedne z wykorzystaniem karty graficznej od PC ale niestety nikomu się chyba nie udało Ja znalazłem taki właśnie projekt na atmega 168 niestety...
Witam, Przyczyną twoich problemów jest to iż błędnie zakładasz działanie instrukcji BREQ (skok jeżeli równe) a ty traktujesz ją jako CALL z warunkiem EQ (wywołaj jeżeli równe) a tak nie jest. Instrukcja BREQ location "skacze" do miejsca w skazywanego przez location nie odkładając adresu powrotu na stos. Aby wywołać podprogram musisz użyć instruckcji...
Wydaje mi się to wszystko poprawne (Do tego timer zawsze przebija się przez pętle waitForConversion więc coś tam musi liczyć) ale zmieniłem jeszcze referencje na napięcie odniesienia = nap. zasilania ldi R16, (1<<REFS0)|(1<<ADLAR)|(1<... out ADMUX, R16 efekt ten sam ADCH = 0 na do dowolne napięcie 0 - 5v na nogę PC3 ;---------------------------------------...
http://obrazki.elektroda.pl/6006020500_1... Witam Jestem uczniem 2 klasy liceum, z elektroniką łączy mnie tylko hobby. Chciałbym przestawić mój projekt wykonany na konkurs Gra Retro. Jest to remake gry Tetris. Jako wyświetlacz użyłem monitora VGA (w tym wypadku LCD) oraz pada od Pegasusa jako kontroler. Całe oprogramowanie zostało napisane...
to stawiam flaszkę, że coś masz nie tak z timingami :) zrób, przynajmniej na razie, odmierzanie czasu w oparciu o timer. Nie jestem mistrzem assembera, twoja funkcja, mimo że wygląda dobrze, chyba nie działa dobrze. Ewentualnie fusy lub zła definicja w SYS_FREQ w porównaniu do rzeczywistości.
Obsługa przerwania zajmuje z 70 cykli (odłożenie rejestrów na stos i zdjęcie ich ze stosu). Do tego z 10 cykli na wpisanie wartości do Timera i z 10 na ztogglowanie pinu. Razem 80 cykli. 8000000Hz / 80 = 100kHz. Jako że dajesz Toggle to będziesz miał dwukrotnie mniejszą częstotliwość. Czyli max uzyskasz 50kHz. Skoro masz 32kHz to pewnie przez to że...
Witam. Mam problem ze zrozumieniem działania przechwytywania wartości licznika Timer1 do ICR1 w momencie wystąpienia określonego zbocza na wejściu ICP mikrokontrolera ATmega8 w odniesieniu do dekodowania kodu RC5 (lub innych kodów). Ujmując w skrócie, nie wiem jak ma wyglądać procedura dekodowania RC5 z wykorzystaniem wejścia ICP, a na tym mi zależy....
$regfile = "ATtiny25.dat" $crystal = 8000000 Config Pinb.2 = Output ' pompa Config Pinb.1 = Output ' dioda Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Dim Sekundy As Byte Dim Minuty As Byte Dim Milisekunda As Byte Enable Interrupts Enable Timer1 'Timer1 = 6 ldi R16, 6 !Out TCNT1, R16 Set Portb.2 Set Portb.1 Do If Minuty = 0 Then...
Odkopię temat bo mam problem też z Attiny13. Problem jest następujący: po skonfigurowaniu timera0 jaki licznik zaczyna on zliczać kolejne takty procesora z określonym preskalerem ale w momencie użycia procedur waitms lub if timer0 zatrzymuje się. Dzieje się tak podczas sprawdzania na sprzęcie jak i na symulatorze. Program powinien działać poprawnie,...
Ciezka sprawa. Nawt jesli popedzisz ATMege z 16MHz to masz zaledwie 16 instrukcji/us. Da sie to zrobic zakladajac, ze PWM jest uporzadkowana tablica (np. w kolejnosci wzrastajacej) i wykorzystujac przerwanie timera (COMPARE). Ladujesz rejestr do porownania wartoscia kolejna z tablicy, w przerwaniu zmieniasz stan IO i zwiekszasz wskaznik do tablicy PWM....
Wybierz inną serię z lepszymi peryferiami i możliwościami. np 328 Och tak, rzeczywiście, do timera kuchenki mikrofalowej te peryferia będą jak znalazł! Stwierdziłem że Na Assemblerze było by to zbyt ciężkie do zrobienia a współcześnie popularny jest C i chciałbym się nauczyć Współcześnie popularne jest Arduino z C/C++ (pomieszane) Jeśli coś miałbym...
Ok, moje błędy, niemniej wcale mi to nie pomogło, mówię, widzę brak inkrementacji z IDE Simulator po prostu. A to dziwne, bo sobie wkleiłem twój kod, wywaliłem to cli/sei z przerwania i wszystko działa ok. Co znaczy, że nie widzisz brak inkrementacji? U mnie wchodząc w przerwanie TCNT0 jest równy 8, potem 12 i 15, bo tak jest kompilowana obsługa przerwania....
Wszystko pięknie, ładnie, ale żaden z programów nie działa... Program excray'a, się kompiluje, ale: nie widzę nigdzie wyjścia OCR1A (PB1), na które jest podawany sygnał wyjściowy PWM'a. Na wyjście to podawany jest stan niski (ustawiony bit COM1A1). Dodam tylko, że chodzi o PWM w trybie Phase Correct. W moim programie wszystko jest ok, poza odczytem...
Odniosę się tylko do nadajnika, bo mam wrażenie, że autor wątku w tej chwili właśnie nadajnik próbuje wykonać. Nadajnik możesz to zrobić w oparciu o timer, na którym ustawisz sobie określony zegar - np. te porządane 250 kHz. Być może musisz ustawić 500kHz - aby wyłapywać nie tylko czas cyklu, ale i jego zbocze narastające i opadające. Potem budujesz...
Gdyby założyć, że w momencie zmiany na jednym pinie, na drugim jest stan stabilny, to może udałoby się to zrobić tak jak próbowałeś. Myślę tylko, że i tak powinieneś nieco zmienić procedurę obsługi przerwania. Po pierwsze po delay należałoby najpierw sprawdzić stan pinu, który wywołał przerwanie, żeby stwierdzić, czy to nie był jakiś stan niestabilny....
Zanotowałem bardzo dziwne dla mnie zachowanie Avr Studio. Otóż mam następujący program: [syntax=asm] .INCLUDE "m8def.inc" .cseg .org 0 rjmp Start .org OVF0addr rjmp ISR_TOV0 Start: ldi r17, high(RAMEND);utworzenie stosu out SPH, r17 ldi r17, low(RAMEND) out SPL, r17 ldi r16,1 ;konfiguracja timera out TCCR0, r16 out TIMSK, r16 ldi r16, 0xf0 ;wpisanie...
Witam. Właśnie staram się zrobić mysz komputerową na atmedze 32 za pomocą biblioteki V-USB. Program testowałem na płytce rozwojowej z kwarcem 16MHz, atmegą 32 i wszystko działało. Po przeniesieniu się na moją płytkę z kwarcem 12MHz i przekopiowaniu kodu, na wyjściach D+ i D- mikrokontrolera nic się nie pojawia, D- stan wysoki, D+ niski. Oczywiście zmieniłem...
timery atmega atmega timery assembler atmega
oporność głośnik volvo silnika rdzeń dławik
Dioda UM61 – identyfikacja, zamienniki, Zener 6,2V czy kontroler UM610? Beko DIN28322 – lokalizacja pompy spustowej, myjącej, czujnika zalania i tabliczki znamionowej