Nigdy nie był mi potrzebny USART a tu wyszło że potrzebny i to jeszcze w przerwaniu. Siedzę już kawałek czasu nad tymi wypocinami i nic mi do głowy nie przychodzi. Proszę o pomoc - co jest nie tak. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> void Led_RED(unsigned char value) { if (value)...
Witam próbuję obsłużyć komunikację procesora Attiny2313 z komputerem poprzez port RS232. Komunikacja jest jednokierunkowa. Tylko procesor przesyła dane do komputera. Niestety mimo wielu prób nie chce mi to ruszyć. Bardzo bym prosił o sprawdzenie i pomoc w znalezieniu błędu. Poniżej wrzucam kod programu oraz schemat połączeń. Z góry dziękuję za pomoc....
Witam. Staram się aby AtTiny2313 było odbiornikiem. Napisałem program z użyciem przerwań i problem jest taki, że nie działa. Nie mam bladego pojęcia co jest grane, ogarniałem notę producenta i jestem w totalnej kropce. Oto kod. Czy możecie spojrzeć swoim okiem i powiedzieć co może być nie tak? [syntax=c]void USART_Init(void) { UBRRL=(uint8_t)UBRRVAL;...
Witam, właśnie budują pewien układ, ale napotkałem problem, z którym nie mogę sobie poradzić. Układ poprawnie wysyła wszystko do komputera przez USART, ale nic nie chce odebrać, nie wiem co jest grane, co robię źle. tak inicjuję usart: ldi temp, 0x00 out UBRRH, temp ldi temp, 12 out UBRRL, temp ldi temp, (1<<RXCIE)|(1<<R...
Po przejściu z at90s2313 na attiny2313 nie działa mi komunikacja z Pc, poprzez hyperterminal. Czy mogłby ktoś sprawdzic czy ten program rzeczywiście wogole jakies dane wysyła.
Witam. Potrzebuję zrobić komunikację pomiędzy dwoma attiny2313 za pomocą USART. Jeden (slave) ma wyświetlać na lcd dane otrzymane od drugiego. Założenia: Master - ma to być czterokrotny licznik (+/- do 2 bajtów) + czuwanie dla kolejnych impulsów + nadawca slave - konwersja na 5 BCD + wyświetlenie na lcd ramka - 8,0,2 Pracuję w assemblerze I od razu...
Witam, mam problem z poprawnością działania USART'u w ATtiny 2313, mikrokontroler jest podłączony do komputera poprzez MAX'a 232, z kondensatorami 2,2uF. Układ wysyła do komputera dane ale nie są one poprawne - po prostu krzaki. Próbowałem z różnymi konfiguracjami jednak za każdym razem to samo. ATtiny działa na zewnętrznym kwarcu 12Mhz. Podłączałem...
Witam Testuje transmisje poprzez USART asynchroniczą, narazie na kablu, lecz nie każda ramka danych dochodzi(BAUDRATE=2400). Pytam się czy procki muszą być stabilizowane kwarcem, żeby poprawnie taka transmisja szła. Drugie pytanie dotyczy Attiny2310 w rej. UCSRC nie ma bitu URSEL, w atmedze jest, jednak jak wyłącze ten bit z atmegi8 to transmisja pada...
Witam! Chcę zbudować platformę, która będzie się poruszać na gąsienicach (2 silniki DC) oraz będzie sterowana drogą radiową, najlepiej na modułach 868mhz, takich jak ten
Witam! Próbuję uruchomić UARTA w trybie asynchronicznym w asemblerze. Debbuguję program i po wykonaniu linii: out UCSRC, R16 zmienia mi się stan rejestru UBRRH z 0x00 na 0x26. Pytanie - dlaczego? Poniżej strzępki moich asemblerowskich myśli :) .INCLUDE "tn2313def.inc" ; kwarc 8MHz .equ BAUD=51 ;predkosc transmisji szeregowej 9600bps .list...
Witam Mam prosty układzik max232 + attiny2313 i działa ładnie ale jest takie dziwne zachowanie przy rozłączaniu połączenia ze strony PC, otóż uC odbiera wartość 0. Dlaczego ? Nawet wykorzystanie np. bray terminal, klikam Connect i Disconnect. Po kliknięciu Disconnect uC odbiera właśnie 0. Ustawienia USART: void USART_Init( unsigned int baud )...
Potrzebuje odebrać 11 bajtów danych od urządzenia, które wysyła je z prędkością 9600 bps. Do tego celu wykorzystam ATtiny2313 i USART pracujący w trybie asynchronicznym. Mikrokntroler ma wykorzystywać swój wewnętrzny oscylator (nie chce dołączać kwarca zewn.). Normalnie mam ustawiony podział częstotliwości przez 8 więc pracuje na 1MHz. Pojawia się problem...
Opiszę tutaj moje próby zaprogramowania w linuksie Mikrokontrolera ATtiny2313 z wykorzystaniem kompilatora języka C avr-gcc, programatora avrdude oraz Sample Electronics programmer. Schematów nie dorzucam ponieważ nie bardzo jest sens cały programator to tylko 3 oporniki podłączone do portu LPT do znalezienia w google w każdej chwili, reszta mojego...
Mam przejsciówke USB-COM, wysyłam przez Putty znaki do ATtiny2313 i zamiast tego co wyslalem, otrzymuje krzaki. Poszczegolne wyslane litery zwracaja te same krzaki czyli cos jednak AVR dostaje. Podlaczylem przez przejsciówke USB-COM dwa laptopy, jeden ma wbudowany COM, wszystko dziala pięknie w terminalu zero przekłamań. Dodatkowo podłączyłem pod laptopa...
.include "tn2313def.inc" ldi r16,Low(RAMEND<<1) ;ustawienie stosu out SPL,r16 ; ... rcall USART_init start: rcall USART_receive rcall USART_transmit rjmp start USART_init: ldi r17,0 ldi r16,$47 ;UBRR = 71dtransmisja 9600 przy 11,059MHz out UBRRH,r17 out UBRRL,r16 ldi r16,(1<<RXEN) | (1<<TXEN);enable...
Witam! Gdy komunikuje się z procesorem za pomocą hyperterminala, programem napisanym poniżej: #define F_CPU 8000000L #include <stdint.h> #include <util/delay.h> #include <avr/io.h> void USART_Init() { /* Set baud rate */ UBRRH = 0x00; UBRRL = 51; //wyłączenie trybu podwójnej prędkości... UCSRA = (0<<U2X);...
Moim problemem jest brak stabilności kodu dla tego mikrokontrolera. Kod skompilowałem w AVR Studio 4 z WinAVR w aktualnej wersji (2010). Kłopoty objawiają się poprzez skok do początku programu. Nie jest to reset - np. zakłócenia na linii RESET. Analizowałem rejestr statusu MCUSR. Początkowo przyjmuje on wartość 0x01, co znaczyłoby reset od POR. Jest...
Dzisiaj miałem okazje popracować na oscyloskopie z analizatorem stanów logicznych. Po paru przeróbkach kodu udało mi się ustawić wszystkie wejścia (CS, DI, SCLK) tak jak jest w dokumentacji żyroskopu. Jedyną niepokojącą sprawą jest mały odstęp czasowy (około dwa bity) między przesyłem pierwszego i drugiego bajtu na wyjściach SCLK i DI. Nie wiem czy...
Witam, Chciałbym nasłuchiwać co się dziej na magistrali I2C, bez ingerencji w przesyłane dane. Informacje które zostaną odebrane z magistrali I2C przesłane zostaną po USART-cie do hyperterminal-a . Do budowy tego urządzenia wykorzystałem mikrokontroler ATtiny2313, rezonator kwarcowy 20Mhz oraz transoptor LTV-817C (do izolacji między magistralą I2C,...
Tak myślałem. Do tej pory próbowałem sam napisać obsługę opartą na przerwaniach od UATR'u i liczniku, ale dojechałem do chyba martwego punktu - odpytywanie pojedyńczego modułu działa bez problemu, natomiast problem jest z kilkoma modułami, tzn. jak odpytuję kilka modułów odpowiada tylko jeden... Algorytm po krótce wyglądał tak, może ktoś zobaczy błąd...
Mam problem z komunikacją Attiny 2313 -> Rs232 -> PC. Gdy wysyłam znak poprzez uC to odbieram całkowicie co innego (FV a wysyłałem Adas), a dodatkowo jak zmieniłem uC to otrzymałem LH. Kod jest z noty katalogowej tego uC: #include <avr/io.h> #include <avr/interrupt.h> #define RS_BAUD 9600 #define RS_UBRR F_CPU / 16 / RS_BAUD - 1 void...
Ja właśnie wyczaiłem fajną róznicę na korzyść ATtiny2313A. Mianowicie do USI dodano dodatkowy bufor odbiorczy, czyli np. przy realizacji SPI nadaje się "po staremu" wpisując do USIDR, natomiast odbierać mozna "po staremu" czytając z USIDR bezpośrenio po odebraniu danych, bądź wygodniej - czytając z bufora USIBR - nawet w trakcie transmisji. Co ciekawe...
aktualizacja nie pomoże. Kompilatr w sumie wszystko napisał. zrób tak: UCSRC = (3<<UCSZ0); i powinno działać. Przecież ja napisałem dokładnie to samo, tylko u mnie widać które bity są ustawione. carkar spróbuj tego: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #define F_CPU 12000000UL...
Widzę, że ramkę masz ustawioną na 9 bitów. Tak powinno być? Jeśli wysyłany znak ma mieć 8 bitów zmień UCSRB na 0x18. 9 bitami nigdy nie operowałem. Odbiór dla 8 bitów (datasheet, str. 147): unsigned char USART_Receive( void ) { /* Wait for data to be received */ while ( !(UCSRA & (1<<RXC)) ) ; /* Get and...
Witam, Mój cel to: Odbieranie danych poprzez usart, Sposób testowania aplikacji to: debugger w atmel studio 6 poprzez wyklikiwanie wartości bitów w IO View Problem, z którym walczę: Dwukrotne wywołanie ISR(USART_RX_vect) Ok, teraz opiszę problem nieco dokładniej. Zacznę od kodu (okrojonego): [syntax=c] #include "GlobalConstants.h" #include <avr/io.h>...
Witam, Poniżej zamieściłem schemat układu, operatego o ATTiny2313. Cel to sterowanie oświetleniem - taśma LED RGB, przy pomocy wyjść PWM z uC. A dokładniej: Kończę powoli programik, który otrzymuje poprzez USART listę znaczników na osi czasu (np. godzinnej, 5 minutowej, etc). Każdy znacznik ma przyporządkowany kolor. Programik na bieżąco wylicza kolor...
Mnie zastanawia czemu potencjometr został podpięty do USARTa. Attiny2313 nie ma ADC jedynie komparator. Czyżby znowu projekt w stylu mam X procesor i muszę coś na nim zrobić?
Porada maciej_333 zadziałała, odbiera i wysyła. Skoro już to mam, zajmę się przerwaniami. Temat do zamknięcia i dziękuję za szybką odpowiedź :) Wychodzi na to, że lepiej czytać dokumentację. Właśnie na jej podstawie to napisałem. Wysyłanie i odbiór z kolei skopiowałem z pewnego mojego programu dla ATTINY2313. Wystarczyło zmienić nazwy rejestrów. Dlaczego...
a jak chiałem przegrać na Attiny 3213A to wykrzaczył mi się problem z kompilacją Nie ma w rodzinie AVR Attiny3213. Symbol, oznaczałby, że Tiny to 32kB FLASH. W ARM 32kB moze być tiny ale w AVR to już mega. Rodina tiny w AVR ma bardzo uproszczone peryferia, niektórych nie ma wcale. SPI czy I2C na Mega to co innego niż na tiny. Podobnie z timerami, usart.
" USART_Receive();" już wywaliłem zostało: data = USART_Receive();
Dziwne pytanie gdyż "wchodzą" inne polecenia typu read fuse, read sygnature bytes, chip erase itd. Ale proszę, oto kod: [syntax=c] void wait(int volatile i){ while(i){i--;}; }; void enter_prog_mode(void){ char znak; PORTB &=~(1<<SPCK); // daje zero na spck wait(40); CS_L; // daje pin reset na zero wait(0x7FF); // 20 ms? spi_send(0xAC);// 0xAC...
Witam, Buduję układ do badania luminoforów, Zasada działania polega na oświetlaniu luminoforu przez określony czas, a następnie pomiarze czasu luminescencji. Światło emitowane przez luminofor wykrywane jest przez fotodiodę. Zbudowałem prosty układ na attiny2313. Napisałem prosty kod. VTB8441BH Poprawiono tytuł na bardziej streszczający problem i wprowadzono...
zmieniłem na 25ms i Ma byc zero. Z takim podejściem jak kolega (wait) to nawet procesor 10e6GHz będzie "zabity" i coś mu może umknąć (znaki z USART, USB, itp). Wszelkie wypowiedzi NIE ZWIĄZANE z tematem, będę kasował do skutku. Autor wybrał sobie Bascom, więc niechaj sobie w tym języku pisze.
Fakt ilość informacji które podałem jest znikoma :P, urządzenie które usiłuje zbudować ma za zadanie kontrolowanie świetlików LED, na podstawie informacji uzyskanych poprzez RS - 485 z głównego sterownika, sterownik świetlików generuje odpowiednią sekwencję (sygnał PWM o zadanym wypełnieniu i pulsacji). Problem w tym iż nie do końca mam pomysł jak wygenerować...
W czym lepszy ATtiny2313 od AT90S2313 ? Po kolei : 4xPWM, +10MHz Clock(max. 20MHz), Boot block, dodatkowe rozkazy ( spm , lpm do dowolnego rejestru, również z postinkrementacją), USI, USART (tryb synchroniczny), debugWIRE, wewnętrzny RC, na upartego 18 linii I/O, BOD, ulepszony Power On Reset... Pewnie coś jeszcze pominąłem... ;) -- Pozdrawiam, Daniel
Podstawowe na jaką odległość chcesz przeprowadzic tą komunikację i jakie są wymagania co do prędkości transmisji? Najprościej za pomocą UARTA, łączysz nózkę łączysz nózki 2 i 3 obu mikrokontrolerów krosując i hardware załatwiony. Software to kilka linijek kodu. Dodano po 1 Właściwie w Attiny2313 to już jest USART :)
Udało mi się zoptymalizować program do 107b RAM, wygląda na to, że zaczął działać. Wysyłam dane uartem takim tworem: void USART_Tx(unsigned char data) { while ( !( UCSRA & (1<<UDRE)) );/* Wait for empty transmit buffer */ UDR = data;/* Put dafta into buffer, sends the data */ } unsigned char USART_Rx()...
Witam, W chwili obecnej pracuje nad termometrem, sterowanym na pilota. Pilot wysyła dane w kodzie RC5. Wysłane dane trafiają na odbiornik podczerwieni TSOP31236 (36kHz). W momencie gdy dane nie docierają na wyjściu odbiornika jest stan wysoki, gdy odbierze jakiś sygnał na wyjściu jest poziom niski. Wyjście odbiornika podczerwieni jest podpięte do wyjścia...
Witam! Ostatnio próbuje wysłać jakąkolwiek informacje przez RS232 na mikrokontroler Attiny2313 i niestety nie ma żadnych efektów. Generalnie chodzi mi żeby po wciśnięciu liczby jednocyfrowej na klawiaturze została ona pokazana na wyświetlaczu siedmiosegmentowym. Program kompiluje w WinAvr a do wysyłania informacji korzystam z Hyper Terminala. Cały układ...
Witam, Szukam sposobu aby skonfigurować i uaktywnic w BASCOM-AVR jedną linię sprzętowego UARTa(USARTa). Standardowe procedury Bascoma włączają obie linie RXD i TXD, chcę tylko wysyłać dane do mikrokontrolera, więc wystarczy mi tylko RXD, a w zasadzie to jestem do tego zmuszony, bo pozostałe 16 końcówek jest już zajętych (układ jest w SMD, więc PA2/RESET...
Proszę o pomoc z uruchomieniem układu: Rezystory dałem 1k, kwarc 11.0592MHz (nie ma go na schemacie), do scalaków dodałem kondensatory filtrujące 100nF. Testuje to kodem: // pominięty został kod obsługi USART #define DS_PORT PORTD #define DS_PIN 4 #define PL_PORT PORTD #define PL_PIN 3 #define CL_PORT PORTD #define CL_PIN 5 #define DS_low()...
Pomieszałeś dwa sposoby obsługi transmisji - nie można stosować dwóch w tym samym czasie. Proponuję tu obsługę na przerwaniach i do niej się odniosę. 1. Nie widzę wywołania inicjalizacji nadawania USART w main(). Powinno to polegać na włączeniu na stałe TXCIE. UDRIE natomiast włączasz na starcie transmisji i na jej końcu wyłączasz. 2. W przerwaniu od...
Najprostszym rozwiązaniem było kupienie FT232, ale w wyniku porównania jego ceny z ceną ATmega8 nie było ono zbyt ekonomiczne. Dlatego autor postanowił zaprojektować konwerter na mikrokontrolerze. A jak jest już mikrokontroler, to sam USART wydaje się minimalistycznym rozwiązaniem. Stąd pomysł na bardziej rozbudowane i uniwersalne urządzenie z kilkoma...
Witam, zamierzam zrobić projekt, którego ze względu na szacunek na wasz czas nie będę opisywał w całości. Do rzeczy: potrzebuję do Atmegi 16/32 (master) podłączyć kilka attiny2313 lub atmeg8 (slave) i pobrać 1 integera od urządzeń do niej podłączonych. Nie mam doświadczenia w komunikowaniu uC ze sobą i pytam się was jakiego interfejsu można użyć USART...
Najtrudniej analizuje się własny kod, bo zawsze patrzy się przez pryzmat wiedzy o tym co on powinien robić i nie dostrzega się drobnych błędów :) Zgadzam się z tym w 100%. Przy Bascomie rzadko sięgałem do PDF'ów kontrolerów, przy C nie da się bez tego wszystkiego zrobić. Bez tych 500 "przekręceń" licznika nawet w Bascom by nie poszło, jak zwykle zbyt...
Przepisywany był z przykładu, gdzie był użyty USART1 (PA9). USART2 jest na PA2, niestety komentarz zostawiłem Dodano po 2 OK, znalazłem błąd: zamiast RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB1Periph_USART2, ENABLE); powinno być RCC_APB 1 PeriphClockCmd( RCC_APB1Periph_USART2, ENABLE);
willyvmm wrote: Doczytałem się że fabrycznie ustawiony on ma fusy CKSEL na wewnętrzny oscylator 4MHz. Czy dokładność tego oscylatora jest dostateczna do odbioru transmisji po rs232 ?? Rozwiążmy problem teoretycznie. Wchodzimy na stronę producenta, ściągamy datasheet mikrokontrolera i czytamy na stronie 24: At 3V and 25°C, this calibration gives a frequency...
Witam, Zastanawiam się, jak zrealizować komunikację o takim schemacie: PC (RS232) <-> Atmega16 <-> 3x Attiny2313 USART? Ale czy nie będzie problemu z obsługą 3 urządzeń przez Megę? Zależy mi na małych opóźnieniach w komunikacji Mega <-> 3xtiny, a nigdy nie programowałem czegoś takiego. Pozdrawiam.
Jeżeli ktoś by chciał obsługę USART do attiny 2313 bądź atmega32 w *.C, to mam przerobiony pod siebie kod. W C czasami brak poprawnego działania RS'a może być spowodowany tym że wpisze się wektor przerwania od uart'u a nie od uasart'u, rózni sie w nazwie dokładnie tymi wyrazami.
port D (czyli jak ty nazywasz piny PD) pełni podobną rolę jak port B. A to czy poszczególne piny portu są wyjściem czy wejściem zależy tylko od ich zaprogramowania odpowiedniego - to taka ogólna uwaga. Natomiast rzeczywiście jest jakiś mega babol ;) co potwierdza tylko moją teorię pisaną w postach wyżej , że tak jest z tymi wspaniałymi rozwiązaniami...
wklej kawałek kodu lub cały głównie interesuje mnie inicjalizacja USART i procedura wysłania. PS: w bascom zawsze dziwnie rzeczy wychodzą wiec może pomyśl nad przejściem nad avr-gcc
połączenie kwarcu 4MHz z protokołem RS232 to naprawdę wielce "błędoróbna" kombinacja nawet przy 19.2kb/s Z tego co widzę, mniejszy błąd osiąga się przy 250kb/s ale nie jestem pewien czy Bascom się wyrobi. Może wymień go na 8 czy 16MHz i poczytaj datasheet zakładka USART-->Examples of baud rate settings Pozdrawiam
Witam :!: Mam pytanie czy dobrze zrozumiałem że do transmisji danych do układu STA015 używam protokołu FIFO czyli wysyłam dane przez USART(UART) :?: Jeżeli tak to nie doczytałem niczego na temat wielkości ramki danych i bitach parzystości jak i stopu :cry: :arrow: Czy jest ktoś w stanie mi pomóc :?: :idea:
"SIG_UART_DATA" - co to jest? nie znam tego. W nagłówku avr/io.h (iotn2313.h) jest: USART_UDRE_vect(=SIG_USART0_DATA=SIG_USA... Jeśli nie to jest problemem, to widocznie funkcja obsługuje inne przerwanie niż zamierzone, podczas gdy właściwa (jej brak) powoduje reset. Wklej komunikaty kompilatora.
Jak odwróciłem polaryzacje ? USBS służy chyba do ustawiania czy ma być 1 bit spotu czy 2. Po za tym czy przypadkiem nie dawanie go w ogóle w formule a wpisanie przez ~_BV to nie to samo ? Popoprawiałem resztę i w tej chwili to wygląda tak: ... unsigned int znak=2; int *wektor = &znak; unsigned int i; void Init_RS232(void){ UBRRH = (unsigned...
To mój pierwszy post także witam wszystkich. Od niedawna zacząłem się trochę interesować mikrokontrolerami oraz elektroniką. Ostatnio zmontowałem mały układzik RS-232 <-> MAX232 <-> ATtiny2313 + dioda podłączona do portu D (pin 5). Połączyłem się z układem poprzez HiperTerminal a następnie próbowałem przesłać pojedyncze znaki. Po naciśnięciu...
Mam do odebrania co ok. 2 sekundy do 20 bajtów danych. Długość ramki jest różna, określona w drugim bajcie wysyłanej ramki. Po odebraniu ramki trzeba wyliczyć sumę kontrolną, a następnie odczytać z niej pewne dane, na podstawie których uP ma podejmować dalsze działania. Jak narazie zrobiłem odbiór jednego bajtu tak, że uP wykonuje jakieś zadanie w programie...
Witam. Tak wygląda init usart: UBRRH=0; //Bity w UBRRH sa zarezerwowane i nalezy je zerowac. UBRRL=155; //ustalamy predkosc transmisji uart na 9600 UCSRC=0b10000110; //tryb asynchroniczny, bit parzystosci //(disabled), 1 bit stopu, slowo 8bit UCSRB=0b10011000; //wlaczenie obslugi przerwan od RX, //wlaczenie odbiornika i nadajnika UCSRA=0b00000010;...
Podłącz AVR do PCta, uruchom jakiś terminal i zobacz czy coś w ogóle leci przez RS232. Masz MAX232 więc wszytko powinno się odbyć bez żadnych dodatkowych adaptacji. Parametry połączenia znasz. Rozumiem, że nie masz na czym wyświetlać tego co przychodzi na USART ? Jaki jest kwarc, czy jest zew czy wew i jaka jest szybkośc transmisji ?
Odpowiedź jest wyżej: 5ms/div Zrobiłem zgodnie z propozycją: zakomentowałem linie dotyczące USART. Wynik: USART zakomentowany, linia z przesuwaniem value "aktywna". Niektóre jedynki są pomijane. Nadal obstaję przy swoim, że modyfikowanie value w przerwaniu trwa zbyt długo, a USART nie ma tu wiele do rzeczy. Obiło mi się o uszy, że zmiana wartości zmiennych...
Trochę czasu minęło, no ale... Trochę inaczej to rozwiązałem, jeden układ bada impulsy i wysyła do drugiego który między innymi wyświetla te dane. [syntax=c]uint8_t i; uint16_t obr; uint8_t spal, pred; ISR(USART_RX_vect) { while ( !(UCSRA & (1<<RXC)) ); switch(UDR) { ... case 249: // OBR UDR = obr/100; // 2 pierwsze cyfry while ( !( UCSRA...
Witajcie, Mam problem z komunikacją przez RS232, korzystam z przejściówki USB-RS232: , kit do samodzielnego montażu z AVT. Zainstalowałem najnowsze sterowniki i wgrałem najnowszy firmware do ATtiny2313 na przejściówce, jednak problem jest cały czas ten sam, nie jestem w stanie uzyskać prawidłowego echa, mikrokontroler zwraca inną wartość niż wysłana....
Już pisałem do portu dochodzą dane, już to sprawdziłem... Elementów w obudowach SMD nie sprzedają ze spalonymi wyprowadzeniami, ale istnieje ryzyko spalenia wyprowadzenia podczas lutowania, z czym już się spotkałem. Port sprawdziłem, dane są wystawiane i odbierane prawidłowo (zapalanie diod i reakcja na klawisze) . Ma ktoś jakiś pomysł co może być nie...
Witam, miałem oto taki kod jak poniżej, działał normalnie czyli po resecie wysyłał liczbę 23 w kodzie ASCII. [syntax=c]#include <avr\io.h> #include <inttypes.h> #include <util\delay.h> #include "uart.h" const uint8_t tabela_losowa[16] = {66, 11, 89, 100, 45, 2, 67, 24, 65, 10, 33, 6, 91, 21, 15, 72}; int main(void) { uart_init(); uart_wyslij_int(23,...
uC był prawdopodobnie uszkodzony, niezależnie od ustawień cały czas pracował 8bitów danych, 2 stopu i parity even. Zastąpiłem go attiny2313 i wszystko już dobrze działa. Zamykam temat. Dzięki za pomoc!
Kolega Mirley z tego co pamiętam zrobił coś takiego na Attiny2313 i miało całkiem niezłą funkcjonalność. Sam też posiadam wyświetlacze z kas fiskalnych zrobione na 89c2051 (może ktoś wie jak na ledowym wyświetlaczu zapalić kropkę ?)
Witam, Mam problem ze zmiennymi globalnymi. Do momentu gdy kod wygląda jak poniżej, program działa poprawnie. Program w założeniu ma obsługiwać transmisje danych przez USART, natomiast wersja poniżej została skrócona do minimum w celu znalezienia przyczyn powstania błędu. Problem objawia się następująco: Jak tylko od komentuje "//volatile char flaga;"...
Witam po przerwie, problem rozwiązany połowicznie - wiem co zrobić żeby się go pozbyć, ale przyczyna nie jest do końca znana i bez oscyloskopu trudno mi to stwierdzić na 100%, ale... od początku... Ponieważ zredukowany, praktycznie do zera kod, dawał te same rezultaty to prosty wniosek - z kodem było wszystko OK. Zarówno testowym jak i docelowym (bo...
Prędkość nie musi być bardzo duża. chodzi mi o zrobienie takiej komunikacji jak pilot z telewizorem, projekt będzie oświetleniem sufitu, a pilotem będe sterował diodami. Dokładnie taki przykład znajdziesz w mojej nowej książce :) Jak pisałem, dioda nadawcza IR, na ktorą podajesz zmodulowany sygnał, standard obojętny, może być to wprost sygnał z USART,...
Przerwania nie mają tutaj nic do rzeczy. Funkcja którą Ci wskazałem pokazuje jak należy inicjować USART wykorzystując nagłówek setbaud.h, który pozwala policzyć i skonfigurować USART poprawnie (w sposób wskazany w linku), na podstawie BAUD i F_CPU. Po co więc ryzykować własne niekoniecznie prawidłowe makra? Jak masz podłączoną diodę?
Prosty i niezawodny sposób - wykorzystaj plik nagłówkowy setbaud.h . Zobacz funkcję usart_inicjuj() tutaj: W ten sposób masz pewność, że zawsze i dla każdego AVR transmisja zostanie ustawiona prawidłowo. Inne standardowe nagłówki:
Ma tak być. Tylko to niepokojące z innego powodu. W układach typu UART/USART tylko jeden pin, TX, jest "wyjściowym" czyli takim który ma "siłę". To on ustala stan wysoki na drugim końcu czyli na pinie RX układu który od niego odbiera. Kiedy wiec połączysz obydwa układy na krzyż to na obydwu liniach będzie 3,3V bo na drugim RX stan wysoki ustali TX pierwszego....
Witam Tworzę urządzenie które będzie komunikowało się z komputerem poprzez FT232. Problem polega na tym że uC nie komunikuje się z PC. Napisałem na początek taki prosty program żeby sprawdzić czy komunikacja działa: Od rana tworze różne kombinacje alpejskie żeby ruszyć tą transmisje ale nie udało mi się na razie osiągnąć tego celu więc liczę na waszą...
Witam kolegów Potrzebuje stworzyć układ który skonwertuje dane odebrane przez SPI na RS485. Prędkość nie jest tu istotna max kilkanaście razy na sekundę. Sprawa wydaje się prosta, ale chce użyć jakiegoś małego uC żeby nie zajmował dużo miejsca. Preferowana obudowa to DIP ze względu na możliwość łatwej wymiany. Patrząc na uC AVR to najlepszy wydaje mi...
Witam. Niedawno otrzymałem takie oto zadanie projektowe: Zbudować układ wyświetlający na ekranie lcd pole poprawnie i niepoprawnie odczytanych miejsc szczególnych z tablicy umieszczonej przed kamerą. Realizacja połączenia komputer->układ przez rs232 i baudrate 19200. Dodatkowo taki układ miał być zrealizowany na attiny2313 i sterowniku hd44780. Wydumałem...
Niniejszy projekt to nic odkrywczego, ale może się komuś przyda. Czasem potrzebujemy wygenerować sygnał PWM dla większej ilości kanałów a akurat nie mamy pod ręką dedykowanego układu - tak było w moim przypadku gdy robiłem mały projekt z oświetleniem i wentylatorami przy "modowaniu PC" - tak to się pisze? To nie mój PC :-) (Ja osobiście jestem przeciwnikiem...
Witam ! Piszę program regulatora temperatury. Używam czujnika ds18b20, którego obsługuje Attiny2313. Komunikacja z komputerem poprzez USART. Postanowiłem, że prześle 2B danych z czujnika ds18b20 i konwersje dokonam na komputerze, w terminalu otrzymuje śmieszne krzaczki, ale nie przejąłem się tym, napisałem w Delphi używając bibliotek CPort program do...
Dodam moj przepis na ładną tablicę wektorów (przykład dotyczy ATtiny2313) : .cseg ;—————R...
Witam, Mam układ komunikujący się po UART pomiędzy Atmega328 (master) a Attiny2313(slave) . Transmisja działa prawidłowo jednak mam pewien problem. Jest ona zamieniana na RS485 poprzez MAX485. Układ AVR Master steruje pracą tych układów aby przełączać kierunek ich pracy. Tutaj właśnie chciałem dopracować program. Po zakończonej transmisji czekam w programie...
Może tak kolega ryborz byłby skłonny podać inny typ procesora oferujący 20 pinów, dostępny za 5 zł, który można dostać w sklepie za rogiem? ATTINY2313-20PU - 3.90 ATTINY26-16PU - 4.80 Można całe życie programować w bascomie, tylko jak się będzie chciało zrealizować większy projekt to się okaże, że nie stworzono jeszcze procka o tak dużej pamięci programu...
Poniższy projekt został przetłumaczony na prośbę jednego z użytkowników elektroda.pl;) Pomysł na zrobienie tego urządzenia pojawił się po tym jak korzystałem z fabrycznego testera ADSL. Na jednym z forów, na których szukałem inspiracji, jeden z użytkowników zaprojektował urządzenie, które za pomocą podłączenia przez terminal pozwala uzyskać informacje...
Mam maly problem. Posiadam programator zgodny z Stk500v2 na USB. Do tej pory programowalem nim Atmege8 oraz ATtiny2313 poprzez ISP za pomoca AVRdude 5.5 i wszystko dzialalo bez problemu. Ostatnio wpadl mi w lapy klon Arduino Mini, ktory podobno ma wgrany bootloader Arduino i.. niestety klapa. Brak jakiegokolwiek kontaktu programatora z ukladem. Nie...
Witam, mam problem z USART'em w Atmega 32 i tak samo w ATTiny2313. Działa mi linia RX, tzn. dane z HyperTerminal'a z PC docierają do uC, ale uC nie odpowiada z powrotem. Mam napisany prosty programik na uC, który jak odbiera znak z PC, to wyśietla "coś tam" na LCD i wysyła "jakiś znak" z powrotem do PC. No i własnie odbiera, wyswietla, wysyła ale w...
AT90S2313 to starszy brat ATtiny2313. Ten drugi ma większe możliwości, co ważne ma już wbudowany wewn. oscylator dzięki czemu nie zawsze trzeba stosować rezonator kwarcowy (nawet przy transmisji RS232). Oczywiście, że można go programować za pomocą PonyProg'a - tylko zassij sobie najnowszą wersję 2.06f beta. Co do pisania programów to tak samo jak na...
Witam. Mam problem. Chciałbym dopasować wsad do programatora AVR910 (przeznaczony dla ATtiny2313/AT90S2313) tak, aby zamiast wymienionych procesorów można było użyć ATmega8L. Obecnie posiadam taki programator na AT90S2313 i jestem z niego bardzo zadowolony, chciałbym jednak zrobić sobie wersję niskonapięciową (mam MAX3232 i ATmega8L). Oczywiście najprostszym...
Przede wszystkim nie wiecz czy wykrywasz początek bitu startu, jego środek, czy może prawie koniec. Gdybyć wykrywł zbocze z wykorzystaniem przerwania, to dopiero wtedy mozna mówić o synchronizacji. Przecież on b. szybko wykonuje kod, a jedyne co sprawdza to czy zbocze opadło. Nie ma możliwości, żeby udało mu się podczas np. skoku do początku pętli...
Chciałbym zaprezentować mój najnowszy projekt. Jest nim 4-strefowy ambilight. Sterownik zawiera konwerter FT232, uP attiny2313 oraz drivery OC. Program do uP napisałem w C (winavr), natomiast program na PC - w C# (MVS). Program uP to (4x3) 12 - kanałowy SW PWM sterowany z USART. Rozdzielczość PWM to 6 bitów. Częstotliwość PWM to 1KHz. uP pracuje z...
"Funkcje pilota" to po prostu kod, który pilot nadaje po naciśnięciu przycisku. Z opisu wynika, że możesz zastosować mikrokontroler jako zwykły sterownik diody IR, czyli z komputera wysyłany jest goły kod, a mikrokontroler koduje to w RC5 i wysyła przez diodę. Jeżeli układ ma działać samodzielnie, to wystarczy zdefiniować w programie kilka takich kodów...
Układ jest fizyczną realizacją projektu
Moje przemyślenia po przeczytaniu tego tematu, to: - układy na i2c nie będą w pełni wykorzystane, wymagają podania adresów oraz sama szyna ogranicza prędkość przeładowywania. Stosunek ceny do liczby pinów jest dość wysoki. - CPLD może i dobre, tylko jak będzie z konsumpcją prądu. Stosunek ceny do liczby pinów również wysoki oraz komplikuje się dystrybucja...
mirekk36 . Na razie nie wiemy jakie kolega ma długieee te transmisje danych. RAM nie jest z gumy, a powinno jeszcze starczyć na całą masę zmiennych i trzy stosy, a zwłaszcza na HWStack, który by tu mocno puchnął. Jeśli to jest ATtiny2313 to pewnie, że nie ma o czym w ogóle mówić ale jeśli już coś co ma na pokładzie z 16kB Flash'a (nawet 8kB) i 1k RAM...
attin według producenta nie powinien pracować z oscylatorem większym niż 8MHz ale co wszyscy potwierdzą , wpraktyce jest inaczej .Pozdrawiam Nie wiem skąd masz te informacje skoro producent deklaruje prawidłową pracę procesora ATTINY2313 do częstotliwości 20 Mhz oraz pełną zgodność programową z AT90S2313 a różnica polega na zastąpieniu UARTa USARTem,...
Witam Walczę z tym tematem już dość długo i nie mogę sobie sam poradzić, może wy pomożecie... Chcę z komputera za pomocą terminala sterować Attiny2313 za pomocą rs485. Wszystko dział ok po rs232 po 485 już nie. Po niżej pokażę schemat i program. Na schemacie jest podpisany układ MAX3468 ale w rzeczywistości jest tam MAX485 podłączony tak jak na schemacie....
Z tym generatorem 36kHz to proponuje zrobic generator 36kHz na układzie CMOS 4047 sterujący diodami nadawczymi IR, a przebieg modulujący podawac na wejscie zezwalający na generację - zrobić kluczowanie tego przebiegu. Czyli tak (wersja jedna z możliwych wielu) - PC nadajnik MAX232>>TX na kluczowanie generatorka np na 4047>>do wzmacniacza nadajnika...
:arrow: treton Możesz spokojnie wrzucić ATtiny2313, jest on kompatybilny "z zewnątrz", czyli ma jednakowo rozmieszczone wyprowadzenia. Jeśli chodzi o oprogramowanie, to różni się nieco, między innymi: - nazwami rejestrów - adresami wektorów przerwań - portem szeregowym (USART w miejsce UARTA), - sterowanie generatorem PWM - inne FUE-BIT-y szczegóły...
jedna z różnic attiny2313 i at 90s2313 to to że pierwszy ma usart a poprzednik uart może to powodować kłopoty w działaniu programów wykorzystującuch uarta ale czasem wszystko może działac poprawnie ...
Wystarczy ATTiny2313, też ma sprzętowy USART, w BASCOMie to kilka linijek kodu.
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...
Witam wszystkich, oto mój programik który ma służyć do komunikacji między układem ATtiny2313 a komputerem - poprzez złącze RS232.Problem polega na tym że program nie chce wejść do obsługi przerwania , po wpisaniu znaku do rejestru UDR i wysyłana jest w kółko jedna literka "d". Prosiłbym o pomoc i podpowiedź co jest tutaj nie tak #define cbi(sfr,...
Witam. Nie widzę powodu aby nie zastosować sprzętowego USART'a w trybie asynchronicznym zamiast I2C, który ani nie pracuje przy dużych prędkościach ani nie obsługuje dużych dystansów. Mnie osobiście udało się skomunikować dwie ATmegi (jedną 32 a jedną 8) na odległości 100m zwykłym kablem telefonicznym przy transferze 500kbod (fOSC=8Mhz oraz UBRR=0)...