W starszych AVR'ach wystarczyło wyłączyć na moment nadajnik/odbiornik UART'u (rejestr UCSRB, lub UCSR0B, UCSR1B, itd.) i włączyć ponownie - może tu też zadziała.
Pomogło wpisanie na początku programu: [syntax=basic4gl] Reset Ucsrb.txen Reset Ucsrb.rxen 'lub wpisujemy Ucsrb = Ucsrb And &B11100111 [/syntax] Temat zamykam.
Spróbuj jeszcze raz po odremowaniu Ucsrb = &B10011000 - włacza RX i TX
Witam, Dziękuje za zainteresowanie tematem, udało mi się problem rozwiązać wystarczyło wpisać reset UCSRB.3 reset UCSRB.4 i po problemie
myślę sobie że trzeba tego usarta jakoś wyłączyć żebym móg używać tych portów jako wyjść ... tylko jak drodzy panwie? Od tego są bity RXEN i TXEN w rejestrze UCSRB . Teraz nota katalogowa w dłoń i zmieniamy. Może powinieneś na początku programu skonfigurować port D jako wyjściowy.Próbowałeś? Przecież kolega pokazał, że konfiguruje port!
Wpisz "Reset UCSRB.TXEN" gdzieś przed konfiguracją pinu PD.0 BTW. Dużo namieszałeś. Potrzebujesz pewnie pinu TXD bo chcesz odbierać na RXD a w temacie masz na odwrót. Nazewnictwo też.. RDX TDX zamiast RXD i TXD :D
Witam ! Napisałem poniższy program. Wysyła on w krótkich odstępach czasu komunikat midi do keyboardu (cykliczne granie werbla). Na Atmega16 działa. Na Atmega8A tylko podczas programowania raz zagra werbel, a potem cisza. W czym jest problem ? [syntax=bascom]Ubrr=23 'szybkość transmisji 31250 bps (kwarc 12Mhz) Ucsrb=8 Ucsrc=134 do Bitwait Ucsra.5 , set...
$crystal = 8000000 $regfile = "M16def.dat" $hwstack = 128 Tu zmieniasz wg wlasnych parametrow '- deklaracja zmiennych dla usart ---------------------------------------- Dim Index As Byte 'kolejny znak w buforze odbioru Dim Odebrano As Bit 'flaga ustawiona po odebraniu znaku Dim Buf(10) As Byte 'bufor wejsciowy - 10bajtow '- konfiguracja...
Przewertowałem dokumentacje procesora, forum i znalazłem takie rozwiązanie Ubrrl = &HFF '1200 dla kwarcu 14745600 'Ubrrl = &H7F '2400 dla kwarcu 14745600 'Ubrrl = 191 '4800 dla kwarcu 14745600 'Ubrrl = 95 '9600 dla kwarcu 14745600 Reset Ucsrc.7 'wybierz ubrrh zamiast ucsrc Ubrrh = 2 '1200 dla kwarcu 14745600 'Ubrrh = 1 '2400 dla kwarcu 14745600 'Ubrrh...
Możesz napisać i cieszyć się funkcjonalnością nie wiedząc o co chodzi ... $baud = predkosc_transmisji Tylko jeśli nie umieści się tej informacji w kodzie i użyje gdzieś Print/Input lub pochodnej to kompilator ustawienia dla $baud bierze z tych zdefiniowanych w IDE. Bascom konfiguruje od razu obydwa piny. Skonfigurowanie ich polega na wpisie do rejestru...
printf w C jest bardzo rozbudowaną funkcją, która ma duży aparat formatowania tego informacji wyściowej (ilość znaków, precuzja w float, i kupa innych...). Jednak bardzo rzadko wykorzystuje się te możliwości. Niektóre kompilatory pozwalają na wyłączanie pewnych lelmentów printf-a. Więc ten sam kod skompilowany w Codevision AVR zajmuje tylko 424B. /***************************************...
Mam dziwny problem z kompilatorem w AVR Studio. Jest sobie taki przykładowy kod (zatrzymałem się już przy konfiguracji uarta) #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #define bled 1<<5 #define gled 1<<6 #define rled 1<<7 void UART_Init_a(void) { UCSRB |= (1<<RXEN);...
poleceniem config ... Z tego co wiem bascom ma problem z usartem, Gdzie kolega to wyczytał? Jakiego typu problem? W wersji 1.11.8.5 zostało zmienione podejście do U(S)ARTów: - reworked the uarts. each uart is defined by a model number in the dat file model 0: basic uart, with UDR,USR and UCR registers ,ubrr=0-255 model 1 : basic uart with udr and MP...
Najlepszy manual to dokumentacja megi32 dostępna bezpośrednio u atmela na stronie. Tak szybko patrząc, at90s2313 ma rejestry UDR/UCR/USR, ale tam jest prosty UART. Mega32 posiada USART, który posiada więcej rejestrów, które dostępne są poprzez UDR, UCSR void UART_init(void) { // ustaw prędkość transmisji UBRRH = (unsigned char)(UART_CONST...
Po prostu dlatego ze tworca BASCOMa nie zrobil takiej mozliwosci. Inaczej mozna to zrobic bardzo prosto: wpisujac nowa wartosc do rejestrow UBRRH I UBRRL (kolejnosc wpisywania jest wazna). Oczywiscie wpisywana wartosc trzeba wczesniej obliczyc bo w takim wypadku BASCOM juz jej sam nie obliczy. Rozumiem , Dzięki , poczytałem o dyrektywach i ich podziale...
Mega 8, kwarc 14745600 i transmisja 1200 bez problemu. BAscom ze standardowymi komendami ni ebędzie tego potrafił. I to jest kolejne ograniczenie ale da sie je obejść. W nocie katalogowej do ustalania prędkości są dwa rejestry: (UBRRL i UBRRH). Bascom używa tylko UBRRL (dlatego że dostęp do UBRRH jest bardziej skomplikowany). To znaczy że transmisja...
Muszę odpowiedź poprzedzić krótkim wstępem. W Bascom do każdego obsługiwanego mikrokontrolera jest plik definicji. Można w nim wyczytać ciekawe informacje, ale trzeba wiedziec jak go otworzyć. Chodzi o to że edytor Bascom formatuje tekst i przy zamykaniu takiego pliku mógłby go tak zmienić że byłby nieprzydatny. Z drugiej strony nie jest to przeciez...
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...
Dzięki za szybką odpowiedź. Zmiana jednak nic nie dała ; / Postanowiłem wypróbować język C i napisałem coś takiego Dodano po 3 Aha, próbowałem również z baud 19200 jak i 9600 za każdym razem co innego sie wyświetla ale za każdym razem jest to jakiś krzak
Witam, borykam się z następującym problemem : Chcę podłączyć do mikrokontrolera atmega16 układ/konwerter transmisji szeregowej na 1-wire : DS2480B. Zapoznałem się z notą katalogową i wykonałem połączenie UART DIRECT, bez pamięci EPROM (tylko 5v). schemat : http://obrazki.elektroda.pl/8405109000_1... Linie TxD oraz RxD z mikrokontrolera...
Witam, mam duży problem z RS, mianowicie mam taki prosty rogram: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/wdt.h> #include <stdio.h> #define FOSC 12000000// Clock Speed #define BAUD 38400 #define MYUBRR FOSC/16/BAUD-1 ///////////////// void USART_Init( unsigned int ubrr) { /* Set...
Witam Mam taki problem. Grzebiąc po archiwach elektrody znalazłem gotowe funkcje do inicjalizacji USART i transmisji danych. Niestety, w HyperTerminalu wyskakują mi "śmieci" zamiast tego, co chciałem przesłać. Domyślam się, że może być problem z dobraniem argumentów przy inicjalizacji. Dodam, że komunikacja odbywa się prawidłowo, gdy piszę w Bascomie,...
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
Żeby wykluczyć błędy sprzętowe podpiąłem starą poczciwą Atmegę8 + Bascom i zapodałem Print "a" (jakie to jest proste w Bacomie :) ) - DZIAŁA. Na tym samym sprzęcie zapodałem w Atmel Studio taki kod. http://obrazki.elektroda.pl/8172165200_1... ale wystarczy ponownie skompilować i uwagi znikają 8-O Coś się jednak wysyła jednak nie "a"...
Wiem że na forum jest pełno zagadnień dotyczących rs232 i AVR ale wszystko jest w bascom-ie którego nie umiem, pozatym dlamnie lepszy jest zwykły assembler. Poniżej program który wgrałem do ATmega8515 #include <m8515def.inc> Rjmp Start USART_Init: ;Ustawia Baud Rate Out UBRRH,r17 Out UBRRL,r16 ;Otwórz port i włącz transmisje Ldi r16,(1<<RXEN)|(1<<TXEN)...
piotrwzk - wlasnie udalo mi sie uruchomic rf12.... powiedz w jakim jezyku piszesz ... Ja uruchomilem rfm na atmedze 8 z wewnetrznym oscylatorem 8mhz zasilanie to 3,3V .. Postaram sie pomoc ...a no i zamiescic jakis ludzki opis :) ... powiem ze nie udalo mi sie uruchomic tych modolow w Bascomie - czasem cos dzialalo , czasem nie ,,, nie wiem wydaje mi...
Witam prosze o pomoc w takim oto temacie : Staram sie odczytac/wyslac dane przez Usart przy pomocy AVR studio (jako ze jestem jeszcze zielony w tym temacie nie moge poradzic sobie z tym problemem sam) Zapalanie i gaszenie Ledow mam juz za soba i teraz chcialem nauczyc sie rozmawiac z komputerem przez USART wydukalem taki oto kod - ale niestety symulacja...
Witam, Chciałbym dokonać transmisji przez port szeregowy Atmegi. Niestety ciągle otrzymuje krzaki na terminalu. Czasami są to krzaki czasami inne litery, a niżeli te wysłane programem, często w terminalu pojawia się błąd frame error. Co lepsze program działa na symulatorze bez problemów... W tej chwili stosuje kod rodem z datasheet Atmegi: #include...
Z powodu objętości programu musze napisać w asemblerze troche rzeczy, i mam tu problem z transmisją na rs232. Niby cos wysyłą, ale terminal źle odbiera. Potrzebowałbym wyświetlić jakąkolwiek daną, 1 bajtową, w pętli co 1-2 sekundy, i to mi nie dziaą. w bascomie program testowy działą więc to nie wina rsa i max 232. Potrzeba mi w asemblerze odpowiedznika...
Witam, Zapoznałem się z tym tematem: https://www.elektroda.pl/rtvforum/topic2... Niestety jest zamknięty, więc musiałem otworzyć nowy. Szukałem wielu porad w tym temacie i ostatecznie napisałem program w BASCOmie i działa, aczkolwiek z pewnym problemem z częstym błędnym odczytem CRC. Teraz powoli przeprowadzam się na C i z podanego tematu ściągnąłem...
Mówisz masz :] #include <avr/io.h> #include <avr/delay.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/signal.h> #include "scancodes.h" volatile uint8_t flag,flag2; #define S_CLK PORTD|=(1<<2) #define C_CLK PORTD&=~(1<<2) #define CLK bit_is_set(PIND,2) #define...
witam, od jakiegoś czasu walczę z dekodowanie sygnału RC5 TSOP1736 <--> PD2 (INT0) dioda nadawcza IR <--> BC516(PNP) <--> PB1 układ na 100% działa ponieważ przetestowałem go w BASCOMIe rc5send i getrc5(); działają znakomicie. pilot philips 100% rc5 - sprawdzone problem mam taki, że w terminalu dostaje przedziwne rzeczy. np. dla tego...
Witam. Mam nadzieję, że się nie narażę tym tematem, ponieważ był już wielokrotnie opisywany - jednak uzmysławia to jak wiele problemów może wyniknąć przy obsłudze jednej rzeczy. Sprawa jest prosta, napisany program w WinAVR20070525 nie obsługuje portu USART w mikrokontrolerze ATmega8515. Układ jest podłączony do COM'a poprzez inwerter MAX232. Podczas...
Programowanie modułu BTM-222: Moduł BTM-222 to układ w pełni kompatybilny z interfejsem szeregowym USART. Moduł jest fabrycznie ustawiony na szybkość transmisji 19 200 bps, 1 bit stopu, brak parzystości. Nominalne wartości można zmienić podłączając układ do portu COM komputera. Operacja ta jest możliwa dzięki wprowadzeniu odpowiednich komend AT. Do...
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...
Sorki juz dołączam mój kod z bascomAVR. $regfile = "m8def.dat" $crystal = 8000000 Dim Hihi As Byte Ddrc = 255 Ucsrc = &B10000011 Ucsrb = &B00011000 Ubrr = 207 On Urxc Rx232 Enable Urxc Enable Utxc Enable Interrupts Ucsra = &B00000010 Do Loop End Rx232: Hihi = Udr Portc = Hihi Udr = Hihi Return
co robie zle w wyslaniu ? transmisja musi byc 9600,asynchroniczna,8N1,bez parzystosci atmega16 UBRRH = 103 >>8; UBRRL = 103; UCSRB|= _BV(RXCIE); UCSRB|= _BV(RXEN); UCSRB|= _BV(TXCIE); UCSRA|=_BV(U2X); UCSRC|=_BV(URSEL); UCSRC|=_BV(UCSZ1); UCSRC|=_BV(UCSZ0); sei(); UCSRB|= _BV(TXEN);...
[syntax=basic4gl] Report : noname3 Date : 10-21-2014 Time : 20:42:39 Compiler : BASCOM-AVR LIBRARY V 2.0.7.5, DEMO Edition Processor : M8 SRAM : 400 hex EEPROM : 200 hex ROMSIZE : 2000 hex ROMIMAGE : 546 hex -> Will fit into ROM ROMIMAGE : 1350 dec FLASH USED : 16 % BAUD : 9600 Baud XTAL : 16000000 Hz BAUD error : 0.16% Stack start : 45F hex Stack size...
Witajcie ! Dopiero przerzucam się z bascoma na C i chciałem sobie odpalić UARTA aby podawał mi wartości ADC ... Na wyjściu powinienem otrzymać wartości ADC ... i leci coś ale zauważyłem że tylko w zakresie 0-255 ... a nie 0-1024 Gdzie popełniłem błąd ? proszę sprawdźcie też pozostałość :) Taki oto kod zmontowałem .. #include <avr/io.h> #include...
Nie wiem czy sie przyda ale mam opis bootloadera ale na ATmega8 oto on napisany w bascomie: 'Program Bootloadera (monitora) dla ATmega8 umożliwiający ładowanie 'programu do pamięci Flash przez interfejs RS232 z prędkością 19200 'bodów 'Bity fuse należy ustawić, by na Bootloader było przeznaczonych 128 'bajtów 'Początek adresu programu Bootloadera:...
no tak, no to ja to rozwiązałem z multiplexerem ręcznym w postaci przełącznika, bo już nie mogę pozmieniać PCB, ale ok - rozumiem że inaczej nie da rady... A teraz tak, próbuję się skomunikować , i coś mi nie działa... próbuję normalnie konfigurować coma (tak mi działało gdzie indziej) : [ code ] Config Com1 = 9600 , Synchrone = 0 , Parity = None ,...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
No i wszystko niby działa (znaczy mogę dowolnie programować itd) ale apetyt rośnie w miare jedzenia. Dokleiłem sobie procedurkę bootloadera bo chciałbym mieć możliwość programowania Atmegi w układzie. No i tu się schody zaczynaja. Bo po pierwsze to nic przez uarta nie mogę się skomunikować, po drugie nie działa bootloader.(co pewnie wynika z problemu...
Witam, znalazłem kiedyś program napisany w asemblerze do kodowania POCSAGu z portu com komputera. Program działa ok ale gdy podłączę mikrokontroler Atmega8 i wysyłam przez Uart komendy do kodera POCSAG to muszę robić przerwy 12 sekundowe pomiędzy wysyłaniem komend. Nie znam asemblera i mam pytanie co zrobić by nie czekać tych kilkunastu sekund pomiędzy...
bascom bascom enkodera bascom projekt bascom bascom bascom enkoder
civic elektryczny schemat zasilacz lenovo zamiennik bezpiecznik wycieraczka tylny
Jak otworzyć pilota Blow 74-264 - instrukcja krok po kroku Awaryjne otwieranie drzwi pralki CANDY CSW586