W AS też można - a nawet powinno się - to definiować w opcjach projektu. To i parę innych rzeczy mi się podoba, ale ten kiepski edytor powodujw, że wolę programować w AS. Jeśli wiesz jak się to robi w AS 5.1 to podziel się wiedzą. Z góry dziękuję. tutaj jest jak zrobić przycisk do wywołania komendy avrdude A tak przy okazji. Wie ktoś jaką funkcją można...
Nie ma problemu - da się tak komunikować... Obliczony błąd na moim egzemplarzu przy tej prędkości i ustawionym zegarze na 4MHz wyniósł raptem 2%... Czyli w granicach tolerancji, którą przyjąłem (i przy której da się jeszcze połączyć) na 3,5%... Warto przetestować, ponieważ różne egzemplarze mogą zachowywać się inaczej. No i zależy to też od warunków...
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
Co najmniej 3 błędy popełniłeś. Pierwwszy to włączasz przerwanie Uart Data Register Empty, a nie wstawisz chociaz reti pod wektor obslugi tego przerwania. Tu na pewno program się wykracza i nie wiadomo co procesor zrobi, najprawdopodobniej RESET. Drugi to włączenie sterowania sprzętowego. Co prawda w przypadku odbierania to nie ma znaczenia, ale w przypadku...
Przewód masy "sygnałowej" (w Twoim przypadku jest to UART) powinno łączyć się z jednej strony wiązki, własnie po to, by nie tworzyć pętli z przewodem masy zasilającej. Być możę, że odłączając jeden przewód masy usunąłeś taką pętlę. Testuj, może właśnie sam znalazłeś powód błędów transmisji.
może być 5...10k
ATmega8 nie działa na 3,3V: http://mikrokontrolery.blogspot.com/2011... Jakim więc cudem działa Ci transmisja?
UCSRC i UBRRH to jeden rejestr. Jeśli zapisujesz do niego wartość z zerem na bicie 7 - to zapisujesz UBRRH; jeśli z jedynką - zapisujesz UCSRC. Przykład z katalogu właśnie to ilustruje. Zapisujesz wartość z zerem na b7 - i zapis idzie do UBRRH, następnie zapisujesz wartość zawierającą 1 << URSEL - i zapis idzie do UCSRC. Zwróć uwagę, że obie nazwy...
Tu nie chodzi o USART w PC tylko Komunikacja następuje przez przejściówkę USB <>UART opartą o FT232R napisane na początku. A odpwiedź jest w datasheet strona 16: Baud Rate Generator - The Baud Rate Generator provides a 16x clock input to the UART Controller from the 48MHz reference clock. It consists of a 14 bit pre-scaler and 3 register bits...
Witam. Mam nadzieję, że zastosowałeś chociażby konwerter Max232?
1. Co to jest: UCSRB|=(1<<UCSZ1)|(1<<UCSZ0)... 2. Najpierw wpisz parametry transmisji w innych rejestrach, potem dopiero włącz transmisję w UCSRB.
Enable Urxc On Urxc Odbior_rs_232 Enable Interrupts Dim Odebrane As String * 16 Dim Time_out As Integer Dim Ax As Byte Do Wait 1 Cls Lcd Odebrane Loop Odbior_rs_232: Odebrane = "" Time_out = 0 Do Ax = Inkey() Incr Time_out If Time_out >= 30000 Then Exit Do If Ax > 0 Then Odebrane = Odebrane + Chr(ax) End If Loop Until Ax = 13 Return Ja używam tego od...
Pewnie brakuje Ci "nośnej" W świetle słonecznym (i nie tylko) jest też podczerwień i odbiorniki podczerwieni by odbierały śmieci. Tak więc zabezpieczono odbiorniki. Reagują na sygnał 36kHz. Czyli szybko włączasz i wyłączasz diodę nadawczą z prędkością 36kHz i wtedy masz sygnał niski na wyjściu odbiornika. Odbiornik ma demodulator czyli zamienia ten...
Spróbuj tego tylko odpowiednio adresy usaw jeśli masz inne... Oczywiście zdeklaruj inne rzeczy... Wg. Twoich ustawień Config Sda = Portc.1 Config Scl = Portc.0 Dim M As Byte Dim S As Byte Dim H As Byte I2cstart I2cwbyte 162 I2cwbyte 2 I2cstart I2cwbyte 163 I2crbyte S , Ack I2crbyte M , Ack I2crbyte H , Nack I2cstop S = Makedec(s) M = Makedec(m)...
Ale jak zwierasz wyjścia maxa to masz procesor odłączony? Mam nadzieję, że tak. Jeśli w takiej sytuacji masz krzaki to albo problem z kondensatorami, albo padnięty max.
twój przypadek wygląda tak jakby procesor używał innego bauda jak mu każesz. po pierwsze sprawdz czy ATmega kożysta z zewnętrznego kwarcu (chodzi o fusebity) bo standardowo jak wyjeżdza z fabryki to chodzi wewnętrznym 1MHz. po drógie sprawdz konfigóracje uarta są w necie takie programiki do obilczania wartość rejstrów na różnych kwarcach.
Linia SS określa kierunek transmisji a nie jej początek czy koniec. Jeżeli korzystasz z SPI sprzętowego to transmisja będzie taka jaki obsługuje dany układ. Zawsze możesz napisać programowy SPI, który będzie inny nisz ten we sprzęcie.
Khmmm, po pierwsze to niech kolega docelowo zrobi obsluge odbioru na przerwaniu, ale narazie to nie ma znaczenia. Po drugie :> zalezy z jaka czestotliwoscia wysylasz znaki. Bo jesli z komputera kazesz mu wyslac od razu caly ciag, a w programie kazesz mu po kazdym odebranym znaku odczekac 200+200ms to kazdy znak ktory przyjdzie w tym czasie zostanie...
można to nazwać sprzętową kontrolą kierunku transmisji
Sprawdź czy ci timery nie zakłócają transmisji
M8 ładnie przy tej prędkości 19200 śmiga na 4 lub 8MHz generatorze wewnętrznym. Jak nie zmieniałeś Fusebitów to działać nie będzie - oryginalnie taktowana jest 1MHz i błąd transmisji jest za duży.
A czy Twoj TSOP (polaczony z RX PCta a nie do DCD) daje stala predkosc powiedzmy 9600bps, 8 bitow danych i powiedzmy jeden bit stopu? Chyba nie. Wiec raczej trudno bedzie uruchomic to tak od razu, chyba, ze BARDZO pogimnastykujesz sie piszac aplikacje na PC. Moim zdaniem w Hyper Terminalu nic nie zobaczysz. BF
Dlaczego tablica ascii ma tylko 6 pozycji? Potrzebujesz 7. Jawnie wychodzisz poza tablicę (w kodzie wystepuje ascii[6]). I taka uwaga na przyszłość. W funkcji set_values wysyłasz dane serialem. Procedura USART_Transmit czeka aktywnie na wysłanie - trwa dość długo. Wywołanie jej w procedurze obsługi przerwania z odbiornika powoduje za długie wykonanie...
A kombinowałeś ze zmniejszeniem częstotliwości transmisji?
Przymierz się np. do STM32F4xx
Po co jest ta dioda zenera? Niech mnie ktoś uświadomi. I jak dobrałeś szybkość transmisji?
No jak układy są zasilane różnym napięciem i między nimi nie masz nic do konwersji to nie spodziewaj się poprawnej transmisji.
Przy 9600 masz 7% błąd więc mogą być przekłamania. Zainicjuj uarta na 4800bps u mnie działa z wewn. kwarcem 1Mhz (USART_Init(12)). Więcej nie pomoge. Powodzenia.
Programowo porty są dobrze skonfigurowane ponieważ przy połączeniu kablowym działa wszystko tak jak powinno. Poprostu nie wiem dlaczego nie działa przez irde. Jesli chodzi o podlączenie irdy do mikroprocesora jest tak samo zrealizowane jak przy połączeniu irdy do plyty głównej komputera. Przy kompie działa bardzo dobrze. Połaczenie jest zrealizowane...
A co dalej, jakaś przejściówka na USB czy na rs? 9600 na 1 Mhz nie wyciągniesz na 1Mhz co najwyżej 4800 na 8 Mhz spróbuj 38,4 k zobaczymy co się dzieje przy szybszych transmisjach.
O to mi chodzilo. Co jeśli do pinu SDA mam podpięty sygnał analogowy (np z jakiegoś czujnika temperatury)? Wtedy już nie mogę korzystać z tego pinu do transmisji?
jaka prędkość transmisji z z którego socylatora kożysztasz (zewnętrznego czy wewnętrznego)
Jeśli jest mała odległość to tak jak sugeruje "Pierzasty" jeden niech ma kwarc a drugi niech ciągnie clocka z tego pierwszego. Jeśli zaś odległość jest większa niż jakieś 0.5 m to warto się zastanowić choć nad zwrotnym potwierdzeniem czy poprawnie przeszła transmisja.
Witam. Mam problem z komunikacją SPI na Atmega8 w trybie slave. Kod programu: #include <avr/io.h> #include <math.h> #define DDR_SPI DDRB #define DD_MISO DDB4 void SPI_SlaveInit(void) { /* Set MISO output, all others input */ DDR_SPI = (1<<DD_MISO); /* Enable SPI */ SPCR = (1<<SPE); } char SPI_SlaveReceive(void) { /* Wait for...
Przepraszam kolego GienekS , zauważyłem, że przedstawiłeś tylko fragment kodu. Nie napisałem tego jednoznacznie, ale moja odpowiedź dotyczyła kodu autora tematu (on przedstawił zdaje się cały kod i nie ma tam ustawienia prędkości transmisji).
Nie da się wysłać innej ilości bitów niż wielokrotność 8. Jeśli interesują ciebie tylko wybrane bity w ilości mniejszej niż 8 to albo zignoruj te niepotrzebne albo wytnij je operacją AND. Przynajmniej dla sprzętowej wersji transmisji w atmega8.
Podłącz analizator np saleae koszt niecałe 50pln na "alledrogo" sprawdź prędkość jaką masz fizycznie wykluczymy problemy z fusami ,oscylatorem RC . Analizator pomoże w wielu sytuacjach więc warto go kupić . Moim zdaniem oscylator rc nie robi problemu tym bardziej przy małych prędkościach transmisji .
Dawid512 możesz mi wytłumaczyć jak skorzystać z tych sterowników?? Bo tam są jakieś dwa programy i kompletnie nie wiem o co w nich chodzi... Wszystkie napięcia mam ok. A czemu dioda podłączona pod reset i VCC przez 330om mruga podczas próby transmisji?
Witam Jak zorganizować transmisję danych pomiędzy dwoma AVR-kami ? Ma być to dwustronna transmisja niewielkiej ilości danych (ok 20 bajt/sec) , po jednej stronie AVR + LED+ fototranzystor <-> AVR + LED+ fototranzystor. Z tego co zmierzyłem na oscyloskopie to maksymalna prędkość przy jakiej nie ma dużych zniekształceń na fototranzystorze to ok...
Napięcie między ich masami wynosi 0.6V. Ten układ muszę mieć gotowy na czwartek. Sklepu pozamykane. Muszę używać tylko części, które mam dostępne pod ręką. Transoptor się znajdzie, ale już fotorezystora nie mam. Same problemy z tą transmisją.
Ważne jest ustawienie takiego samego formatu transmisji w procesorze jak i w terminalu. Skorzystaj z ustawień 8N1, czyli 8 bitów danych, bez bitu parzystości, 1 bit stopu. Sprawdź w dokumentacji atmegi jakie wartości wpisać do rejestrów UCSRB UCSRC aby uzyskać dany format transmisji.
zaptaszkuj cksel3 w klodce pony prog i daj write... w klodce w tabeli u gory masz transfery pod rs a pionowo po lewej czest kwarcu na przecieciu roznice % odbiegajace od idealnego transferu jak jest 0,0% to jest idealnie ale jak bedzie do 1% to tez bedzie chodzic zwlaszcza przy wolnych transmisjach.
Czy może być to wina któregoś z kondensatorów Rozumiem, że masz translator napięć max232 albo podobny.. problemy z transmisją będą, jeśli kondensatory będą za małe - ładunku nie wystarczy na wysterowanie linii przez odpowiednio długi czas. Ja u siebie stosuje kondensatory 4u7 jako latające (z dublera oraz inwertera) oraz 10u jako kumulujące (na szynie...
Jednak wole radio, bo to nie bedzie jedno pomieszczenie... Zasieg 100- 200m wystarczy...
Tutaj znajdziesz gotowe programy chyba nawet skompilowane pliki hex dla ATmega8: http://mikrokontrolery.blogspot.com/2011... A oscyloskop masz, tylko o tym nie wiesz: http://mikrokontrolery.blogspot.com/2011...
Witam Wiem powiecie, zrób to na RX TX i przejsciówka USB-RS. Ale ja nie chce bo chcę usb (tak ambitniej :P ) I tak będziesz musiał jakoś to transmitować. Siedząc sobie na wykładzie, siedziałem i rozmyślałem. I zauważyłem pewien problem. Że muszę chyba najpierw napisać jakiś sterownik aby PC widział że coś podłączyłem i jest to mój "oscyloskop", następnie...
Brakuje kondensatora filtrującego zasilanie dla HC595, co w połączeniu ze słabym kontaktem na płytce stykowej może powodować problem. Możesz spróbować zwolnic transmisje SPI.
Cześć sprawdź tą stronkę http://www.propox.com/products/t_52.html Są tam gotowe moduły radiowe na 433MHz. Przejrzyj Elektonikę praktyczną nr'u nie pamiętam. Opisany był taki sprzęt który chesz zrobić wykorzystali do komunikacji takie moduły.
Nie kolego, wykorzystując przerwania nie stosujesz takiego kodu. Ten działa w taki sposób, że do momentu pojawienia się czegoś w buforze UARTa jest zapętlowny w while. Raczej chodziło o to, że wkładając dane do UART, kiedy nadajesz dane, musisz sprawdzać czy bufor jest czysty i dopiero dawać znak do transmisji.
Witam. Zbudowałem zegarek na atmega8 i pcf8583. Do komunikacji wykorzystałem portc.1 i portc.0 ale gdy pokazałem go nauczycielowi to odesłał mnie i kazał zrobić komunikacje na pinach przystosowanych do i2c czyli sda(pc.4) i scl (pc.5)tak abym nie wykorzystywał: Config Sda = Portc.0 Config Scl = Portc.1 Jak zainicjować taką transmisje?
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...
Po odłączeniu procesora nie widzę czarnych prostokątów. Między V0 a masą wlutowałem na sztywno rezystor 1k i w dalszym ciągu to samo - pusto. Rezystor 10k również. Uszkodzony wyświetlacz? Swoją drogą, czy mogę traktować ten sterownik jak HD44780? W specyfikacji wyświetlacza podany jest inny model sterownika i nie ma podanej możliwości podłączenia tylko...
Witam Mam pytanie dotyczące transmisji RS232 w atmedze8 do komputera. Chodzi o wielkość bufora w USART. Realizuje komunikacje z komputerem w sposób: wysyłam w petli znak, mikroprocesor w odpowiedzi wysyła ciag znaków po 10, po odebraniu w komputerze wysyłam nastepny znak i tak 10 razy obecnie. Z moich obserwacji wychodzi na to ze bufor moj musi miec...
Zapewne zauważyłeś w książce zdanie, w którym nie zalecam stosowania asynchronicznej transmisji USART jeśli MCU jest taktowany wewnętrznym generatorem RC? :) Dla testów taktuj oba MCU z tego samego źródła zegara, jeśli masz jakiś generator, albo podłącz do nich generatory kwarcowe i problemy zapewne cudownie znikną... Inna możliwość to wykorzystanie...
Witam Weź pod uwagę że przy transmisji kodu w podczerwieni masz wielokrotnie stan niski i wysoki. Musisz np. na 1 sekundę, po wykryciu zdarzenia, wyłączyć w programie wykrywanie transmisji.
Można zrobić SPI w trybie master - slave, gdzie na przykład uC "C" będzie jako master, pozostałe jako slave i uC master będzie wybierał z którym uC będzie się komunikował. Można też zastosować topologię pętli, wyjście uC "A" łączys zz wejściem "B", a wyjście "B" z wejściem "C", natomiast wyjście "C" z wejściem "A". Tylko znów jeden układ musisz ustalić...
Witam po długiej przerwie. Niestety nie udało mi się znaleźć przyczyny, czemu transmisja ma błędy. Opóźnienia wpisywałem już, nawet sekundowe żeby niczego nie zgubił, ale i tak są błędy. Najlepiej jeśli by ktoś z Was zrobił próbę na swoim komputerze. Czy występuje ten sam problem, bo ja już nie wiem czemu tak się dzieje, a nie chce robić programowo...
Ale tutaj cały czas jest mowa o tym "oszukuwaniu". Trzeba "ręcznie" taktować SCL, aż do napotkania wysokiego stanu na SDA i ani jednego cyklu więcej. Potem można "ręcznie" wygenerować START STOP, ale jak słusznie zauważył (at)Andrzej__S jest pewne ryzyko, że ten przypadek może być nieobsługiwany przez wszystkie układy slave. Więc najlepszym rozwiązaniem...
Żeby działała transmisja od komputera do kontrolera przy tak zbudowanym konwerterze, to wejście RxD w uK musi być wejściem z podciągniem (uaktywniony pullup), albo trzeba dołożyć rezystor na zewnątrz. Podepnij się z oscyloskopem/miernikiem/ledem z rezystorem do linii RxD, ustraw transmisję na 300 bodów i zobacz jak wygląda przebieg.
A czy istnieje inna metoda odczytu jednego sygnału z PC przez kilka urządzeń? Myślałem nad puszczeniem jednego sygnału do kilku urządzeń i urządzenie, które rozpozna swoje ID w transmisji zadziała.
Gdy programujem same fuse bity to wszystko jest ok. A gdy programujem sam flash to zatrzymuje się na 99% czyli tak jak wcześnie. Może jest to spowodowane źle dobraną prędkością transmisji? W Atmega8 ustawiłem takie fusebity lfuse:$ff hfuse:$D9.
Zadeklarowałeś: adxl_init() w której wysyłasz bufor do ADXL345: ...ponieważ już podczas wysyłania pierwszego bajtu danych z konfiguracją ( adxl_init() ) program zawiesza się nie wychodząc z pętli TWI_stop(), co zaznaczyłem w kodzie programu. Jak sprawdzasz, że akurat ta linijka sprawia problem? Sam fakt wpisania odpowiednich wartości do TWDR i TWCR...
Master musi coś wysłać, żeby ruszył zegar: char SPI_Master_Receive(void) { SPDR=0xff; /* Wait for reception complete */ while(!(SPSR & (1<<SPIF))); /* Return data register */ return SPDR; } Układ Master-Slave nie zmienia się mimo, że transmisja jest w obie strony.
Chciałbym nadawać i odbierać szeregową transmisję w kodzie Manchester, chodzi tu o to w jaki sposób zdefiniowac taką transmisję, jak odbierać dane. Nie bardzo wiem w jaki sposób w BASCOM zrobić nadawanie szeregowe po jednym porcie.Czy zna ktoś jakiś sposób jak do tego podejść ? procesor atmega8. xtype
Mam nadzieję że inkrementujesz sobie jakąś zmienną która informuje o ilości włączeń wentylatora a potem ją resetujesz. Przerwanie od timera zakłóca ci odczyt z DS-a musisz sobie dodać flagę którą będziesz ustawiał lub resetował i będzie cię informować że właśnie zakończyło się przerwanie i masz jeszcze trochę czasu do następnego. W tym momencie musisz...
Problem jest nie w komunikacji tylko w wyświetlaczu. Po prostu wyświetlacz się nie wyrabia czytaj może błędnie napisana procedura obsługi wyświetlacza, pokaż jak masz napisaną obsługę wyświetlacza, używasz opóźnień czy flagi zajętości wyświetlacza?
Mamma mia, po co drugi pin, skoro można to zrobić PROGRAMOWO, tylko trzeba to zrobić DOBRZE. Bo można robić to asynchronicznie w stosunku do procesu i np podpiąć port transmisji szeregowej.
Schemat niekompletny - jak łączysz z µC ? Jak inicjalizujesz kierunek transmisji w MAX485 ?
Witam, Robię USB-RS232 na FT232RL do transmisji z ATmega8. ATmega zasilana jest akumulatorem Li-ion, czyli 3 .. 4,2V Czy ten schemat jest poprawny ? Czy diody LED sygnalizujące transmisję można podłączyć do VCC ? (przydały by się podczas testu transmisji samego USB-RS) http://obrazki.elektroda.pl/3916940800_1...
Znalazłem Tylko że muszę użyć układ scalony MAX232 do "pogodzenia" napięć PC i TTL. I to wszytsko ale jak przesyłać dane. Do transmisji danych w ATmega8 musisz użyć USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) w trybie asynchronicznym. Łączysz pin wyjściowy oznaczony w ATmega8 jako TXD z wejściem RXD w porcie szeregowym...
Można tak jak kolega pisał wyłączać timer... Ale lepiej by chyba było w samej funkcji obsługi LCD w najbardziej newralgicznym punkcie (sama transmisja) wyłączać globalnie przerwania "cli();" i po wysłaniu danych włączać z powrotem "sei();'
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...
Na pewno masz te 8MHz? Spróbuj także z dzielnikami rezystorowymi oraz przy różnych prędkościach transmisji.
Nie ma siły, string musi się kończyć jakimś znakiem terminującym. Zwykle takim znakiem jest kod NUL (0x00). Inna możliwość to po prostu czekanie, jeśli przez określony czas nie pojawia się kolejny znak to mamy timeout i uznajemy, że nastąpił koniec transmisji.
Hm... to jak od odróżni komendy ? Według dokumentacji: A SPI read transfer consists of a 1-bit Read/Write signal, a 6-bit address, and 1-bit don’t care bit. (1-bit R/W=0 + 6-bits address + 1-bit don’t care) Czyli według tego pierwszym bitem określam czy chcę dane zapisać czy odczytać, potem wysyłam 6 bitowy adres rejestru i na końcu...
No niestety nie będzie działał bo cały kod składa się z kilku 8 bitowych słów i jak pozbędziesz się jednego to już się nie dogada . Napisz mi tu co dokładnie chcesz osiągnąć (gdzie przycisk , gdzie led , i co ma led robić ) a w wolnej chwili dam działający kod z dogłębnym opisem . Chyba że już rozwiązałeś problem ?
Som 'kwadraty' czyli zasilanie ok. Nic się nie dzieje a potem wszystko znika.... czyli błędy w transmisji: -złe opóźnienia -błędne połączenia Też próbowałem tych programów... napisałem se własne, chcesz podeślę.
Górny przebieg to dane, a dolny to CLK To typowa transmisja synchroniczna. Jak SPI
według Twoich ustawień z 1 postu mamy : 2 bity stopu (1<<USBS) , transmisja 8bit (3<<UCSZ0) oraz ustawiony tryb nieparzystości (3<<UPM0) Czy takie same ustawienia są na kompie ?
Linia SS jest normalnym portem I/O. W nowszych rdzeniach implementowane są automatyczne "maszyny" do zmiany urządzenia, ale dla AVR z rodziny mega i tiny można go wykorzystać w dowolny sposób. Wyboru urządzenia do komunikacji przez SPI można również dokonywać przez dowolny port mikrokontrolera. Oznaczenie SS oznacza port mikrokontrolera wymagany do...
Razem z procedurą odbioru uruchamiasz timer ustawiony na okres na np 2-3 czas transmisji. Jeśli odebrałeś prawidłowe dane zatrzymujesz timer w innym przypadku timer zgłosi przerwanie i masz informację o błędzie.
Tutaj masz różne transceivery radiowe: http://www.sensu.pl/?go=products&cat_id=... Większość z nich albo wymaga jakiegoś kodera/dekodera w postaci osobnego układu scalonego albo posiada sprzętowe szyfrowanie transmisji. Pozdrawiam
MAX232 nie nada się.
Nie napisałeś jaki to procesor. Przykładowo dla Atmega8/Atmega32 wystarczy gdzieś napisać UCSRB.TXEN = 0 Dla Mega328P UCSR0B.TXEN0 = 0
Brak wspólnej masy?
Nie ale znaczy, że nie znasz podstaw elektroniki Koniecznie przylutuj 100nF(taki mały ceramiczny żółty albo niebieski) najlepiej prosto do padów uC:) I potem sprawdź czy jest transmisja:)
a podobno ta funkcja nadaje oprocz zmiennej, jeszcze kod na rozpoczęcie transmisji i zakończenie W dobrym kierunku kolega zmierza ;) ale prosimy o wstawienie kodu.
Gdybyś kolego Maćku uzył linii EN którą pewnie masz na stałe połączoną do masy i sprawdzał status zajętości wyświetlacza a nie zakładał ze wyświetlacz przy jakiejś stałej zwłoce czasowej wyrobi się ze wszystkim to tego postu by nie było. A czy poganiałabyś swojego procka 4 MHz czy 16 MHz nie mialoby to żadnego znaczenia. Niestety wiekszość ten drobiazg...
Uart odpalałem (baudrate=9600) na wewnętrznym zegarze o f 1 i 4 MHz. Korzystałem z procka ATmega8, nie było żadnych problemów. Jedyne co moge poradzić, to sprawdzenie dokładnie ustawień w programie. No i narazie ustaw sobie transmisje bez U2X, bo to pogarsza jakość transmisji, choć u mnie nie miało to wpływu na dane.
Witam! Napisałem procedure inicjalizacji rs-a i odbioru danych. W sieci opartej o RS485 mam mastera i kilka slave-wów dlatego muszę na poczatku zchynchronizowac sie zeby zaczac czytac ramkę protokołu od poczatku (dwa znaki 0xa5). Zegar Atmega to 7,32MHz, ustawiona transmisja 19200, 8N1. Atmega 8 odbiera jakies dane ale wyglada na to że pracuje z inna...
Proszę bardzo: http://mikrokontrolery.blogspot.com/2011... Przykład na ATmega8, ale to praktycznie ten sam mikrokontoler. W razie problemów zapytasz tutaj.
a jak to jest z transmisją 1Wire
BłęDne wartości odbieranych bajtów wskazują na błąd szybkości nadawania. Akurat przy FCPU 1 MHz i szybkości 4800 tego błędu być nie powinno, ale AVR mają mało precyzyjny oscylator wewnętrzny, więc nie można tego wykluczyć. Sprawdź na innym egzemplarzu uC. W procedurze inicjującej UART najpierw go włączaszm, a potem ustawiasz tryb pracy - błąd; zamień...
Można przy wewnętrznym taktowaniu używać transmisji USART. Ale trzeba generator wewnętrzny skalibrować, używać zawsze w tej samej temperaturze i przy tym samym napięciu.
btm, PC i uC ustawione są na te same parametry transmisji, czyli baud: 4800.
... void InitUSART(unsigned long int bitrate ) // bitrate - szybkosc portu { //ladowanie rejestrow odp za szybkosc UBRRH = (unsigned char)(((F_CPU/(16UL*... UBRRL = (unsigned char)((F_CPU/(16UL*bitra... // 8bitów, UCSRC = (1<<URSEL)|(1<<U...
Co to za jezyk programowania? :)
Dla mnie niema znaczenia czy transmisja RS233 jest poprawna czy też nie. Nie rób z siebie głupca. Po co komu transmisja przez RS232 która nie jest poprawna? Dziś Atmega8 kosztuje około 5 zł a FTDI który daje 100% poprawną transmisję aż 2x tyle. Nie wymaga programowania, potrzebuje garstki typowych części, a jedyna "trudnością" jest obudowa SSOP o gęstym...
11059200Hz daje zerowy błąd transmisji UART. 12MHz zapewni prawidłową transmisję przy mniejszych prędkościach. Przy Baudrate 115200 12MHz się wyłoży (będzie dobre do 28800).
Dziękuję za odpowiedzi. Układ zmontowałem. Transmisja OK. Co do regulacji fazowej- średnio to działa, ale działa.
transmisja szeregowy atmega8 transmisja szeregowa atmega8 transmisja szyfrowanie
schemat zasilacza power obliczyć okres przebiegu excel szablon
sklep endoskop sklep internetowy
Termostat ATEA – schemat podłączenia, zaciski, modele W4 A13, montaż w lodówkach Synchronizator skrzyni biegów Hyundai Tucson M6CF3-1 – objawy, naprawa, koszty