Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
http://obrazki.elektroda.pl/9418966600_1... Witam wszystkich na forum. Jest to moje pierwsze publikowane DIY. Słowo wstępu… Projekt powstał z jednego, bardzo ważnego powodu: bo bardzo chciałem coś takiego mieć! Jest to układ odczytujący kod karty poprzez interface EM4095 z anteną, dekoduje, sprawdza i wysyła poprzez port szeregowy....
strzelam ;) - bo nie masz podłączonej poprawinie masy czyli GND pomiędzy kompem a złączem RS232 ? Zawsze jak ktoś zadaje takie pytanie (niezależnie od programatora jakiego używa, jakbyś sobie popatrzył na setki takich pytań na forum) - to zawsze się to kończy - cudownym odnalezieniem błędów w połączeniach
Witam mam pytanie odnosnie programowania transmisji szeregowej w bascomie: 1. prędkość ustawia się za pomocą $baud $crystal 2. jak sprawdzić czy do SBUF coś dotarło czy zostało nadane?? 3. $serialinput -> określa nazwe zmiennej do której trafia zawartość Sbuf?? z poziomu assemblera obsługa uart'u nie stanowi większego kłopotu, ale bascom ciągle jest...
ad 1 użyj bascom 8051 ad 2 wszystko znajdziesz w helpie bascoma
NIE, Bascom nie ma możliwości kompilacji kodu napisanego w C++ Powyżej przedstawiony jest tylko "blokowy" zarys jak powinna działać taka procedura
jest to transmisja szeregowa synchroniczna(ani uart ani i2c), procedurki sa mojego autorstwa, tylko ze bascom cos ostro zmienia w rejestrach z ktorych kozystam podczas wykonywania podprogramu przerwania i kaszani mi wysylanie na lcd. Moze ktos wie co on tam zmienia potajemnie??
Przeskocz z 8051 na AVR (uprocesor i zmiana na BASCOM AVR). Karty MMC można przełączyć w tryb pracy SPI, a 90S8535 (40-pinowy) ma wbudowaną sprzętową obsługę SPI (wystarczą chyba tylko 3 piny - transmisja szeregowa dwukierunkowa). Pamiętam, że kiedyś był projekt czegoś takiego w sieci, ale to co mi zostało, to "user's manual" od HITACHI (105 stron traktujących...
To jest jakaś transmisja szeregowa procedure SendWord(W:Word) rozkłada słowo na bity i wysyła pojedynczo korzystająć z procedur One i Zero. Wygląda jakby na któreś linii była dana była na drugim bicie a zegar na pierwszym (najmłodszym) wpisywanym do portu o adresie IO. Wysłanie danych polega na wpisaniu jej do drugiego bitu i zmiany pierwszego dwókrotnie...
Polecam polskojęzyczny help do Bascoma. Szukaj w nim informacji o transmisji szeregowej UART.
Czy ktoś poleci jakiś jednokolorowy wyświetlacz graficzny o rozdzielczości przynajmniej 128x64. Mile widziana transmisja szeregowa w połączeniu z biblioteką glcdeadogm128x6.lbx (ST7565R) lub inną.
ja też nie znam Bascoma... ale ustawienie trybu pracy portu szeregowego w asemblerze nie stanowi żadnego problemu... szybkość parzystoć ilość bitów ustawiasz korzystając ze słów sterującyj PCON (bit SMOD to podwojenie szybkości transmisji) oraz SCON.... powodzenia....
Łącze szeregowe idealnie nadaje się do odpytywania drugiego procesora. Na I2C to trochę daleko. Na procesorach musisz: - oprogramować wysyłanie "pytania"/"odpowiedzi", czyli musisz nauczyć się wysyłać dane przez łącze szeregowe - napisać obsługę przerwania łącza szeregowego - czyli co ma się dziać kiedy na port przyjdą jakieś dane - musisz nauczyć się...
zawsze wysyłasz paczki po 8 bitow ale mozesz nalozyc maske na pakiet np and 00000111 i wtedy odczytujesz tylko trzy mlodsze bity
najlepiej to juz sie przesiadz na asemblera to pozwoli ci na pelna kontrole nad transmisja danych z procka BASCOM jest za wolny do takich rzeczy (ah te jezyki wysokiego poziomu) :lol:
jak w BASCOM wykonać transmisję szeregowa? Wysyłac po 1 pinie dane szeregowo a w drugim procesorze to odbierac, jak to zrobić programowo ? Nie chodzi ty o rs232 tylko o to zeby np nadac 16 bitów a drugi procesor to odebrał
Dziękuję za szybkie odpowiedzi. Bardzo proszę o informację czy są gotowe polecenia do odczytu tych danych w BASCOM, czy trzeba pisać własne. Poproszę o podpowiedz realizacji programowej. Raczkuję w realizacji szeregowej transmisji danych innych niż i2c i rs232 z gotowych bibliotek.
Czy jest możliwość wykorzystania (np. do sterowania przekaźnikiem) portu mikrokontrolera oznaczonego jako TXD, jeśli używam transmisji szeregowej do połączenia z drugim mikrokontrolerem? Transmisja jest jednostronna i w tym przypadku pin TXD nie jest wykorzystywany. Jednak kiedy inicjuję w BASCOM'ie sprzętowy UART to pin oznaczony jako TXD wchodzi w...
co w związku z tym?? jak wyświetlić coś na tym wyświetlaczu?? Dodano po 1 bascom używa transmisji szeregowej do wyświetlacza...
No cóż nie bawiłem się wyświetlaczem z tym sterownikiem ale z grubsza przeglądając dokumentację sterownika widać, że pin c86 odpowiada za przełączenie interfejsów równoległych 6800 i 8080. A skoro korzystasz z transmisji szeregowej to nie ma co sobie nim zawracać głowy. Ten przykład z helpa dotyczy właśnie przypadku gdy wykorzystywany jest tryb pracy...
1. 2-wire to magistrala firmy philips nazywana I2C, a Atmel wprowadził swoją magistralę zgodną z tamtą o nazwie TWI. 4-wire to magistrala SPI. Szeregowe przesyłanie danych w obie strony w takt linii zegarowej. Jedna linia aktywacji układu podrzędnego transmisji. 2. Szukaj w internecie "AVR, SPI, TWI" 3. Nie piszę w bascom'ie z wiadomych względów......
Jak sobie zaprogramujesz, jakie dane będziesz przesyłał i jakim protokołem nie ma znaczenia. Jedynie musisz dane wyprowadzać szeregowo z jakiegoś portu µC i podać na wejście nadajnika w standardzie odpowiadającym wejściu nadajnika np. TTL. Pomijam oczywiście samo sterowanie nadajnikiem do którego służą inne wejścia i które w programie trzeba uwzględnić...
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.
Transmisja szeregowa przez UART wymaga stabilnej częstotliwości taktowania (najlepiej po prostu kwarcu). Domyślam się, że procesory pracują na wbudowanym oscylatorze 8MHz, to może być przyczyną błędów transmisji.
jeszcze nie potrafię obsługiwać szeregowej transmisji. Potrafisz, tylko o tym nie wiesz... ;) Podpowiedź dla Bascom - SerialOut
Wiem, że 3x8>19 :), ale 3 to najmniejsza ilośc ośmiobitowych słów potrze- bnych do przesłania 19bitów. Jak ktoś kiedyś powiedział: "Nie ściągaj ar- maty by zabić komara", tak samo jest tutaj: po co robić od zera układ do transmisji szeregowej, jeżeli jeden jest już gotowy?
Dziękuję za pomoc w zrozumieniu "transmisji szeregowej" oraz podpowiedzi co do konwersji 2 bajtów w 1 liczbą Serdecznie dziękuję za pomoc - wszystko działa :)
Witam. Prędkość transmisji i związane z nią błędy (procenty które pokazuje bascom) tyczą się transmisji szeregowej poprzez uart, a nie programowania uC. Fusebity są ok. Tylko jeżeli korzystasz z portu F - wyłącz jeszcze JTAGa - unikniesz niespodzianek podczas uruchamiania płytki. Nie podałeś schematu. W mega128 programowanie nie odbywa się przez linie...
Mi udało się zrobić komunikację szeregową, ale tylko przy użyciu poleceń Print oraz Input. Jednak te komendy sa do niczego, bo np: Input zatrzymuje program do czasu gdy nie wpadnie określona ilośc danych. Chyba najpewniej i najprościej byłoby napisanie wstawek asmowych do realizacji transmisji szeregowej.
No to raczej odwróc założenia gdzyz bardziej prawidłowo bedzie jak umiescisz transmisje szeregową w przerwaniu a DS włozysz w główny program
stopa błędów zależy przede wszystkim od kwarcu oraz od prędkości transmisji. Bywa tak, że przy danym warcu i jakiejś prędkości transmisju stopa błędów jest duża i nie będzie można zrealizować transmisji beż zgubienia znaków........
z tego co mi wiadomo transmisja zapisu bitów do rejestru jest zawsze synchroniczna... wiec jak mam go wykorzystac?
W BASCOMie są instrukcje przydatne w transmisji szeregowej sprawdz: SHIFTIN i SHIFTOUT generują przy okazji CLK pozdr KN
W kwestii bascom-u Ci nie pomogę ale może wykorzystasz wstawki asemblerowe ; .org 0 rjmp RESET ; Reset rjmp EXT_INT0 ; zewnetrzne Int0 rjmp EXT_INT1 ; zewnetrzne Int1 rjmp TIM1_CAPT ; zewnetrzny wychwyt wartosci licznika 1 rjmp TIM1_COMPA ; komparator A licznika 1 rjmp TIM1_OVF ; przepelnienie licznika 1 rjmp TIM0_OVF ; przepelnienie licznika 0 rjmp...
Próbowałem coś szukać ale nie znalazłem informacji a dokumentacja nic mi nie mówi. Mam następujące pytanie dla forumowiczów: Jaka jest największa prędkość transmisji portu szeregowego jaką można zaprogramować w AT89C2051 przy kwarcu 11,052MHz ? Bo BASCOM nie pozwala ustawić więcej niż 19200bps. A tak na marginesie to jak się ustawia prędkośc w tym mikrokontrolerze...
Skoro transmisja szeregowa, to na po co tyle przewodów? Wyświetlacz ledowy w alfie był na trzech przewodach: 5V, masa, Rx, to czemu nie mogło by być tak z drukarką?
Niestety nie mam dostępu do portu szeregowego, więc nie mogę. Czy program teoretycznie powinien działać? czy procki dobrze mam ustawione? czy dobrze są podłączone? Czy jest coś o czym powinienem wiedzieć, a czego nie napisałem?
m8se zgadza sie mozna i tak sterowanie multiplekserowe, tylko nie wiadomo jak beda sie zachowywaly wyswietlacze jak chce ich podpiac az 8 ;) beda migotaly bo jeszcze mam tam zamiar zrobic transmisje szeregowa do komputera (usart) ale moze to w przerwaniach ale to sie zobaczy narazie trzeba sobie poradzic z wyswietlaczami ;) Hmm nie wiem o czym myślisz...
...Albo wyrzuciś print albo przerwanie od serial... Albo ... troszkę pokombinować :D Wystarczy że się wie jak działa proc i Bascom ;) W zasadzie wszystko opisał szymtro , więc skupię się na programiku $large $crystal = 11059200 '$regfile = "420.dat" 'DS89c420 $baud = 19200 On Serial Seriall ' odebrany znak Dim Uli As Byte ' odebrano znak...
Diagram czasowy transmisji jest identyczny jak dla SPI więc Bascom-owe komendy będą działać. FQ_UD służy tylko do zatwierdzenia przesłanych danych zarówno w trybie szeregowym jaki w równoległym. Interfejs szeregowy znajduje się na D7 (pin 25) -SDI oraz na W_CLK (pin 7) - CLK. Oczywiście żeby go uruchomić musisz wpisać odpowiednią kombinację w bajcie...
Pochwal się efektami jak już zadziała :) I mam nadzieje że sie nie machnąłem nigdzie i nie wprowadziłem Cię gdzieś w błąd. Jutro sie wczytam lepiej w DS to w razie czego może coś pomogę jeszcze. W każdym razie nie powinieneś mieć problemów ze sterowaniem tych układów podpiętych szeregowo jeżeli tylko będziesz sterował linią LOAD programowo na początku...
Można, a w BASCOM-ie przerwanie od portu szeregowego nazywa się "serial" i to jego obsługą musisz się zainteresować. Przykładowy kod w BASCOM-ie 51: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 2400 ' predkosc transmisji Dim X As Byte ' deklaracja zmiennych Enable Interrupts ' wlaczenie przerwan Enable Serial ' wlaczenie przerwania portu RS232...
Przyciski będą na drugim Atmaga8. Ten "drugi" sterownik powinien być właśnie nadrzędnym, czyli tam obsługujesz tylko i wyłącznie przyciski i na podstawie ich działania wysyłasz po UART jakiś znak. Część odbiorcza (ta na kasku) powinna działać tylko tak "jeśli dostanę znak A to migam lewym kierunkiem" itd. Rzuć okiem na przykłady w sieci obsługi transmisji...
Dla twoich czujnikow DS1820 czas pomiaru (czyli odczytu temperatury od momentu zainicjowania konversji) wynosi ok 200 ms , czyli mozesz sobie zalozyc ze PC przesle do urzadzenia zadanie wyslania danych co ok 1 sek i powinno byc ok.Mozna by pomyslec tez o nie wysylaniu danych do PC przed ukonczeniem konversji we wszystkich 3 czujnikach (co oznacza ze...
Witam Na wstępie powiem ci że nie da rady zrobić dokładnego stopera na takim zestawie (bascom i wyświetlacz z transmisją szeregową)... Jeżeli już musisz mieć ten wyświetlacz podłączony szergowo, a możesz coś zmodyfikować to ja użyłbym jednego układu do konwersji bcd (zaoszczędziło by to miejsca w procku i strat w czasie [długi program])... Jeżeli ma...
Podałem przykład w Bascom, bo ma bardzo wygodne i maksymalnie uproszczone procedury transmisji szeregowej w tym dla Modbus RTU/ASCII Aby odebrać dane w Modbus wystarczy zastosować polecenie InputBin i masz całą ramke w RTU gotową do przetworzenia, to jeśli chcesz się bawić "ręcznie" Jest też polecenie, które odwali za Ciebie większość pracy - MakeModbus...
jacobsek - gdybys mogl rozwinac mysl n.t transmisji szeregowej etc ? bo akurat w tym wiem dokładnie zero, tak samo jak to zsynchronizować w czasie z timerem? może jakiś przykładowy króciutki kod ?
A myślałem że Bascom da radę. Dokładnie chodzi mi o to aby odebrać te dane, przekonwertować instrukcje, bo danych nie trzeba i wysłać do innego LCD. Czy któryś z kolegów byłby wstanie napisać mi taką wstawkę w assemblerze? Z całą resztą mam nadzieję że sobie z Waszą pomocą poradzę. Bonmis Z tym assemblerem , to może się pośpieszyłem(choć byłoby najprościej)...
Zmniejszyłem prędkość na 57600bps, dopisałem aby wysyłał zawartość 10 elementów z tablicy Ubuf(), oraz aby ponownie wysłał zawartość tej tablicy pod koniec procedury transmit, czyli tuż przed wysłaniem danych do magistrali RS485. W terminalu dostaję: TARGET 7 3 2 10 0 26 0 37 0 0 SENDING 7 2 3 10 0 22 0 37 0 0 Piwerwsza liczba zaraz po słowie "TARGET"...
http://obrazki.elektroda.pl/3973217100_1... Witam! Pewnie wielu z was zetknęło się z problemem braku wystarczającej ilości wyjść w mikrokontrolerze. Mnie także to spotkało. Przy okazji innego projektu zaszła konieczność dołożenia wyświetlacza do już istniejącej płytki sterownika, ale jak to bywa - prawie wszystkie piny miałem zajęte....
transmisja szeregowa bascom bascom transmisja szeregowa transmisja szeregowa
naprawa recovery gramofon napięcie liczniki synchroniczne
Toyota Starlet EP91 4E-FE/4E-FTE – numery pinów ECU, pinout, złącza A/B/C, immobilizer Mercedes X164 – lokalizacja bezpiecznika i przekaźnika oświetlenia komfortu w kabinie