Jeżeli możesz je dowolnie programować, to korzystając z erraty dość szybko rozróżnisz układy. Xmega128A1U: 1. Register ANAINIT in MCUR will always read as zero. 2. RTC clock output option is non-functional. Xmega128A1: 1. ADC Event on compare match non-functional. 2. Low level interrupt triggered when pin input is disabled. Jeżeli w ten sposób nie możesz...
A jakby tak zapytać google? https://www.google.pl/#q=interrupt+contr...
Witam, Dzisiaj zacząłem przesiadkę na Xmegę. Wgrany [url=http://mikrokontrolery.blogspot.com... programik, wszystko działa. Na jego podstawie próbowałem uruchomić DAC, aby wysyłał stałe napięcie, takie jak ustawię za pomocą terminala (zmienna char "napiecie"). Korzystam z 8-bit, wyrównane...
Coś mi się obiło o uszy, że E5 w odróżnieniu od innych nie kasuje flagi sprzętowo i musisz flagę skasować swoim programem. Przyznam się, że nie chce mi się teraz zaglądać do noty ale.. :D Each interrupt has an interrupt flag associated with it. When the interrupt condition is present, the interrupt flag will be set, even if the corresponding interrupt...
http://obrazki.elektroda.pl/7758360200_1... Energooszczędny błyskacz LED ze średnim poborem prądu poniżej 5uA? Tak, z XMEGA32E5 udało mi się tego dokonać. 5 lat błyskania LEDem na zasilaniu z 2 paluszków alkalicznych? Czas pokaże. Ponad 10 lat przy baterii litowej CR123A? Z pewnością możliwe, gdyby nie drobne przeszkody techniczne....
Szanowni Forumowicze, postawiłem sobie za zadanie opanowanie UARTa w prockach xmega, co nie powinno być zadaniem bardzo trudnym. Na początek zajrzałem na stronę producenta i znalazłem pdf z opisem UARTa i przykładowy kod dla wykorzystania sprzętowego na przerwaniach i software'owego. Zacząłem od przerwań. Utworzyłem projekt i skompilowałem program....
Witam, postanowiłem przenieść swój układ z atmegi na atXmegę. Do tej pory do komunikacji urządzeń po serialu używałem biblioteki SoftwareSerial (Arduino) bo układ miał tylko 1 fizyczny serial. Teraz w Xmedze mam ich 5 :) Wgrałem [url=ten]http://mikrokontrolery.blogspot... programik i wszystko...
atom1477 napisał: No właśnie. A BASCOMowi są one obce I właśnie z tego powodu sam optymalizuje sobie kod programu. Wiem, gdzie, co i jak. jacynka84 , zamiast : Wciąż nie wiem jak działa bascom...;] Jeśli nadal Będziesz bazował na Bitwait itp. to w dalszym ciągu się nie dowiesz jak działa. I ja się bałem zapisywać bezpośrednio do rejestrów (adresów)...
Xmega nie zawsze musi być Masterem wtedy inny Master poprzez SS ją wybiera jako Slave. Cała nota Xmegi może się wydawać opasła. Są osobne noty na temat wybranych peryferii. Dla SPI nota AVR1309 gdzie możesz przeczytać: 3.2 The SS pin In master mode the SS pin is fully configurable from software, and typically used as one of these three options: •...
Witam Mam problem z uruchomieniem timera w Atmel Studio 7, program przeznaczony jest dla procesora xmega128a3u Mam załadowane następujące biblioteki: [syntax=c]#define F_CPU 2000000UL #iinclude <util/delay.h> #include nclude <avr/io.h> #<avr/interrupt.h> uint8_t licznik = 0; [/syntax] i poniżej definiuje ustawienia timera [syntax=c]TCC0.PER...
Witam Mam kolejny problem, nie chodzi mi timer, siódmy, pozostałe 6 działa i nie mogę znaleść przyczyny, symulator nic nie pokazuje, rejestry nieustawione mają jakieś przypadkowe wartości, zrobiłem osobny programi na sam timer i nic, timer ma mi uruchomić przerwanie co 50mS tutaj teraz akurat tak nie będzie bo zegar jest 2M wew dlatego zmieniłem dzielnik...
Tak, z tym debuggerem i kodem namieszałem, bo zmieniałem parę razy, testowałem itd i umknął mi ten screen. Niemniej jednak ostateczny kod to ten na początku poprzedniego posta, a zrzut debuggera daje prawidłowy wynik dla nowego kodu również (sprawdziłem bit po bicie z datasheetem). Zworka jest poprawnie nałożona. Już nie wiem, co się dzieje... Wróć!...
Witam Próbuję wykonać ćwiczenie z kursu Leona http://www.leon-instruments.pl/2014/01/k... Uruchamiałem ten kod pod eclipse Luna z najnowszym toolchainem. Ww właściwościach projektu dla AVR hardware podałem właściwą sygnaturę procka i jego częsttliwość 62000000 Hz , kompilator wykrzykuje ostrzeżenie jak mam definicję zegra...
Witam. Mam problem z jednoczesnym używaniem portów. Do komunikacji z komputerem chce użyć emulacji portu szeregowego, na USB. Bazując na artykule ze strony [url=http://mikrokontrolery.blogspot.com... uruchomiłem komunikację z komputerem. Wszystko jest ok. Połączenie...
Cześć :) Sprawdzam różne rzeczy podczas nauki uarta dla xmega128a3u. Korzystam z biblioteki Atmela, uart w trybie z przerwaniami, software'owy cykliczny bufor odbiorczy i nadawczy. Mam tablicę z danymi w formie znaków ASCII. Oglądam sobie wszystko przy pomocy realterma, do PC podłączone za pomocą przejściówki rs485-usb. Chciałem na początek obliczyć...
Szanowni Forumowicze, uruchomiłem sobie sprzętowego UARTa wykorzystując bibliotekę ze strony atmela. Wszystko działa, łączę się z terminalem na komputerze, wyświetla się to co powinno. Dodałem też funkcję do wysyłania całego łańcucha znaków wykorzystując wskaźnik, gdyż w atmelowskiej bibliotece znalazłem jedynie do wysyłania konkretnych pojedynczych...
Na podstawie tego, co poleciłeś napisałem coś takiego: [syntax=c] #include "twi_master_driver.c" #include "twi_master_driver.h" #include "avr_compiler.h" // general definitions /*! Number of bytes to send in test example. */ #define NUM_BYTES 3 /*! Defining an example slave address. */ #define SLAVE_ADDRESS 0x80 /*! CPU speed 2MHz, BAUDRATE 100kHz and...
To mój pierwszy post na tym forum dlatego witam wszystkich serdecznie. Piszę trochę w assemblerze na 8051 i AVR-y a ostatnio zainteresowałem się rodziną Xmega. Więc dochodzę do meritum i tu moje pytanie: Czy da się programowo ustawić kilka portów wejściowych na jeden kanał zdarzeń? Tak aby po wystąpieniu zadanego poziomu/zbocza na którymkolwiek ze kilku...
Cześć wszystkim :) Pracuję nad przeniesieniem kodu pewnej biblioteki do nrf24l01 z atmegi na xmegę (atmega32 -> xmega 128a3). Czytając bibliotekę wybrałem fragmenty z elementami charakterystycznymi dla danego typu procesora, czyli pozmieniałem części kodu związane z rejestrami i przerwaniami. "Zakomentarzowałem" nietknięty oryginał. To, co wstawiłem...
Witam znawców tematu! podjąłem się jak dla mnie poważnego wyzwania uruchomienia wyświetlacza LCD S95160 na sterowniku SSD1289Z w połączeniu z Xmegą64A3. Niestety utknąłem i dlatego piszę ten post... jest to dla mnie początek z wyświetlaczami LCD więc nie jestem w tym temacie zbyt obeznany, mam za sobą parę dni czytania datasheeta tego sterownika ale...
W działaniu procesor ma zmieniać stan portu PD0 i tego nie robi. Sprawdzałem na żywym organiźmie, na symulatorze podobnie (AVR Studio 4.18, WinAVR-20100110). Timer w trybie pracy "frequency generation mode". Chodzi mi o to, by po przepełnieniu licznika nie trzeba było wywoływać przerwania, a stan danego portu zmieniał się bez dodatkowych ingerencji....
Coś się urodziło w końcu. Oto kod, z którego odpaliłem ADC i uzyskałem prawidłowe wyniki: [syntax=c] #include <avr/io.h> //#include <stdbool.h> //#include <util/delay.h> //#include <stdlib.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <stddef.h> #include "SPI.h" #include "nRF24L01.h" #include...
Cześć wszystkim :) Zdaję sobie sprawę, że temat trochę już oklepany, ale zauważyłem, że każdy ma inny problem z tym PIDem :) Otóż muszę (do jutra wieczór) zaimplementować regulację prędkości obrotowej regulatorem PID dwóch silników DC (Dagu DG01D). Każdy z silników jest wyposażony w enkoder w postaci hallotronu. Na wale silnika osadzony jest magnes...
Zmienne globalne zajmują...... Pewnie ram dla led jest rezerwowany w chwili uruchomienia biblioteki przez memalloc. Gdybyś sam pisał obsługę led to użyłbyś tablicy o określonym rozmiarze dzięki czemu wiedziałbyś ile ram zajmuje program. Poszukaj jak wyświetlić ilość wolnej pamięci ram w czasie działania programu. Jakiś freemem jest. Trochę oszuka ale...
Witam. Mam program do obsługi wyświetlacza tft z dotykiem. Program nie mój, działa prawidłowo ale jest problem z szybkością wyświetlacza i chciałbym przejść na Xmega128A3. Problem w tym że Xmegi nigdy nie miałem "w rękach" i mam problemy z przeróbką programu. Chciałbym też wiedzieć na pewno że ten program będzie działał na Xmega zanim wpakuję się w...
Witam, Mam taki problem. Próbuje odpalić LCD z kontrolerem ST565 na Xmega32E5. Do tej pory korzystałem z dobrze opisanego większego kolegi (Xmega128A3U). Problem który opisze poniżej nie występuje na na Xmega128A3U używając identycznego kodu. Kod na potrzeby testów wygląda tak: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include...
Czy da się to zrobić jakoś bez rekurencji, tzn. wykonywać działania co wybudzenie a potem usypiać ponownie? Może jest jakieś oczywiste rozwiązanie, [syntax=c]typedef enum { RUN_STATE, SLEEP_STATE } DeviceState; DeviceState deviceState; int main() { //initializations for(;;) { //main loop switch(deviceState) { case RUN_STATE: //do some stuff if(any_specific_condiditon)...
JarekC - to jest to! Dziękuję. Adres urządzenia to 0x68, więc mamy do komunikacji D0 i D1 Chyba jesteśmy blisko - mam już pierwszy odczyt z DS3231 ! Przy kolejnym odczycie staje tam gdzie zawsze... Dodano po 29 Mam teraz taką sytuację: (inicjalizacja) PIERWSZY PRZEBIEG: status: 00000001 (Bus state = IDLE) uint8_t address = RTC_SLAVE_ADDRESS; address...
Pojawił mi się problem taki, że nie mogę odpalić przerwań. Mam 2 programy: 1- test przerwań poprzez zmianę stanu na pinie D0 i generowaniu dźwięku przez PIEZO - działa super. 2- wstęp do wariometru, też działa super, wykresy generują się bardzo realnie. Próba uruchomienia przerwań w programie 2 nie działa. Timer się kręci elegancko bo wartości licznika...
Dodałem PER żeby zliczał np do 30000 i wgmode-normal - dalej nie działa. Cały czas mam na wyjściu 34kHz jaka cholera ? [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void) { PORTD.DIR=PIN0_bm; TCC4.CTRLB=TC45_WGMODE_NORMAL_gc; TCC4.CTRLA=TC45_CLKSEL_DIV8_gc; TCC4.INTCTRLA = TC45_OVFINTLVL_LO_gc;...
Udało mi się włączyć przerwania w sekcji bootloader. Na początku funkcji main wstawiłem oto kod: [syntax=c] /* Set interrupt vector location to boot section of flash */ uint8_t temp = PMIC.CTRL | PMIC_IVSEL_bm; CCP = CCP_IOREG_gc; PMIC.CTRL = temp; [/syntax]
Nie pasuje to, że nie wrzuciłeś ani jednego kawałka kodu. Wielokrotnie w DIY nie udostępnia sie kodów, bardzo często do projektów w rodzaju miganie diodą. Dlaczego więc ja miałbym udostępnić kody? Mając doświadczenia z pomocą na forach rozumuję tak: Gdy potrzebuję pomocy, najczęściej jestem tylko naprowadzany na trop i pewnie tak by było gdybym otworzył...
Witam. Mam problem z obsłużeniem bibliotek Atmela do magistrali TWI dla mikrokontrolerów z rodziny Xmega. Próbuje odebrać dane z Mastera. Master to Atmega, która jest na pewno skonfigurowana poprawnie, gdyż dane odbierałem na innej atmedze. Problem pojawia się gdy chcę je odebrać na Xmedze, ze względu na moje początki z tym mikrokontrolerem. Może ktoś...
Witam, Od dłuższego czasu zastanawiam się jak rozwiązać pewien problem. Otóż, gdy próbuję ustawić DMA wyzwalane przepełnieniem timera, to nie działa jak powinno. DMA startuje przy pierwszym przepełnieniu TC, a później odczytuje dane z portu w swoim tempie, nie zważając na przerwania timera. Kod wydląda tak: TCC0.CTRLA = 0x01; // Prescaler: clk/1...
Wielki dzięki, to działa, dziwnie skonstruowana jest ta funkcja załatwiająca jednocześnie odczyt i zapis. To że działa wiem z tylko obserwacji przebiegów na analizatorze. http://obrazki.elektroda.pl/8308418200_1... Faktycznie od komórki 0x0C zaczynają się wartości AD AE AF B0 B1, ręcznie wbite przeze mnie na progamatorze. Ale przystopowało...
Pewnie jakby zastosować powiększany wskaźnik zamiast indeksowania, to by jeszcze można coś uszczknąć. dekrementację i warunek można dać jako jedno (zmienić na pre-dekrementację). Być może dałoby się też zaoszczędzić używając lokalnych zmiennych do S_Bits i zapisywać je do RAM dopiero na koniec. [syntax=c]ISR(TCC0_OVF_vect) // tutaj rzeczywista obsługa...
Witam, Mam problem z obsługą SPI pod Xmega. Chcę tym sterować układ MCP4922. Program zatrzymuje mi się na oczekiwaniu na zwolnienie flagi. Taki mam kod: [syntax=c] uint8_t d; int main(void) { SPIE.CTRL |= SPI_ENABLE_bm | SPI_MASTER_bm | SPI_MODE_0_gc | SPI_PRESCALER_DIV128_gc ; SPIE.INTCTRL = 0x03; PMIC.CTRL = 0x04; sei(); while(1) { d++; if(d>4095)...
Problemem jest tutaj fakt ze licznik zlicza impulsy. A ty każdemu krokowi enkodera chcesz przypisać pewna wartość (regulacja zgrubna/precyzyjna) a tego licznik nie robi (bo każdy impuls jest traktowany z taka sama waga). Jednym z możliwych rozwiązań jest zliczanie ilości impulsów i mnożenie ich przez wagę (w zależności od wybranej dokładności). [syntax=c]...
Witam. Zwracam się do Was z dziwnym problemem, który spędza mi sen z powiek. Pacjent to Xmega 128A3U, którą próbuje zmusić do do uruchomienia przetwornika ADC. Postaram się ogólnie nakreślić w czym problem, a następnie przedstawie kod źródłowy obsługi przetwornika. Korzystam z dwóch przetworników ADC , tj ADC A oraz ADC B. Wszystkie kanały w obu przetwornikach...
Panowie, a możecie mi jeszcze podpowiedzieć co robię źle w programie niżej? Otóż, chodzi mi o to, aby uruchomić timet TCC0, aby chodził sobie w kółko, a nastepnie podając na PIND6 abym zatrzaskiwał wartość tego timera i go wyświetlic potem. Timer skonfigurowałem tak: [syntax=c] TCC0.CTRLB = (1<<TC0_CCAEN_bp) | TC_WGMODE_NORMAL_gc; TCE0.CTRLA =...
Zmiana procesora, raczej nie możliwa. Jeśli już to zmieniłbym na Xmega co ma sprzetową obsługę encodera. Ale na razie bede probował na ATMEGA2560. Jeśli chodzi o przerwania to wyglądają one tak (kompilator Codevision): 1) Procedura odczytu encodera (przerwanie na obu zboczach): [syntax=c] #define kanal_A (PINE & (1<<4)) #define kanal_B (PINA...
Szukaj plików nagłówkowych do danego procesora, np. pliku C:\...\WinAVR\avr\include\avr\iox32e5.h w katalogach gdzie masz zainstalowany kompilator albo Atmel Studio. Wyszukaj plik iox32e5.h na swoim dysku, który dotyczy ATxmega32e5, a wnim znajdziesz wszystkie deklaracje odnośnie tego procesora. Dla przykładu część odnośnie SPI: [syntax=c] /* ----------------------------------------...
WItam, Mam problem z przetwornikiem ADC w procesorze XMEGA. Wiem, że pojawiły sie na forum krytyczne uwagi dotyczące tego przetwornika w tych procesorach, ale nie wierzę że jest aż tak źle jak u mnie. Musi to być mój bład , nie wierzę że ATMEL mógł coś takiego wypuścić na rynek. Mój procesor to ATXMEGA32E5. Na wejście PA7 ( wejście ADC nr 15) - doprowadzam...
XMEGA ma RTC z możliwością wybudzania przy określonym stanie licznika. Dla 32-bitowego RTC możesz wybudzanie ustawić w zakresie ponad 136 lat :) W nocie http://www.atmel.com/Images/doc8135.pdf jest napisane 10.3.3 Power-save Mode Power-save mode is identical to power down, with one exception. If the real-time counter (RTC) is enabled, it will keep...
To o co pytasz nie zależy od Bascoma, tylko od architektury procesora. AVRy po przyjęciu przerwania blokują wszystkie przerwania (z wyjątkiem XMEGA, które mają przerwania wielopoziomowe i NMI). Tak więc sam nigdy nie musisz w handlerze przerwania ich blokować. Pytanie, kiedy je odblokowywać przed zakończeniem obsługi. W kilku sytuacjach, np.: 1. Kiedy...
Witam. Tworzę projekt urządzenia wskazującego opartego na żyroskopie Bosch BMG160 i XMega32a4u. Wykorzystuję interfejs I2C do komunikacji. Odebrane dane z żyroskopu są przekształcane na ruchy kursora. Komunikacja z PC za pomocą sprzętowego USB. Cały projekt tworzę korzystając z frameworku Atmela ASF w Atmel Studio 6.2. Mam taki problem, że przy próbie...
No tak.... Zasugerowałem się pierwszym postem piotrva i nawet nie patrzyłem na program. Co robisz w programie po ustawieniu zegara i włączeniu SPI? Nic nie wysyłasz, odczytujesz status SPI i migasz diodą. A czy gdziekolwiek kasujesz flagę w rejestrze statusowym? Nie. Flagę możesz skasować na 2 sposoby: albo zezwalając na przerwanie w momencie rozpoczęcia...
Witam. Piszę aplikację w języku C służącą do komunikacji mikrokontrolera AVR XMEGA32A4 poprzez interfejs UART/USART. Docelowo interfejs ten ma być połączony z modułem Bluetooth i służyć do komunikacji z telefonem. Aplikacja na telefonie sterowałaby mikrokontrolerem i urządzeniami peryferyjnymi podpiętymi pod niego poprzez wysyłanie odpowiednich komend....
Rozumiem, w takim razie, że zawsze warto używać _update, zamiast _write? To zależy co chcesz zrobić. Jak zainicjować EEPROM domyślnymi wartościami to obowiązkowo write. Jak zapisać blok danych uprzednio odczytanych z eeprom to zdecydowanie update. Zawsze można dać _update. Jedyna różnica pomiędzy _write i _update polega na tym, że _update sprawdza,...
Witam , problem polega na odczytywaniu tylko 2 bajtów z bufora uart , wysyłając 5 zaków np.12345 na wyświetlaczu pojawią się tylko 12 a reszty po prostu nie ma . Czy ktoś napotkał podobny problem ...[syntax=vbnet]$regfile = "xm32a4udef.dat" $crystal = 32000000 $hwstack = 32 $swstack = 32 $framesize = 32 Debug Off Config Submode = New Config Eeprom =...
Witam, Uruchomiłem RS232 przez klase CDC z Twojego tmf kodu: http://mikrokontrolery.blogspot.com/2011... (dzięki działa super) I teraz chciałem zrobić przerwanie TCC0 z f = 1 Hz jednak kod poniżej nie che mrugać diodą LED ;/ Dodano po 4 Gdy przekopiowałem do nowego projektu ten Timer TCC0 i przerwanie...
Witam. Mam problem z XMegą, konkretnie 32D4, choć sprawdzałem też na 64A3 i wyniki podobne. Chodzi o pobór prądu: http://obrazki.elektroda.pl/8605027100_1... Zgodnie z danymi podanymi w datasheet, pobór przez układ zasilany z 3.3V w trybie IDLE z zegarem wew 2MHz powinien wynosić około 270uA. Tak wygląda kod testowej aplikacji : [syntax=c]...
Tak jak wynika z moich wcześniejszych postów są to moje bardzo trudne początki z tym mikrokontrolerem. W porównaniu do zwykłych atmeg z atxmegą mam dosyć spore trudności. Dzisiaj przez cały dzień próbowałem znaleźć informacje na temat ADC w tych mikrokontrolerach. Czy mógłby mi ktoś podpowiedzieć co powinienem zmienić w programie, aby przy zabawie potencjometrem...
Mój cały kod: [syntax=cpp] #include <avr/io.h> #include <avr/interrupt.h> ISR (ADCA_CH0_vect) { PORTD.OUTSET = PIN3_bm; } int main(void) { PORTD.DIRSET = PIN3_bm; // ustawienia dla ADC ADCA_CH0_MUXCTRL |= _BV(6);// ADC_CH_MUXINT3_bm; // wejscie na ADC8 - PBO ADCA_CH0_INTCTRL |= _BV(0);//ADC_CH_INTLVL0_bm; //włączenie przerwania ADCA_CH0_INTCTRL...
Cześć, zagłębiam się trochę w wykorzystanie pamięci eeprom i flash i przeglądając avrowe funkcje nvm natknąłem się na takie stwierdzenie: The functions in this module are modifying the NVM.CMD register. * If the application are using program space access in interrupts * (__flash pointers in IAR EW or pgm_read_byte in GCC) interrupts * needs to be disabled...
Siema. Otóż mam taki problem, podczas gdy kod ładowania i zerowania data DACx działa, np DACB1 = 0 waitus 500 DACB1 = 4095 (full zakresu) waitus 500 daje jakieś 2Khz pisku w słuchawkach co jest oznaką działania , to gdy ładuję próbki muzyki wav z karty na zasadzie DACxx = pwm nic się nie dzieje. Tu całt kod xmega: [syntax=basic4gl] '=======================================...
Czemu przestają działać przerwania jak skorzystam z funkcji spi_send() To jest wycięty najmniejszy działający kawałek kodu z [url=http://www.elektroda.pl/rtvforum/to... wątku Do pinu D0 mam podłączony brzęczyk. Po 2 sekundach w momencie wysłania czegokolwiek na SPI brzęczyk milknie ale tajmer się kręci dalej bo sprawdzałem przez terminal....
Tak dokładnie o to mi chodziło. Spróbowałem to zrobić tak: w pętli głównej jest cały czas zapalana lampka (włączane zasilanie). W przerwaniu od zmiany zbocza sprawdzany jest stan logiczny wyjścia komparatora i gdy jest "1" to ustawiana jest flaga oraz wyłączana lampka a gdy jest "0" to flaga jest kasowana a lampka zapali się dzięki pętli głównej. Niestety...
Dzięki wielkie ;) chyba nigdy bym się tego nie domyślił ;) teraz wszystko działa ok. Dodano po 1 Witam, napotkałem jeszcze jeden problem z ustawieniem PWM, na serii A wszystko działało dobrze. Przejrzałem całą dokumentacje ale nic nie znalazłem. Dodano po 12 problem chyba rozwiązany okazało się że chyba porty PD0-3 są zamienione z PD4-7...
Witam, chciałbym rozbudować kod znaleziony tutaj: http://mikrokontrolery.blogspot.com/2011... Na razie chciałbym dodać obsługę timerów, niestety przerwania nie działają ;/ Sprawdzam działanie przerwań za pomocą JTAGa (Atmel ICE) i stawiam breakpoint'y w funkcjach obsługi tych przerwań, niestety program...
Chciałbym wykonywać pomiary ADC na PortA (PIN2 - Positive, PIN4 - Negative) w trybie free run (tak chyba jestem w stanie osiągnąć najwięcej próbek?) i otrzymać wynik w przerwaniu jednak nie wykonuje się przerwanie. Czy mogę prosić o sprawdzenie? Oto kod: [syntax=c] #include <avr/interrupt.h> #include <asf.h> #include "conf_usb.h" static...
Nadajnik (xmega 128a3, TRYB = 1): [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <string.h> #include <avr/pgmspace.h> #include <stdbool.h> #include "SPI.h" #include "nRF24L01.h" #include "nRF24L01_memory_map.h" #include "twi_master_driver.h" #include...
Ale z komentarzy widzę, że wykorzystany jest sprzętowy UART więc porównywanie tego jest lekko bez sensu. Dlaczego bez sensu? Praktycznie każdy AVR ma USART. Tu akurat jest kilka ledów i nie ma innych peryferii, więc można robić w dowolny sposób, co innego jak się steruje 500led i w tym czasie odbiera dane DMX. Wysłanie danych dla 500 led to 15ms (1/800e3*24bity*500led)....
Witam, próbuje zrobić pomiar napięcia z przetwornikiem ADC w mikrokontrolerze XMEGA - atxmega128A3U. Pomiar napięcia ma się odbywać w przerwaniach od ukończenia konwersji. Niestety przetwornik nie reaguje na mój program tzn. wartość wyświetlana na wyświetlaczu LCD cały czas = 0. Czy robie coś źle w konfiguracji ? czy w czym może być problem? [syntax=c]#define...
Witam, zrealizowałem pomiar napięcia poprzez interfejs SPI z układem przetwornika 12 bitowego MCP3202. Mierzę napięcie od 0 do 5 V więc wyniki na LCD powinny być od 0 do 4095 lecz otrzymuje wyniki od 0 do 32767. Nie mogę dojść gdzie tkwi błąd czy w konfiguracji czy może w scalaniu wyniku ? Oto program: [syntax=csharp]#define F_CPU 32000000UL #include...
Panowie wydaje mi się, że właśnie w takim przypadku użycie volatile jest KONICZNE i to zdecydowanie, ponieważ to właśnie tylko w funkcjach a w zasadzie TYLKO w funkcjach zawierających pętle nieskończone bez możliwości ich przerwania dochodzi do buforowania zmiennych Nie jest to prawdą: Natomiast co ciekawe jeśli używamy zmiennej w przerwaniu to jej...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
Cóż... ustawiłem wszystko co się da jako wyjście. Jest lepiej. Dalej da się go zawiesić, ale trzeba się trochę więcej "namacać", żeby Tego dokonać. Jutro popracuję z tym mikrokontrolerem, zobaczę jak w normalnym użytkowaniu przez kilka godzin będzie się spisywał. Póki co wrzucam to, co na razie napisałem. Dodam tylko, że jedyną funkcją tego mikrokontrolera...
Witam serdecznie Aktualnie wykorzystuję DMA w następujący sposób INTFLAGS Bit 3:0 , który sprawdza błąd transakcji dla kanału 0 do 3. Ale błąd transakcji, a błąd wysłanego bajta to dwie różne rzeczy. Jest też rejestr TEMPH i TEMPL . Czy przy pomocy w\w rejestrów można sprawdzić poprawność wysłanego każdego bajta ? Oczywiście jest to jedynie przykład...
OK, oto kod: Plik EEP.h [syntax=c] /* * EEP.h * * Created on: 29 maj 2016 * Author: MaS */ #ifndef EEP_H_ #define EEP_H_ #define DEF_ADSR0 800 #define DEF_ADSR1 500 #define DEF_ADSR2 3000 #define DEF_ADSR3 48 #define DEF_ADSR4 300 #define DEF_ADSR5 500 #define DEF_ADSR6 2500 #define DEF_ADSR7 15 #define DEF_WZ1 200 #define DEF_WZ2 200 #define DEF_OFS1...
Cześć, Walczę z problemem już kilka dni. Kończą mi się już pomysły więc proszę o pomoc. Płytka z paroma modułami komunikacyjnymi, zasilaniem, XMega128A4 i wyświetlacz z serii WEH 16x4 - driver zgodny z hd44780. Przed zamówieniem pcb soft pisany był na prototypie w płytce stykowej z XMegą16A4. Tam LCD dział jak trzeba. Sam wyświetlacz był testowany też...
No dobra, może tak, z [url=http://morf.lv/modules.php?name=tut... strony mam taki kod, wybrałem tylko minimum (chyba). Wszystko się kompiluje ale coś dalej nie gra. Czy coś się wysyła nie wiem bo problem jest tym razem ze sterownikiem usb atmela, "nie rozpoznano urządzenia" czyli ogóle system coś wykrywa ale gdzieś...
Witam. Proszę o podpowiedź, gdzie szukać problemu. Na Atmega32 pracującej jako Slave I2C mam wyświetlacz GLCD. Fragment kodu : [syntax=c] if(BUF_status.st_ready) { switch(Buf[0]) { case 'c': GLCD_ClearScreen(); break; case 'l': GLCD_DrawLine(Buf[1],Buf[2] , Buf[3], Buf[4], Cz); break; case 'g':GLCD_GotoXY(Buf[1], Buf[2]); break; case 't':GLCD_Puts(&Buf[1]);...
Mikrokontrolery AVR firmy Atmel zdobyły bardzo dużą popularność na polskim rynku. Dotychczas producent oferował nam dwie rodziny: ATtiny oraz ATmega, które różniły się możliwościami i ceną, choć sposób ich programowania był identyczny. Wprowadzając najnowszą rodzinę, XMEGA, producent dokonał bardzo istotnych zmian, zarówno w budowie procesora, a także...
Teraz mam inny problem. Chcę robić pomiar temperatury i zapisywać na kartę SD. Używam do tego modułu prototypowego tego autora: Ponieważ post dotyczy innego tematu niż oryginalny wątek, temat podzieliłem. Na przyszłość proszę w przypadku napotkania problemów niezwiązanych z oryginalnym tematem postu zakładać nowy wątek. W ten sposób inni będą mogli...
Co prawda nie wiem jak to wygląda w XMegach, ale czy nie trzeba czasem zaincludeować "avr/interrupt.h"?
Witam, Uruchomiłem emulator klasy CDC kolegi tmf http://mikrokontrolery.blogspot.com/2011... jednak w momencie dodania timera + przerwanie po przepełnieniu to nie działa owo przerwanie. Kod main.c: [syntax=c]#include <avr/interrupt.h> #include <asf.h> #include "conf_usb.h" int main(void)...
Witam, Posiadam płytkę XMEGA-A3BU Xplained i tak sobie powoli opanowuję różne tematy, aczkolwiek utknąłem ostatnio na RTC... Płytka w oryginale, czyli żadne modyfikacje nie były robione, nic nie było podłączane, zwory nie były usuwane. Plik sample z Bascoma, dokładnie dla tej płytki XM256A3BU-RTC32.bas Dodano po 3 Chwilowo rozwiązane - przy podłączonym...
Config int0 = rising enable int0 enable interrupts procesory z tej serii nie mają wbudowanej opcji pull-down (takie rzeczy tylko w xmega widziałem), więc trzeba zastosować zewnętrzny rezystor podciągający do masy choć nie wiem czy takie coś jest wogóle możliwe (tzn czy po prostu tylko i wyłącznie stan niski nie wybudza procesora)
Oczywiście wszystkie przerwania maja wpływ na programowy UART. Nie wiem co Ci tam przeszkadza. Już chociażby buforowany UART jest na przerwaniach. Kiedy więc ESP jeszcze coś tam dosyła to już może bruździć. Jeśli Ci na tych dosyłanych potem danych nie zależy to możesz, zamiast globalnego Disable Interrupts, wyłączać poszczególne przerwania aż dojdziesz...
uC mam na płytce z modułowa, ale do rzeczy. W porównanie z Atmegami tutaj ADC jest dość dziwne, więc na podstawie tego: http://www.bostonandroid.com/manuals/xme... napisałem taki kod: /usr/bin/sh: /c/WinAVR-20100110/bin/avr-gcc: Bad address make: *** [main.o] Error 126 Jak się tego pozbyć? Bo to mija ot tak...
Znalazłem stałą TC45_OVFINTLVL_LO_gc w plikach: c:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\av... c:\Program Files (x86)\Atmel\Studio\7.0\packs\atmel\XMEGA... ale nie wiem, z którego korzysta AS7. Dodatkowo w pliku iox32e5.h TC45_OVFINTLVL_LO_gc zaszyta jest w definicji...
Proszę. Nie wiem czy koledze udało się rozwiązać problem, ale jak miałem chwile to się podzielę ze wszystkimi. ESP8266 mam na NodeMCU i wole tam go oprogramowywać, ale chciałem się pobawić komendami AT więc podłączyłem go do Xmega bo to cacko jest też 3 voltowe i posiada nawet 7 interfejsów USART :D Na drugim COM zrobiłem sobie taki Debug. Program reaguje...
Witam. Od kilku dni próbuję wyświetlić cokolwiek na wyświetlaczu HY28A ze sterownikiem SSD1289. Używam modułu http://obrazki.elektroda.pl/5478717800_1... Schemat modułu wyświetlacza: http://obrazki.elektroda.pl/4738657600_1... W wyświetlaczu zwarłem stabilizator, aby bezpośrednio zasilać go razem z atxmegą napięciem 3V3....
Dodaję cały program łącznie z plikami: [syntax=vbnet] $regfile = "m2560def.dat" '$regfile = "xm128a1def.dat" $hwstack = 128 $swstack = 128 $framesize = 128 Config Submode = New Const False = 0 Const True = 1 #if _xmega = True $crystal = 32000000 $include "XMegaPLL.inc" #else $crystal = 16000000 #endif 'Const Lcd_enable_spi = True 'Const Lcd_use_soft_spi...
Pierwsza rzecz jaką bym zrobił to wywalił delay i sterowanie zrealizował na przerwaniach od timera. Przy takim podejściu reakcja na stan wejścia byłaby natychmiastowa z punktu widzenia człowieka. Nie jest powiedziane, zalezy od tego jak bedzie wygladala reszta programu. Kolega nie pisal nic o czasie reakcji wiec poki co nie ma po co mieszac, wystarczy...
Witam, Próbuje poznać Xmegi, konkretnie chodzi o ATXMEGA32E5. Zapodałem sobie dziś temat pomiar napięcia 12 bitówy. Napisałem program, trochę przy użyciu dr Googla. Niby program działa, ale wyniki są mało satysfakcjonujące. otrzymuje w termianalu dla stabilnego napięcia ze żródła referencyjnego wskazania od 1614 - 1627. Chyba ten zakres jest zbyt duży....
Witam, podjąłem próbę przetłumaczenia przykładowego kodu do zapisu na karcie SD z biblioteki FatFS ze strony elm-chan (plik ffsample.zip projekt avr_foolproof - mam za mało postów by wkleić link). Niestety efekt nie jest zadowalający - po prostu nie działa :D (nie wykonuje się część odpowiedzialna za stworzenie pliku). Częstotliwość kwarcu w moim projekcie...
Po całym dniu walki słabo opisałem mój problem bo już po prostu nie miałem siły :D Wyjaśniam... Zrobiłem sobie mikro serwerek LANowy na Atmedze32 i układzie ENC28J60. Z doświadczenia z tym układem i Atmegą wiem że znacznie stabilniej wszystko pracuje gdy mikroporocesor (Atmega) jest taktowana zegarem 25MHz z gotowego modułu ENC a nie własnym kwarcem....
interrupt usart xmega freertos interrupt interrupt event
simson instalacji cewka ładowania philips przebarwienia obrazu współczynnik stabilizacji prądowej
pralka bosch aquastop easun instrukcja
Kodowanie licznika w Skodzie Fabii 1: VCDS i OBDeleven Model TDA1022 w Eagle - Tworzenie i Alternatywy