Mam konwerter i2c do wyświetlacza. Jak mam wysłać poprzez TWI, jakąś komendę do wyświetlacza? Pomijając konfigurację rejestrów itp, jaka informacja, jaki bajt powinien zostać wysłany, aby np. aktywować wyświetlacz i włączyć mruganie kursora? Skoro w rejestrze TWDR mieści się bajt, a sam wyświetlacz ma pinów od D0 do D7 + RS, E itp?
@keton22: Dzięki. Problem w tym, że jest sama nota katalogowa jest do samego układu PCF8574, a nie ma tam nic związanego z wyświetlaczem LCD. Dodatkowo w Internecie pełno jest rozwiązań na to zakichane arduino.
@zetisdead: Hm, ok - nie rozumiem właściwie tego - skoro wyświetlacz ma piny D0 - D7 oraz RS, E, RW to jak mogę wysyłać jakieś komendy posługując się 8 bitowym typem danych? Zakładając, że chcę ustawić na wyświetlaczu piny D0 -D7 oraz E na stan wysoki to jak to ma wyglądać? Wysyłam najpierw dane ustawiające piny D0-D7, a później wysyłam znowu dane ustawiające pin E?
Wszystkie piny konwertera podpięte są do wyświetlacza. W podanym linku jest dokumentacja ale dla układu PCF8574, a nie dokumentacja tego konkretnego konwertera. Znany jest mi tryb 8 bitowy.
@zetisdead: Ok, tak też przypuszczałem, bo tryb 4 bitowy jest mi znany. Pytam, bo mój konwerter ma podpięte WSZYSTKIE piny do wyświetlacza, więc po coś tak został skonstruowany.
@zetisdead: Poszukam takiego schematu, bo właśnie też mi przyszło do głowy, że przecież musi być jakieś mapowanie czy coś tego typu. Niestety na botlandzie tego nie ma. Jeżeli nie znajdzie to będę miernikiem sprawdzał.
@zetisdead: Co tu kurde jest nie tak? klik Sekwencja: -> start -> wyślij adres -> wyślij dane -> zapal led (nie zaświeca się, bo pętla w funkcji write kręci się
@zetisdead: Coś mam pomieszane z tymi adresami. Wcześniej znalazłem, że domyślny adres to 0x27, a teraz jak czytałem w dokumentacji dla układu PCF85741(taki mam na konwerterze), to jest napisane, że należy jako adres wysłać 0x40 (adres + write).
@Analityk: @Tymian: dziękuję, rozwiązanie z diodą jest mi znane, dlatego zapytałem o rozwiązanie z mosfetem typu n. O ile w prostym testowym układzie udało mi się to zmontować o tyle w układzie, który podlinkowalem nie bardzo.
@tank_driver: @Tymian: jednak pisanie tutaj w godzinach wieczornych to chyba nie jest dobry pomysł. Napisałem wyraźnie co chce zrobić. Chce wsadzić n mosfet do układu jako zabezpieczenie przed odwrotną polaryazacja. Kolega @tank_driver chyba nie do końca ogarnął. To że mosfety w układzie służą do zmiany kierunku obrotów to ja doskonale wiem - sam to projektowalem, ale gdybyś przeczytał artykuł z linku, który podesłałem to dowiedzialbyś się że
@tank_driver: Kurde człowieku nie czepiaj się słówek (╯︵╰,) Jasne że samym mosfetem nie da się zmienić kierunku pracy silnika. Pisałem w kontekście mojego układu, jeden mosfet do cewki, jeden do pwm. Nie o tym był mój pierwszy post, tak w ogóle.
@tank_driver: Co jest nie tak w tym rozwiązaniu? Prąd przez ten przekaznik będzie płynął 2 razy na dobę przez 5 sekund(być może nawet bez pwm), w czym Ty widzisz problem?
@bielu000: I nie jestem wrażliwy, po prostu moje pytanie dotyczyło całkowicie czegoś innego - n mosfet jako zabezpieczenie przed odwrotną polaryzacją zasilania, a nie jak robić start, stop, miękki start i zmianę kierunków.
A i skoro moje rozwiązanie działa to NIE jest błędne, a co najwyżej nieoptymalne, chociaż w tym przypadku to nawet nie wiem czy jest sens nad tym dyskutować. Dziękuję za zapewne szczere chęci pomocy, ale proszę jak coś to odpowiadaj na pytanie z pierwszego posta - dyskusje na temat zastosowanego tutaj przekaznika po prostu odpuść, gdybym potrzebował pomocy w tej kwestii zapewne zadałbym odpowiednie pytanie.
Polecacie jakieś moduły wifi? Mogą być zarówno samodzielne jak i do komunikacji z atmegą. Jak macie coś sprawdzonego z Chin to chętnie przygarnę linka :)
A właściwie to dlaczego wszyscy się tak nastawiają że będzie poruszony wątek Azora Hauhau i Światłonoścy? Kiedykolwiek wcześniej w ogóle ten wątek się pojawił? Pamiętajcie, że serial pomija od cholery postaci z książek - Lady Stoneheart, Zimnorękiego. Twórcy, żeby nie mieszać w głowie hamburgerom, dla których to przede wszystkim jest serial, rezygnują ze skomplikowanych wątków i upraszczają je.
Więc nawet jeśli kiedyś mimochodem zostało wspomniane, że jest jakiś Azor, który ma zajebisty
@Pippo: Ser Arthur Dayne pojawił się właściwie tylko na chwilkę w serialu, ale jakoś zdążyłem go przez tą chwilę polubić. Szkoda, że akcja z nim potoczyła się w ten sposób :/
Mam układ, w którym za pomocą atmegi 168 chcę sterować silnikiem DC 12v z wkrętarki. Cały proces sterowania silnikiem oparty jest na dwóch tranzystorach oraz przekazniku. Jeden tranzystor steruje pracą silnika, drugi kierunkiem obrotu silnika. Silnik ten pobiera około 3A prądu więc dość sporo. Powoduje to, że całe okablowanie na płytce stykowej dość mocno się grzeje, oraz podczas uruchamianie silnika jest widoczny spadek napięcia na mikrokontrolerze (przygasa podpięta dioda). Jak możnaby optymalnie
Implementuję pewne rozwiązanie z wykorzystaniem biblioteki boost::asio.
Załóżmy, że mam grupę wątków, gdzie każdy odpala io_context.run(); Zakładając, że będą to dwa wątki, to jednocześnie będą mogły być obsługiwane np. dwie akcje odczytu/zapisu z socketów w jednym czasie. (nie oznacza, że liczba połączeń == 2).
@lionbest: Cześć. Wydaje mi się, że bufor per połączenie to chyba nie do końca dobra opcja. Bo gdy np. serwer będzie obsługiwał 1000 połączeń, gdzie rozmiar bufora to np. 1024 bajty, to ta pamięć szybko się skończy. Dodatkowo co w w sytuacji, gdzie w systemie nie można korzystać z pamięci wolnej? Ciężko byłoby zaalokować pamięć na nowe połączenie. Moim zdaniem chyba lepiej zrobić pulę np. 4 buforów, zakładając, że serwer
@lionbest: Masz rację, ma to sens. Niemniej jednak jakoś cały czas zastanawia mnie ten lazy loading buforów, czyli zajęcie bufora z puli w momencie kiedy to będzie potrzebne.
Załóżmy, że mam coś takiego: - serwer akceptuje połączenie (4 bufory, 4 wątki odpalają iocontext->run()) - na każdym sockecie
@lionbest: Hmm...chyba póki co zrezygnuje z puli buforów, i przypisze po prostu bufor per połączenie, niemniej jednak temat zaintrygował mnie na tyle, że chciałbym wiedzieć jak to zaimplementować w systemie gdzie ilość tych zasobów jest znacznie ograniczona. Masz może jakieś ciekawe przykłady kodu z uzyciem boost asio? Nie mówię o tych przykładach z dokumentacji, tylko np. jakieś projekty open source gdzie mógłbym sobie podejrzeć? Ewentualnie jakieś best practicies?
Jestem członkiem jednej z polskich grup na fejsbuku dotyczącej C++ i powiem wam, że nie spodziewałem się, że to będzie taka trochę patologiczna grupa. Jest tam kilku gości, którzy uważają się za nie wiadomo kogo - oczywiście swojego skilla określają na top of the top. Buta i arogancja, która bije z każdej ich wypowiedzi w stronę jakichś członków, którzy zadają pytania gdy czegoś nie umieją, przekracza kilkukrotnie poziom jaki można spotkać na
@ericflat: Cholera wie, właściwie nic tam ciekawego nie ma oprócz opierdzielania ludzi, którzy przychodzą z jakimiś pytaniami (błahymi czy nie to już inna sprawa).
Mam najlepsza narzeczoną na świecie (。◕‿‿◕。) W tym tygodniu się jej oświadczyłem, wczoraj spędziliśmy fantastyczny dzień kobiet, a dzisiaj ramach podziękowania moja różowa zrobiła mi niespodzianke i właśnie jedziemy poszaleć na tor w Poznaniu (。◕‿‿◕。) Zarazilem ja pasja do BMW, teraz się zamienilismy i ona prowadzi. Tyle funu jej daje, gdy tył ucieka, a ja czuję się bardzo
@chalwaklb: Coś w tych BMW jest... też nigdy wcześniej bym nie pomyślał, że zakupię BMW - trafiła się bardzo dobra okazja i cóż.....powiem szczerze, że jestem mega usatysfakcjonowany, a jeździłem już wieloma samochodami. Nie wiem dlaczego, ale szczególnie podoba mi się ten środkowy, wysoki tunel.. :)
Orientuje się ktoś jak wygląda rozmowa techniczna w Motoroli czy Ericssonie w Krakowie? Jakie pytania padają? Zadania z programowania czy jakieś łamigłówki? Programowanie na sprzęcie czy na kartce? ( ͡°͜ʖ͡°)
Chciałbym zagłębić się troszkę bardziej w tajniki assembly czy assemblera (zwał jak zwał), jednakże gro materiałów typu książki czy video skupiają się raczej na językach typu C# czy Java (co w sumie zrozumiałem bo assembly to trochę nisza), więc może macie jakieś dobre pozycje do polecenia? Na helionie znalazłem właściwie tylko jedną książkę : klik aczkolwiek opinie są takie sobie.
@takiego: Oczywiście, że masz rację, jednak na potrzeby pogłębiania wiedzy z reverse engineeringu wiedza z assembly moim zdaniem przyda się jak najbardziej.
@takiego: @KimZechJestes: Dzięki serdeczne za konkretne materiały! Właśnie czegoś tego typu szukałem.
@gazowany_smalec: Poradnik gyna oglądałem, całkiem ok, ale szukam czegoś więcej. Swoją drogą "gyncwel"? Czymś sobie zasłużył na takie określenie? :) Pytam z czystej ciekawości :)
Znalazłem w domowym garażu starą piłę spalinową. Piłę, która nie jest już używana. Zastanawiam się, czy nie zrobić by sobie takiego powiedzmy modelu RC, jakiegoś samochodziku terenowego, zdalnie sterowanego :)
Zastanawiam się tylko od czego można by wykorzystać części typu koła, hamulce, może jakieś łożyska, jak wykonać przekładnię kierowniczą itp :) Konstrukcję raczej sam bym sobie wyspawał bazując na jakimś modelu samochodziku typu "buggy", tylko że w mniejszej skali.
@Ardeo: Układ będzie zasilany z akumulatora, dość dużego. W razie gdybym go przenosił i odłączał chce mieć takie jakby podtrzymanie pracy mikrokontrolera. Swoją drogą za pomocą tranzystora Q1 jestem w stanie sterować prędkością obrotową tego silnika, czy raczej nie ma takiej możliwości w tym układzie? Jeżeli tak, to czy to jest związane z tym tzw. PWM? Obiło mi się to o uszy, ale jeszcze nie zagłębiałem się w to.
@QBA__: @defoxe: I w zasadzie jeszcze jedno pytanie - jak widać na schemacie wiele połączeń się krzyżuje. Przypuszczam, że da się to jakoś zoptymalizować jednakże domyślam się, że jakieś połączenia krzyżowe wyjdą. Jak można "obejść" to np. na ręcznie robionej płytce, lub takie uniwersalnej? Czy są jakieś techniki na robienie "przelotek"?
@defoxe: Dzięki wielkie za pomoc. Spróbowałem wygenerować PCB w tym programie EasyEDA, wraz z AutoRouterem na jednej warstwie i faktycznie się da.
Mam jeszcze jedno pytanie odnośnie PWM. Nie do końca jeszcze ogarniam co się w tej dokumentacji dzieje, ale czy dobrze rozumiem, że działa to na zasadzie: - timer/Counter(załóżmy 8 bitowy) liczy od 0 od 255. - w rejestrze OCR0(?) ustalam pewną wartość np. 125 która będzie porównywana z
Dodatkowo w przypadku Atmegi16A robiąc PWM na Timer0 powinienem podpiąć wyjście PB3(OC0, AIN3), a korzystając z Timer1 mogę użyć wyjść PD4(OC1B) oraz PD5(OC1A)?
@defoxe: @QBA__: Czy znacie może jakieś źródła gdzie mógłbym poczytać o jakichś "best-practices" odnośnie programowania takich układów? Czy są jakieś specjalne techniki np. na odczytywanie stanów wejść inne niż seria ifów w pętli głównej itp? :)
@QBA__: Dzięki wielkie mirku za obszerny opis :) Część z tych źródeł kojarzę, zwłaszcza Mirosława Kardasia i faktycznie ma taki zwyczaj, że dużo gada ale nie na temat, aczkolwiek wiedzę ma ogromną moim zdaniem :)
Czytam sobie dokumentację Atmegi48/88/168 i naszło mnie jeszcze jedno pytanie: W konfiguracji Timera jest coś takiego:
@QBA__: Poza tym czy dobrze rozumiem, że aby ustawić załóżmy tryb PWM, może być taka opcja, że trzeba zmienić coś w dwóch rejestrach kontrolnych timerów?
Np. sugerując się wspomnianą dokumentacją -> ustawienia trybu preskalera dostępne są w rejestrze kontrolnym TCCR0B, a w TCCR0A nie ma takiej opcji. Rozumiem, że normalną sytuacją jest, że np. część ustawień timera jest w jednym rejestrze, a część w drugim?
Mirki robię sobie schemat elektryczny, taki mały układ z mikrokontrolerem, przekaźnikiem, kilkoma tranzystorami oraz silnikiem DC. O ile na płytce stykowej wszystko jest oki, to zastanawiam się nad przeniesieniem tego na do jakiegoś programu tak aby mógł sobie taki schemat wydrukować. Problem w tym że niezależnie od tego jak poprowadzę ścieżki to wychodzą mi połączenia krzyżowane. Czy jest jakaś możliwość poprowadzenia ścieżki "jedna nad drugą" bez płytek wielowarstwowych?
Zastanawiam się, czy zazwyczaj twórcy malware, do funkcji kryptograficznych swojego oprogramowania korzystają z gotowych, publicznie dostępnych bibliotek czy piszą jakieś własne rozwiązania? Znacie jakieś źródła odnośnie takich informacji?
@asciiterror: jeśli już to prędzej statycznie wkompilowują liba w malware, albo biorą potrzebny zestaw plików np. z https://www.cryptopp.com i kompilują razem z projektem
Mirki miałem taką sytuację, że remontowałem silnik w motocyklu. A właściwie remontował mechanik. Silnik finalnie otrzymałem jakoś w lipcu zeszłego roku. Był u mechanika około 10 miesięcy. Oczywiście nie obyło się bez przepychanek z mechanikiem, bo generalnie grał w ciula(zwlekanie z terminem, kłamstwa na temat niedostępności części, gdzie na własną rękę znalazłem u jego znajomego handlarza poszukiwane części, których on "szukał" od kilku miesięcy), jednakże ostatecznie dogadaliśmy się w spokoju.
@bielu000: Jak mechanik ma trochę godności to powinien ci to zrobić bez problemu za darmo, zwłaszcza, że pewnie zostawiłeś u niego sporo pieniędzy, a wymiana tego uszczelniacza to kwestia 15 minut i -+40zł w zależności od motocykla. A druga sprawa, to jeżeli był robiony kompletny remont silnika, to wszystkie uszczelniacze powinny zostać wymienione. Bardzo mało prawdopodobne, że nowy uszczelniacz padł po 600km. Zakładam, że nie został po prostu wymieniony (
@bielu000: Tam mógł jakiś nietyp być, gość na skróty dobrał jakiś metryczny i nie wydał, sprawdź sobie w manualu wymiary to będzie widać jak zdejmie przy Tobie zdawczą i seger. Przy okazji niech przy Tobie pomacha wałkiem czy nie ma luzów.
Podrzuci ktoś właściwy trop?
#programowanie #mikrokontrolery
Hehe, nawet śmiesznie to zabrzmiało :)
Konwerter -> klik
Wszystkie piny konwertera podpięte są do wyświetlacza. W podanym linku jest dokumentacja ale dla układu PCF8574, a nie dokumentacja tego konkretnego konwertera. Znany jest mi tryb 8 bitowy.
Wszystkie piny konwertera są podpięte do wyświetlacza. Skoro można sterować tylko w trybie 4 bitowym, to po co wszystkie piny są podłączone?
P0 -> RS
P1 -> RW
P2 -> E
P3 -> ???
P4
Sekwencja:
-> start
-> wyślij adres
-> wyślij dane
-> zapal led (nie zaświeca się, bo pętla w funkcji write kręci się