Przykładem może być układ TTL 74150 . Lub tak jak napisałem połączenie z diodami zmieniające działanie wyjść na zbliżoną do wyjść "OC" diody powodują że aktywnym stanem który będzie dominujący to stan niski na dowolnym ADM , jednak takie rozwiązanie ma wady jeśli nastąpi zwarcie wymuszające zero na jednym ADM reszta milknie ... Diody trzeba dać przy...
Jest to zdefiniowane w io.h, tyle, ze ma inne nazwy rejestrow - zobacz plik iom128.h. Nazwy podane w DS nie zawsze pokrywaja sie z tymi z AVR-libc. ATMega128 ma 2 USARTy, wiec np. UCSRA dla USART0nazywa sie UCSR0A, a dla USART1 UCSR1A.
3) Generalnie na początku makra SIGNAL wyłączane są przerwania (funkcja cli), a na końcu są odblokowywane (sei), tak więc nie ma zagnieżdżenia przerwań, po prostu niektóre pomiary gubisz. 2) wg noty katalogowej do masy przez kondensator 1) jeśli ich nie używasz, to należy je ustawić jako WYJŚCIE, i można na nich ustawić stan 0. Nie powinny wisieć w...
A z jakiego terminalu korzystasz? Bo na obrazkach masz ustawienia portu tylko. Kiedy korzystasz z usartu nie musisz ustawiać kierunkowości portu. Po włączeniu RXEN i TXEN piny te automatycznie są wykorzystywane przez usart i procek sam nimi steruje (przynajmniej w usart0). A dlaczego nie korzystasz z usart0? Wykorzystujesz go juz? uint8_t uart_getchar(void)...
Jeśli włączysz diodę to musisz ją też wyłączyć. /**************** Funkcja włączajaca port PD4 *****************/ void przycisk(uint8_t c) { if (c=='w') { PORTD |= 1<<4; } else { PORTD &= ~(1<<4); } }
A jakby zrobić coś takiego. W przerwaniu timera 1 i poza nim uruchomić przerwanie od Usarta w którym znaki będą zapisywane do tablicy, a w pętli głównej programu sprawdzać tylko zapełnienie tablicy. Po jej zapełnieniu analizować dostarczone dane przy wyłączonym przerwaniu z Usarta. Pytanie czy Usart daje przerwanie przy zakończeniu odbioru znaku (wypełnieniu...
Dziękuję za zainteresowanie moim problemem. W ferworze walki poplątałem wiersze, ale było dobrze jak jest teraz i problem nadal istnieje. Program piszę w studio4, nazwy bitów były umieszczone w nawiasach i bez też nie pomogło. SP oto program: [syntax=text] .nolist .include"m128def.inc" .list .defAL = r24 .defAH = r25 ;akumulator .equ SYS_FREQ_HZ = 8000000...
...jak wiadomo aby wyliczyc predkosc usarta trzeba posluzyc sie wzorem: UBRR=(foscylatora / 16BAUD)-1 ...wiec np jezeli chce miec predkosc 115200 przy oscylatorze 14.7456MHz UBRR wyjdzie ladnie 7... ..a teraz zasadnicze pytanie czy z Atmegi128 wycisnie sie transfer 921600...(zaznaczam ze komunikacja pojdzie przez kostke FTDI, ktora jest w stanie...
Witam Chciałbym przez rs232 zapisywać zmienne z pliku txt do zewnętrznej pamięci eeprom np. 24Cxx z których będzie korzystał mikrokontroler atmega128. Od czego zacząć? Czy to będzie bardziej rozwiązanie polegające na programie w mikrokontrolerze zasysającym dane z txt i wczytującym je do eeproma czy zrezygnować z drogi mikrokontrolera i programować...
Wszystko się da, wystarczy napisać odpowiedni algorytm do software usart i już;]
Witam ponownie, USART w ATmega128 działa, ale z ATtiny ciągle mam problem. Wewnętrzny podział częstotliwości wyłączyłem. Pozdrawiam....
istnieje mozliwosc wysylania powiedzmy calych ciagów znakow w postaci jednej transjmisji. w tej chwili mi wysyla pojedyncze literki. A zalezalo by mi na calych ciagach znakow. Jakie wartości dać dla wiekszej predkosci? Istnieją moze jakies wzroy, tablele? Zrobiłem jeszcze coś takiego #include <avr/io.h> #include <avr/iom128.h> #include <avr/sfr_defs.h>...
Nie znam tego kompilatora ale skoro to działało na ATmega8 to tylko się w 128 zmieniły adresy rejestrów oraz wektorów przerwań. Sprawdź to a najlepiej zobacz w listingu czy jest właściwie umieszczony wektor przerwania.
Witam, tak jak w temacie - chciałbym wysłać zmienną typu double przez USART. Niejako podobny temat zlokalizowałem pod tym linkiem: [url=http://www.elektroda.pl/rtvforum/to... lecz nie udało się mi wywnioskować jak to zrealizować. Mój tok rozumowania: 1. zmienna typu float/double zajmuje w pamięci odpowiednio 2 i 4 bajty w pamięci. Usart...
W tym fragmencie: /* Interrupt handlers */ #pragma vector=USART0_RXC_vect __interrupt void USART0_RX_interrupt(void){ ---------> LINIA: 72 unsigned char data; unsigned char tmphead; /* Read the received data */ data = UDR0; /* Calculate buffer index */ tmphead = ( USART_RxHead + 1 ) & USART_RX_BUFFER_MASK; USART_RxHead = tmphead; /* Store new...
Myślimy że skoro Atmega128 ma wiecej niż jeden USART to problemu chyba nie widze.
Witam, problem wygląda następująco - próbuję skomunikować się z komputerem i po części wszystko działa jednak nie do końca. Otóż na najmłodszych 4 bitach dane są poprawne natomiast na czterech najstarszych zawsze jest stała wartość 1011. Poniżej zamieszczam zrzut z terminala podczas działania programy typu echo. http://obrazki.elektroda.net/0_124337521...
Witam. W trybie MULTIPROCESOR ATMega128 może współpracowac ze 128 innymi kontrolerami wykorzystując jeden USART ;) Pozdrawiam.
40 linii to tylko 5 portów a ATmega128 ma ich przeszło 6 czyli w zupełności Ci wystarczy. Niektóre porty mają możliwość generowania przerwania jak się zmieni ich stan ale przy tej rozdzielczości (5ms) wystarczy skanowanie wszystkich wejść a po wykryciu zmiany zapisać bieżący czas w buforze. Po zerwaniu się wszystkich przewodów cały bufor możesz wysłać...
Poczytaj o uIP i lwIP
Ten bit uruchamia lub wyłącza tryb zgodności z nie produkowaną już megą103. W tym trybie dla przykładu masz do dyspozycji tylko jeden USART, jeden 16bitowy timer zamiast dwóch, PORTC działa tylko w trybie jednokierunkowym (tylko jako wyjście) itd... Z pozostałymi różnicami postaraj się zapoznać już samodzielnie (nota str.4, 5).
W AVR306 mozna znalezc taki kod obslugi USARTA dla atmegi128: #include <avr/io.h> #include <avr/iom128.h> #include <avr/ina90.h> /* UART Buffer Defines */ #define USART_RX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_TX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE...
Hyper Terminal przerabia to co dostanie na znaki zgodnie z tablicą ASCII Wywołanie wyslij(5+'0'); przerabia poprawnie cyfry od 0-9 na kody ASCII tak by poprawnie zostały wyświetlone na terminalu jako odpowiednie cyfry. Aby wyświetlić unsigned char na terminalu możesz skorzystać z takiej funkcji: void wyslij_Value_as_Digits( unsigned char value )...
Witam wszystkich Problem wygląda następująco, nie mogę odebrać żadnych danych za pomoca uarta1 atmegii 128 (poprawnie wysyła ale nic nie odbiera ;/ ) Prosiłbym o wszelką pomoc, poniżej wklejam programy inicjalizacji i odbioru: [code][syntax=c]void USART_Init( unsigned int ubrr, unsigned int port) { switch (port) { case 0: /* Set baud rate */ UBRR0H...
Witam Znalazłem na sieci bibliotekę do transmisji szeregowej na AVR. Jako, że potrzebuję używać 2 portów szeregowych w układzie przerobiłem bibliotekę na 2 USARTY, czyli wszystkie funkcje i zmienne przerobiłem dodając w nazwie uart1. Wszystko działa dobrze oprócz odbioru danych przez drugi uart. Jeśli wysyłam dane z obu uartów do komputera, wszystko...
To nie prościej jest wykożystać ATmega128 w którym są dwa sprzętowe USART-y i niema problemu.
Czemu cały czas w pętli inicjujesz USART? Czemu nie wysterowałeś pinu Tx jako pinu wyjściowego?
To jak powinienem podać wartość do tej funkcji: USART_Init() ?
Atmega128 i wyższe. Mniejsze mają tylko po 1.
Ja również uruchomiłem uIP, ale na ATMEGA128 i RTL8019AS i mam dokładnie ten sam objaw. Wysyła discover dostaje z serwera odpowiedź, restart i przestaje w ogóle odpowiadać czy ze starym czy z nowym IP.
Podobne tematy: http://www.elektroda.pl/rtvforum/topic18... http://www.elektroda.pl/rtvforum/topic15...
Witam. Mam jedno pytanie. Potrzebuje uC firmy ATMEL z rodziny ATmega, który będzie miał 2x USART Normalnie wybrałbym ATmega128, ale zależy mi na tym aby był dostępny w DIP, a nie w SMD. A może jest jakaś strona, na której mógłbym sobie wyszukać uC ze względu na parametry. Zależy mi głównie na Atmel-ach. Istnieje w ogóle taka strona?
Jest tu co najmniej kilka błędów. Pierwszy to taki, że funkcja uart_getc nie jest atomowa. W ogóle kolejka jest zrealizowana źle - nie uwzględnia, że odczyty/zapisy następują asynchronicznie, w związku z tym pewne operacje (np. uaktualnienie wskaźników początku i końca) muszą być robione atomowo. Przypadkowo to działa przy zapisie, bo ISR jest wykonywane...
1. Jakie prędkości masz po obu stronach? 2. Nie możesz tego zrobić sprzętowo? 3. Programowo robisz odbiór i nadawanie na przerwaniach i przepisujesz z jednego bufora dane do drugiego... 4. Jakie funkcje ma pełnić Atmega? Czy ma to być tylko monitor połączenia czy co?
void SERIAL_Init() { UCSR0A=0x02; UCSR0B=0xD8; UCSR0C=0x06; UBRR0H = (_BYTE)(DEBUG_BAUD_RATE >> 8); UBRR0L = (_BYTE)(DEBUG_BAUD_RATE)... } Inicjalizacja UART0, z 1 jest tak samo. Odczyt while (UCSR0A & 0x80) buff[i++] = UDR0; return i; Wyslanie UDR0 = data; while( (UCSR0A...
Różnica jest olbrzymia. Napisz program wysyłający dane i przeanalizuj go w sytuacji, gdy masz bufor i gdy go nie ma. Jaka jest z jego punktu widzenia? I tak może zapisać jeden bajt na raz, tak że obsługę dosyłania kolejnych musi napisać sam. A tak przy okazji czy atmega128 ma tryb usart spi mode? Bo datasheet o tym milczy (a bit 7 rejestru, kóry powinien...
Właśnie tu jest pies pogrzebany ;-) Na gotowej płytce mam już układ PDIUSBD11 . Nie mogę użyć FT232 lub CP2102 bo wszystkie USART'y w ATmega128 mam już zajęte. Teoretycznie mogłbym użyć jakiegoś multipleksera np. 74HC244 do przełączania portu USART lub na innych portach programowo zrobic USART, ale płytkę mam już gotową, elementy przylutowane i to,...
Nie działa, tzn. co wysyła? Pierwszy przykład nie może poprawnie działać bo funkcja oczekuje typu bajtowego (0-255), a przekazujesz jej liczbę reprezentowaną przez int. Drugi przykład powinien działać o ile USART jest poprawnie skonfigurowany.
Nic dziwnego, zmieniasz taktowanie procesora, zmieniasz także baudrate na UART. Dla zewnętrznego kwarcu CKOPT=1, CKSEL=111X, 1 znaczy niezaprogramowany, X - dowolna wartość.
SPI najłatwiej sprawdzić, podobnie jak USART, zapętlając MOSI z MISO.
Witam! Musze w dość krótkim czasie (około 1.5 miesiąca) nauczyć się programowania procesora ATmega128. W związku z tym pytanie: gdzie można znalezć przykładowe programy pod ten procesor np. inicjalizacja USART i transmisja w trybie asynchronicznym, obsługa przerwań zewnętrznych, obsługa magistrali I2C itd. Najlepiej żeby były w asemblerze i C :-D Dzieki....
Nie, nie mam. Dodano po 22 W kodzie na temat USART'a, trochę namieszałeś. ATmega128 ma 2 USART'y. W jednym miejscu konfigurujesz USART1 a w innym używasz USART0. Polecam datasheet'a do ATmegi128, są tam też przykładowe kody dot. USART'a.
Witam, Tak jak w poprzedniej odpowiedzi pisałem USART działa. Jednak pojawił się problem, że nie działają mi przerwania w USART. Za pomocą kodu: ;***************************************... USART0_Receive: ; Odbiór USART0 ; czekaj aż bufor odbiorczy będzie pełny sbis UCSR0A, RXC0 rjmp USART0_Receive ; załaduj dane z rejestru...
Witam ponownie, dzięki za pomoc, udało się program skompilować i nawet wszystko działa. Jednak jedynie na symulatorze, mam problem z przeniesieniem tego na procesor. Po uruchomieniu procesor przesyła jedynie powitanie: "FatFs R0.07d test monitor for AVR\n", natomiast na każdą próbę wysłania komendy odpowiada jedynie echem i nie wykonuje żadnych operacji....
Z tego co wyczaiłem to mega popędzana jest kwarcem 14,7456 MHz (kwarc do USART)... Timery ustawione są tak, że przerwanie wywoływane jest co 0,05s stąd podstawowa zmienna zliczająca do sekundy zwiększana jest co drugie wywołanie przerwania (odpowiadają za to variable i variable1)... Spróbuj przeanalizować ten kod i skonfrontować go z dokumentacją do...
Witam! po pierwsze musisz upewnić się czy operacje zapisu i odczytu faktycznie działają. Z tego co zaobserwowałem, zaraz po uruchomieniu RTL8019AS wybrana jest strona 0 rejestrów. Jest tam taki rejestr zwany BNRY do którego można zapisywać wszystkie wartości z przedziału 0-255 i odczytywać na tej samej stronie. W związku z tym zrób taki test zaraz na...
Witam, Jak byś zobaczył do HELPa Bascoma to byś dużo się dowiedział :) $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 'set the baud rate for the first hardware UART. $baud1 = 9600 'set the baud rate for the second hardware UART. 'when CONFIG COMx is not used, the default N,8,1 will be used Config Pinb.7 = Output Config Com1 = Dummy...
Dodam, że sam program bootloadera reaguje na przycisk, zapala diodę a jak dodałem na chwilę programowe echo dla USART to również działało więc hardware jest RACZEJ ok. BOOTSZ mam ustawiony na największy rozmiar (nie pamiętam już jaki).
www.ethernut.de No ale jak tak to oglądnąłem to na pierwszy rzut oka minimum to Atmega128 albo 103
(at)osctest1 Nie wiem. Może ty odpowiesz na to pytanie? Tablica globalna char znak (at)Sareph Tak wiem że jest wolniejszy dostęp do tej pamięci.
Witam. Próbuję przesłać i odebrać znak pomiędzy atmega128 a putty. ATmega taktowana kwarcem 14.7456MHz. Korzystam z przejściówki USB<->RS232 (z atmega32 działa). RXD/TXD skrosowane. KOD: uart.c : [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include "uart.h" volatile char c_in; // odebrany znak...
Z tego co mi wiadomo to w przerwaniu od odbiory poprzez USART w atmegach trzeba w ogole przeczytac rejestr UDR !! Na pierwszy rzut oka ponieważ flaga przewrwania nie jest czyszczona ( warunkiem jest odczytanie UDRn ) i zanim funkcja od LCD zdazy cokolwiek zrobić wywolywane jest kolejne przerwanie od odbioru.
Jakiś schemat istotnych połączeń ? Czy oba AVR-y były włączone podczas programowania ? Light-I
Musisz całkowicie zmienić obsługe slave. Po pierwsze musisz wprowadzić synchronizację, czyli machać linią SS. Po drugie odbiór w slave należałoby oprzeć na przerwania SPI - SPI nie ma wielostopniowego bufora, kolejne bity nadpisują poprzednie. W efekcie musisz mieć pewność, że zdążysz z odbiorem. To w miarę gwearantują ci przerwania, na pewno nie delaye...
W ATMega do realizacjiu UART nie należy stosować wewnętrznego generatora RC, zbyt mało stabilny. Jeśli musisz na wewnętrznych to skorzystać z USART, czyli połącz jeszcze procki sygnałem XCK i włącz synchroniczną transmisję USART. W PRzypadku M128 pamiętaj też o wyłączeniu fusebitu kompatybilności z M103. BTW, po co stosować M128, jeśli pod każdym względem...
czyli RS musiałby działać z szybkością co najmniej 1 Mb/s Sprawdziłem organoleptycznie: działa stabilnie przy ciągłym strumieniu przesyłanych danych - przynajmniej na Atmega 168PB. Oczywiście połączenie USART -> USB. Pierwotne pytanie było o pomiar częstotliwości. Podana metoda dwóch timerów jest też dla pomiaru częstotliwości. Jak by Kolega sprawdził...
Posprawdzaj dobrze dokumentację. Czasami różnice są dość znaczne. Na przykład Atmega644P ma 2 USARTy, a Atmega644 tylko jeden.
Witam Z tej strony: http://hubbard.engr.scu.edu/avr/avrlib/ moze sobie sciagnac biblioteki do AVR. Jest tam w miedzy innymi biblioteka do pamieci Flash obslugiwanej przez SPI (pliki spiflash.c, spiflash.h). Sa to biblioteki dla pamieci (M25Pxx/AT25Fxxx/etc). Twoja pamiec AT45DB161D troche sie od nich rozni, ale mozesz sobie zerknac jak jest napisana...
Przerwania dla USART wydaje mi sie że działają poprawnie, dlatego nie załączam kodu obsługi USART. Przerwania same w sobie muszą działać poprawnie, jeśli tylko procesor jest sprawny i taktowanie, i zasilanie poprawne. Tym niemniej kod obsługi przerwania może zawierać błędne założenia, które mogą być przyczyną.
USART w AVR działa z połową (max) prędkości procka... U mnie i2c(linia SCL) wyciągała 500kHz/8MHz USART w trybie synchronicznym może wyciągnąć nawet połowę szybkości CPU, w trybie asynchronicznym 1/16 lub 1/8 f_CPU więc spokojnie mozesz zapchać łączę w 100%.
Warto jednak pamiętać, że w cenie NM7010A można zmontować prosty system z ATmega128 i RTL8019. Programowy stos jest trochę kłopotliwy, ale można przecież zastosować gotowe biblioteki np. uIP. Pozatym uważam, że nikt poważny nie będzie używał Bascoma do programowania aplikacji sieciowych...
Moduł Pro-Atmega128 który chce zakupić posiada dwa programowalne porty szeregowe typu USART, full duplex:USART0 i USART1.Dąłaczam do tego schemat.Na schemacie widać że transmisja moze być zarówno przez linie RXD oraz TXD. Zadanie programu. Zadniem programu ma być sterowanie 3 silnikami.Sterowanie mogłoby sie odbywać poprzez naciśnięcie klawiszy kierukowych...
Jak sterować PWM na wewnętrznym timerze? konkretnie potrzebuje 3 rozne, umie trochę programować w c, ale nie mogę zrozumieć jak to ma działać, ustawienie preskalera i tych innych "zmiennych" - nie wiem jak je nazwać, nie programowałem wcześniej uC, przeczytałem ten temat z kilku książek "Mikrokontroleey AVR w praktyce" Doliński, i podobnych o programowaniu...
no tak... jak zwykle macie racje... ;) zaczalem sie troche bawic dzis kodem i doszedlem do tych przerwan odczytu... ale utknalem... dalem sei(); ale to nic nie zmienialo. teraz wszystko wyglada tak: #include <avr/interrupt.h> #include <inttypes.h> #include <stdlib.h> #include <math.h> #include <avr/io.h> #define F_CPU 14745660...
mati1988k --> zapamiętaj, zawsze zajrzyj na ostatnią stronę rozdziału UART lub USART w nocie PDF . Masz tam tabelki i wszystko policzone na gotowo. Więc jak to może być że nie możesz znaleźć hmmmm??? KAŻDY procek AVR posiadający UART ma to samo w nocie.
http://www.tme.pl/katalog/index.phtml?f_... moja pomylka bo adres w zostal z szukania a pokazywalo uklad: SR611008HSA15J ogolnie pamieci lepiej szukac po pojemnosci w katalogu niz po symbolach . co do pamieci to nie wiem jak w ethernucie ale np do 'uip' duzo nie potrzeba , ja mam 32k i do tego wiekszosc na swoje dane.
Ponieważ jest to mój pierwszy post chciałbym wszystkich serdecznie powitać :). Mój problem polega na tym, że nie mogę ustawić połączenia uC <-> PC z Atmegą 128. Przy AT16 wszystko jest w porządku, a ze 128 wyświetla mi nieprawidłowe znaki w Terminalu. Przy transmisji dioda się świeci i i wszystko poza tym działa jak powinno. #include <avr/io.h>...
Kilka razy kolega Piotrus_999 wrzucał tutaj kod. Niestety nie wytrzymał on "elektrodowego review":) Oczekuję rewanżu, zwłaszcza od kolegi (at)Piotrus_999. Proponuję kolegom zażyć valium, znaleźć dziewczynę (chłopaka, coś innego w zależności od preferencji) , lub pojechać do sanatorium Post raportowany. Prosiłem i tłumaczyłem n-razy. Nie zostawia kolega...
Najlepiej tak: Polecam ATmega128. - komunikacja mega128 z PC przez UART1 po RS232 - Komunikacja pomiędzy innymi uC przez UART2 po RS485(daleka transisja + stabilność) Może i mega128 jest troche droga, ale warta swej ceny. Zrobiłem na niej komunikacje między PC oraz komunikację z 26 małymi układami wykonawczo zbiorczymi (ATtiny2313). układzik śmiga do...
No dobra - udało mi się to chyba uruchomić :) Według tego co w nocie m128 - wzkaźnik na pierwszą komórkę w xram (0x1100). #include <avr/io.h> #include <util/delay.h> #include "USART.h" #include "IO.h" typedef unsigned char uchar; typedef unsigned int uint; #define OFFSET 0x1100 int main(void) { MCUCR |= 0b11000000;...
Witam. Projektując większe urządzenie zawierające moduł WiFi ESP8266 napotkałem bardzo dziwny problem. Dodam, że mam również drugie urządzenie, które dobrze działa a moduły jest tak samo podłączony. Różni się tylko innym mikrokontrolerem – nieszczęsnym, ATmega128. Nieszczęsnym, bo zawiera drugi USART na tych samych pinach, co programator ISP....
Na każda diodę potrzebujesz wysłać 24 bity danych, czyli w sumie dla 600 diod, wychodzi 14.0625kb, musisz zrobić to 4x na sekundę, to prędkość transmisji wychodzi 56.25kbps. WS2812 najlepiej sterować przez USART. 56kbbs to nie jest duża prędkość dla USART Coś tu źle liczysz. Aby sterować WSami z USART potrzeba przepływności 2,4Mb/s a takiej, na AVR...
Funkcja czekająca na odpowiedz powinna być odporna na brak jakiekolwiek odpowiedzi. W przypadku braku odpowiedzi z modemu Twój kod się "zapetli". Jak wygląda kod usr0_getc()? Nie widzę związku między ISR a tą funkcją. Zakładam również, ze flagi (flagGotLine i pozostałe) zadeklarowales jako volatile. Postaraj się zaimplementować pkt. 4 z mojej poprzedniej...
http://skalski.elektroda.eu/files/atmega... Atmega128 zapewnia następujące elementy: 128K bajtów wewnętrznej programowalnej pamięci typu FLASH z dopasowaniem odczytu podczas zapisu, 4K bajty EEPROM, 4K bajty SRAM, 53 linie wejścia/wyjścia, 32 robocze rejestry, Licznik rzeczywistego czasu(RTC), cztery liczniki z trybami porównywania i PWM, dwa...
Co do książki to przerobiłem sobie około 60% treści (początkowe rozdziały na start, USART, I2C, kilka innych drobnych programów) i myślałem że nic mnie nie zaskoczy. Aż tu nagle znalazłem rozdział o implementacji Menu na wyświetlacz alfanumeryczny. Do wczoraj myślałem że znam nieco bardziej język C, a teraz nawet dokładnie nie wiem jakie pytanie odnośnie...
Ja na własnej implementacji TCP/IP na ATMEGA128 16MHz bez potwierdzeń ACK uzyskałem 24kB/s z serwera HTTP (ładowanie dużego JPG). W sieci lokalnej lub tam gdzie zagubiony pakiet aż tak nie nabroi można zrezygnować z potwierdzeń.
Witam, Mam problem z uruchomieniem UARTU na ATmega128. Jako kompilatora używam CodeVisionAVR. Program się kompiluje lecz nic nie mogę wysłać z procka do kompa, co może być źle w kodzie: #include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE)...
Ok. Walczylem i poradzilem sobie xD Problem lezal w inicjalizacji. Zeby nie bylo ze tak dlugo z tym walczylem ale swieta byly i kilka innych projektow. Ch.M.: No niby lepiej przez USB ale program pisze pod gotowa plytke i mialem rozkaz z gory zeby bylo RS232. Dla zainteresowanych wstawiam kod. Schemat na poczatku postu. Dodam ze kod jest dla ATmega128....
Można oczywiście podglądać co się dzieje na RS`ie mając tylko jeden USART, ale wygodniej i szybciej jest wziąć procesor który ma co najmniej dwa USART`y. Do tego napisałbyś sobie jakiś krótszy program który będzie wysyłał jakieś podstawione dane na ten Domoticz i w drugim USAR`cie podglądał co się dzieje. Dopracuj sobie to połączenie a nie zgadujesz...
Kwarc wewnętrzny 8MHz, zasilanie 3,3V, GPS podłączony bezpośrednio do uC poprzez rezystor 330 Ohm. Prędkość 9600 bodów. Transmisja GPSa z kompem działa poprawnie. Transmisja ATmega128L z kompem działa poprawnie. Transmisja GPSa z ATmega128L krzaczy. Transmisja GPSa z ATmega16 5V 8MHz wewnętrzny działa prawidłowo. Dodano po 2 Loopback = RxD zwarty z...
Witam serdecznie. Napisałem prosty program do pomiaru częstotliwości. Chcę wykorzystać TIMER3 do pomiaru częstotliwości. Na wejście podaję sygnał prostokątny z generatora. Nie jestem pewien czy na wejście T3, czy na ICP3 powinienem podawać badany sygnał, ale program nie działa w obu przypadkach. Poniżej prezentuję kod programu i proszę o pomoc, co robię...
Od razu powiem, że jest podłączone na PDI/PDO, wcześniej dało się zaprogramować układ bez żadnych problemów więc połączenia są na 100% dobre. Procesor startuje. Odpala wyświetlacz więc raczej nie jest uszkodzony. Kwarc 16Mhz + 2 kondensatory 22pF. Sprawdziłem czy są przejścia od złącza isp na złącze programatora = tak są. Nie ma zwarć na sąsiednie piny....
Xmega niby jest super, ale jeżeli chcesz puścić dane przez port SPI (max. 8MHz, więc teoretycznie 200pxl), to nie masz bufora i pojawia się kwestia stabilizacji obrazu. Bufor ma tylko USART w trybie SPI, ale on pracuje z prędkością do 4MHz (100pxl/linię). Możesz użyć DMA do transferu danych na port, z którego uzyskasz kolory, ale... Prędkość DMA zależy...
Cosicek: Datasheet M128, str. 171 Note that in ATmega103 compatibility mode, USART1 is not available, neither is the UBRR0H or UCRS0C Registers. This means that in ATmega103 compatibility mode, the ATmega128 supports asynchronous operation of USART0 only. oraz tabelka na str. 174: http://obrazki.elektroda.pl/9607554400_1... Wobec powyższego...
Cześć! Mam problem, który muszę dosyć szybko rozwiązać. Zasilanie układu jest podwójne: albo z przetwornicy, albo z usb. Komunikacja z portem usb za pomocą FT232RL. Jak zasilam z przetwornicy a chce komunikacje to odcinam zasilanie zaraz za portem usb zworką. W przypadku, gdy podłączony jest kabel USB (sprawdzałem również na ekranowanym) to mam dosyć...
Witam! Nie umiem sobie poradzić z uruchomieniem kodu. Myślę, że temat książkowy. Mam błędy w programie który próbuję uruchomić w celu dalszej edukacji w C. Nie znam jeszcze dokładnie w tym języku wszystkiego, więc zwracam się o pomoc, jeżeli to możliwe, aby uruchomić ten projekt. Dodaję kod i plik z builda. Poprawiłem tytuł, formatowanie postu i pisownię....
witam Zaczynam z atmega128 i na wstępie mam problem z uart avrstudio i asembler problem mam mianowicie z dostępem a raczej z wpisem do rejestrów UBRRH UCSRC z tego do czego doszedłem po paru godzinach to to ze avrstudio pokazuje mi te rejestry jako NA . Dodam ze fusebit jest wyłaczony M103 może ktoś mógł by mi to jakoś objaśnić bo nie czaje jak się...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
Witam! Przeszukałem chyba całe forum i nie znalazłem rozwiązania na mój problem. Próbuje uruchomić UART pomiędzy prockiem a komputerem. Działa mi wysyłania, nie działa mi odbiór. SIGNAL (SIG_UART0_RECV) // USART RX interrupt { while (UCSR0A & 0x80) c = UDR0; } void UART_Init( unsigned int ubrr) { UBRR0H =0;...
Absolutnie nie posiadam przykładów w Bascom, mam tylko Helpa i co nieco pamiętam, co było juz na forum... ;) Na codzień używam asm - ma mniej poleceń do zapamiętania ;) Pewnie w ATmega128 bedziesz potrzebował użyć URXC1 zamiast URXC . Ostatnio, jak oprogramowywałem odbiór USART, to zrobiłem bufor w RAM "okrężny", z którego w wolnej chwili procedurki...
Witam wszystkich, mam do Was prosbe, zamiesiclem w zalacznikach zgodnie z ich nazwa pliki z WinAVR, a dokladnie obsluge uarta dla ATMegi128...czy ktos moglby mi powiedziec, czy rzeczywiscie ten kod wszysztko co robi to po podlaczniu do procka zasilania wysyla na port kolejna wartosc...tzn to co jest w petli w main'ie?? Pod spodem zamieszczam sam kod...
#include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
a kto mi powie dlaczego jak programuje ATmega128 to niby wszystko jest okej poza tym ze procek sie zachowuje jak by nie było programu! chce zrobić konwerter 2 protokołów a nawet nie moge odpaliz zadnedo USART'a podpiołem oby dwa porty szeregowe przez RS232 do kompa i kompletna cisza ! a ten sam program na Atmega8 działa bez problemu !! (uzywałem najprostrzych...
Chyba czegoś nie rozumiem albo jestem tak topornie tępy. Jeszcze raz. Rozumiem że mam ustwić flagę TXCIE. Spoko. Czyli robie to tak: void USARTinit(unsigned int baud) { UBRR0H=(unsigned char){baud>>8}; UBRR0L=(unsigned char)baud; UCSR0B=(1<<RXEN0)|(1<<TXEN0)... UCSR0C=(0<<USBS0)|(3<<UCSZ0)... UCSR0B |= _BV(TXCIE);...
Po pierwsze sprawdź co rzeczywiście ci ta kontrolka wyrzuca. Kolejna sprawa - zapis do LCD trochę trwa, niewykluczone, że gubisz znaki. Sprawdzaj stan rejestru statusu. Najprościej jest zrealizować odbiór znaków w przerwaniach i zapisywać kolejne znaki do bufora. Po odebraniu całości ustawiasz flagę gotowości i w procedurze głównej ją sprawdzasz i...
Z tymi wykresami to racja, sprawdzę sobie je tak jak mówisz. A mógłbyś mi taką jedną wstawkę napisac zmienna<->RAM? Napisałem przykładowe: Chciałbym zapisac bajt (0xAA) do pamiecie zawnętrznej pod adresem 0x2000. Pozniej odczytac ta wartosc i wyslac na USART, zeby zobaczyc czy działa. zapis: asm("LDI R26,0xAA" "\n\t" "STS 0x2000,R26" ); odczyt:...
No tak - fuse'y w AVR-ach są nieintuicyjne - wartości są 'odwrócone'. Pamietam jak kiedyś, po szybkiej przesiadce na M128 próbowałem odpalić drugi USART. Po kilku godzinach zastanawiania się co robię źle w programie (zaczynałem już podejrzewać błędy w kompilatorze ;)) okazało się (jak zwykle :D), że wina leży po mojej stronie - włączony fuse M103C.
Witam, Usiłuję zmusić ATmegę128 do komunikacji z komputerem przez RS-232. Niestety mam z tym duży kłopot. Procesor chodzi z kwarcem na 16MHz, a transmisja do komputera ma się odbywać poprzez wbudowany w procesor USART z prędkością 115,2kbps. Transmisja ma być w zasadzie ciągła do póki są dane do wysłania (a będą cały czas) i jedynie procesor będzie...
Witam, Zwracam się do Was o pomoc, gdyż przeczytałem mnóstwo tematów zarówno na tym forum jak i na innych i nie udało mi się nawet ruszyć z miejsca :( Jestem na etapie programowania procesora ATmega128L. Znajduje się on w układzie, z kilkoma urządzeniami I/O. Procesor programuję w assemblerze. Jestem początkujący, ale dotychczas z programowaniem w tym...
Preskaler znaczy taki mnożnik (ze max rozdzielczość to us(mikrosekundy) ale stosując ten preskaler można ją zmniejszyć np do sekund)? Jeśli tak to moj problem został rozwiązany. Poniżej zamieszczam kod który znalazłem na stronie #include <avr/io.h> #include <avr/interrupt.h> //Counts overflovs volatile uint16_t T1Ovs1, T1Ovs2; //Variables...
atmega128 usart bufor przerwa usart usart wskaźnik
powolne narastanie kompresor sprezarki pendrive odzyskanie partycji
How to Calculate Scale Factor for Engineering Drawings, Maps, and 3D Models Yellow Tint on Dell, Samsung, LG, HP Monitors: Blue-Light Filter, Cable, Backlight Issues