Witam,
Dzisiaj taki może niby banalny odcinek poradnika bo dotyczyć on będzie kodów ASCII, chociaż w głównej mierze ma odpowiedzieć na pytania typu: " jak wysyłać zmienną czy liczbę ? " za pomocą różnych mediów czy też do różnych mediów że tak powiem. Poradnik wziął się stąd, że wiele osób, początkujących osób, które pomimo to iż opanowały już teoretycznie takie zagadnienia jak tablice, łańcuchy znakowe, przesyłanie stringów itp ... nagle stają przed wielkim dylematem gdy mają wysłać po prostu zwykłą, najzwyklejszą w świecie liczbę. Często też się wtedy okazuje, że to co słyszały gdzieś tam piąte przez dziesiąte na temat kodów ASCII czy kodowania ASCII to jest nic. A właśnie brak zrozumienia tego banalnego tematu tak "od podszewki" powoduje później sporo problemów i frustracji. Dlatego jeśli masz czas, i jesteś uzbrojony(-a) w cierpliwość do moich opowieści w poradnikach wideo to serdecznie zapraszam ;)
poniżej wcale nie krótki filmik:
;)
Znam prostszy sposób zamiany małych liter na duże i odwrotnie. Wystarczy odjąć lub dodać stałą wartość 32 do dziesiętnej reprezentacji znaku ascii(np. Z = 122 a z = 90). Sprawdź sam lub sama. Można to zrobić również na wartościach hex i bin.
OdpowiedzUsuńTylko że kolega chyba nie rozumie do końca - że to jest to samo ;) ... poza tym proponuję nieco uważniej słuchać tego co mówię - a mówiłem, że sposobów zawsze jest mnóstwo ;)
UsuńECHO w tradycyjnym porcie nie potrzebuje MAX232 ani żadnej innej przejściówki. W najprostszym wydaniu to zwarte piny 2 i 3 (ew. przez rezystor).
OdpowiedzUsuńTak to oczywiście racja ... ja się rozpędziłem w tym zakresie z tym MAX232 ... no ale jeszcze pozostaje i tak kwestia, że trzeba przede wszystkim mieć ten stary port w kompie ;)
Usuń1) Zmienił się charakter wykorzystania komputerów, więc i zmienił się sprzęt. Myślę że osoby wykorzystujące fizyczne porty komputerów typu LPT i COM to ułamek procenta wszystkich użytkowników komputerów. (W przeciwieństwie do czasów kiedy komputery raczkowały).
Usuń2) Chciałbym przestrzec przed przejściówkami po 10 PLN na znanych portalach aukcyjnych, mam 2 prolifica i nie do końca działają. Tzn. działają w zależności od sprzętu do którego się podpinamy. Oscyloskop pokazał że daleko tym przejściówkom do standardu +/- 3..15 V ( u mnie było -0,5V i +7V, a co gorsza wejście też nie pozwala na wyższe napięcia, co może uszkodzić podłączone urządzenie).
Odnośnie tych przejściówek na scalakach PLxxx też mam mieszane uczucia - nawet te, które powinny działać w standardzie TTL bardzo często ludziom po prostu w ogóle nie działają ... nie wiedzieć czemu. A gdy się sięgnie np po FT232R lub podobny to nagle jakby wszystkie problemy ręką odjął....
UsuńI to jest w programowaniu najlepsze, że sposobów jest tyle ilu programistów ;-).
OdpowiedzUsuńDokładnie ;) ...
UsuńTo teraz przydalby sie poradnik o odbiorze danych przez uart i porownywaniu 2 stringow. Potrafie sterowac silniczkiem ,czy dioda led poprzez pojedynczy klawisz na klawiaturze ,ale jesli chodzi o przeslanie "komendy" w postaci tekstu to nie pomogl mi nawet greenbook i dodatkowa funkcj do odbioru stringa. Mysle ,ze to bylby dobry temat na kolejny poradnik jak juz jestesmy na fali z ASCII :)
OdpowiedzUsuńNo to ja się dziwię, że jeśli kolega ma Greenbooka ... i ostatni rozdział o parsowaniu danych z UART'a .... to nie dopytał np na naszym forum albo mnie - czego nie może tam zaskoczyć/zrozumieć i się poddał ? :( .... szkoda - bo to warto zaskoczyć .... wtedy życie staje się prostsze - poważnie, gdy się obsługuje uart (odbieranie) na zdarzeniach
UsuńWiesz Mirku ,nie pytalem bo ciezko mi sformuowac samo zapytanie. Po prostu chyba jest jeszcze na to za wczesnie, musze wiecej pocwiczyc z bb. Pamietam jak nie umialem zrozumiec decodera RC5 ,a potem samo przyszlo tak z nienacka podczas kapieli w wannie :) , do tego zalapalem tez wtedy przesuniecia bitowe, dzieki tym kilku linijka z wyluskiwaniem adresu ,komendy i toogle bitu. Wiem ,ze ciezko w to uwierzyc ,ale to tak jakos nagle przyszlo. Mysle ,ze tu bedzie podobnie, a jak juz bede mial konkretne pytanieto na pewno odezwe sie na forum ,pozdrawiam.
OdpowiedzUsuńjasne - jak coś to wal z pytaniem śmiało jak w dym - po to jestem żeby pomóc w miarę moich skromnych możliwości
UsuńWitam. Mój poziom wiedzy, -"0", ale przyrasta!
OdpowiedzUsuńSpędziłem uczciwie godzinę czasu słuchając wykładu. Czy dobrze rozumiem ?
Korespondencja danych pomiędzy wszelkimi urządzeniami TYLKO w kodzie ASCI ?
Czy inny sposób ?
A w obrębie programu ........, właśnie jak to powiedzieć.
Dziękuję , pozdrawiam.
Szczególnie dziękuję że nie było nic o rezystorowym dzilniku napięcia!
Wymiana danych w trybie ASCII pomiędzy urządzeniami to jedna z opcji a nie jedyny sposób ;) Pewnie że są inne - chociażby komunikacja w trybie binarnym ...
UsuńW obrębie programu ? ... sorki tu nawet nie wiem za bardzo jak odpowiedzieć bo nie rozumiem pytania ... więc proszę ew doprecyzować.
Witam ,ja opanowałem już w miarę UART ,ale chciałbym pójść dalej niż Terminal. Czy można prosić o wskazówki odnośnie napisania małej aplikacji na PC ( prosta rzecz ze 2 przyciski ,wynik pomiaru ,oraz okienko z wyborem COM i prędkości) ,chodzi mi o to w czym zacząć? ,widziałem że pan to w Delfi coś skrobie. A czy jest jakaś wersja Eclipsa ,która obsługuje pisanie prostych aplikacji na PC lub plugin do niego ? , wcześniej troche bawiłem się w C++ i Visual Studio (ale ta opcja odpada). Mógłby pan polecić jakąś drogę ,wybór środowiska IDE ,no poradnik to byłoby super ,ale to pewnie trwałby z 10 godzin :) ,choć napewno bym obejrzał. :)
OdpowiedzUsuńGwarantuję, że i o tym będą poradniki - ale ... ale na wszystko musi nadejść właściwy czas ...
UsuńOk ,czekam z niecierpliwoscia. Jak narazie poradzilem sobie w visualu ,okienko jak z czasow win95 :) ,ale cel osiagniety. Pewnie sa lepsze edytory ,ale narazie radze sobie z tym co mam, pozdrawiam.
UsuńBardzo przepraszam za odgrzebywanie tematu, ale mam problem, którego nie rozwiązuje film :( :
OdpowiedzUsuńmuszę wysłać zmienną w hexie (ale nie wyświetlić stringa, który reprezentuje tego hexa, tylko dokładnie tą liczbę)
Da się to zrobić wysyłając np. zamiast put_string("255") put_string("/255"), jednak na miejscu 255 potrzebuję zmiennej, a nie sztywnej liczby :( pomocy?
Ten poradnik był jako uzupełnienie do książki no bo jednak jakieś podstawy żeby go zrozumieć to trzeba znać .... A po tym pytaniu widać, że kolega jest jeszcze KOMPLETNIE ale to kompletnie na bakier z podstawami C ... dlatego polecam zacząć od książki:
Usuńhttp://atnel.pl/mikrokontrolery-avr-jezyk-c.html
a potem ew pytać - bo teraz to bym tu musiał pisać znowu to co w książce
ok
OdpowiedzUsuń