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...
O. To już coś działa. Wygląda na to, że albo masz źle policzoną wartość UBRR albo dobrze policzoną ale błąd jest zbyt duży do poprawnej transmisji. Problem polega na tym, że wartością UBRR ustawiamy dzielnik częstotliwości dla USARTa. Można go jednak ustawić tylko z pewną dokładnością. I tak dla niektórych częstotliwości i prędkości USARTa błąd jest...
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); } }
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ć...
...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...
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...
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. Pojawil sie kolejny problem z atmega 128. Probuje za pomoca max232 wyslac sobie na rs dane. od strony komputera nasluchure RS232 czy nadaje atmega za pomoca bushound i cisza. Max 232 podlaczlem do PE0 i PE1. Myslalem aby to zrobic za pomoca usart. Zrobilem jakiegos byka w kodzie?? #include <avr/io.h> #include <avr/iom128.h> #include...
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 ponownie, USART w ATmega128 działa, ale z ATtiny ciągle mam problem. Wewnętrzny podział częstotliwości wyłączyłem. Pozdrawiam....
Myślimy że skoro Atmega128 ma wiecej niż jeden USART to problemu chyba nie widze.
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...
Witam. W trybie MULTIPROCESOR ATMega128 może współpracowac ze 128 innymi kontrolerami wykorzystując jeden USART ;) Pozdrawiam.
Chciałbym Ci przypomnieć że Atmega128 ma 2 uarty więc kod void wyslij(unsigned char data) { while((UCSR0A&(1<<... == 0); UDR0 = data; } jest błędny. Rejestr UCSR0A nie ma takiego pola jak UDRE ale UDRE0 (strona 189 datasheet). Jeśli to nie pomoże, zamieść schemat elektryczny, może tam jest błąd.
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,...
Atmega128 i wyższe. Mniejsze mają tylko po 1.
(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.
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...
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.
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.
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....
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).
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...
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....
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ę...
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%.
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.
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...
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...
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...
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...
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...
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...
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;...
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. Jestem mocno poczatkujacy i prosilbym o pomoc z ukladem MAX232IN. Zmontowalem prosty uklad Atmega128 i komunikacja z komputerem pc przez COM, i konwerter MAX232IN. Do MAX-a uzywam kondensatorow 1uF podlaczonych nastepujaco: Vs+ przez kondensator do masy, Vs- przez kondensator do masy (zgodnie z dokumentacja techniczna moze byc do masy lub VCC),...
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...
Wszystko się da, wystarczy napisać odpowiedni algorytm do software usart i już;]
To jak powinienem podać wartość do tej funkcji: USART_Init() ?
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...
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.
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ć...
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, 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...
Podobne tematy: http://www.elektroda.pl/rtvforum/topic18... http://www.elektroda.pl/rtvforum/topic15...
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).
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?
atmega128 usart atmega128 usart bufor esp8266 usart
pompa ciepła praca ne555 regulator obrotów rozszczelniony liebherr
gniazdo zasilania kampera kalibracja hydrostatu
Schemat ideowy UPS Fideltronik Ares 1600 - dostępność i diagnostyka Trzaski i piski w słuchawkach JBL - przyczyny i rozwiązania