Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 lip 2025, o 05:36


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
    Autor Wiadomość
    PostNapisane: 20 sie 2012, o 16:49 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 306
    Pomógł: 0

    Witam. Mam gotowy skrypt pomiaru temperatury.
    Do portu D pin 7 jest podłączony czujnik DS18B20 w taki sposób :
    /* DS18B20 przyłączony do portu PD7 AVRa */
    #define SET_ONEWIRE_PORT PORTD |= _BV(7)
    #define CLR_ONEWIRE_PORT PORTD &= ~_BV(7)
    #define IS_SET_ONEWIRE_PIN PIND & _BV(7)
    #define SET_OUT_ONEWIRE_DDR DDRD |= _BV(7)
    #define SET_IN_ONEWIRE_DDR DDRD &= ~_BV(7)

    Nie bardzo rozumiem ten sposób konfiguracji. Jestem początkującym.
    Chciałbym wykorzystać port D pin 6 do wejścia z podciągniętym napięciem VCC
    tylko jak to zrobię tak:
    DDRD = 0x00;
    PORTD = 0x02;
    to chyba poprzednia definicja nie będzie działać albo coś się będzie kłócić.
    próbowałem coś wykombinować w ten sposób co wyżej ale nie bardzo wiem jak :(
    ktoś doradzi ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 16:57 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    W pierwszej książce masz bardzo fajne procedury obsługi do DS18x20 - możesz sobie tam zajrzeć ? i sprawdzić co i jak ? porównać ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 17:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 306
    Pomógł: 0

    Niestety nie mam jeszcze tej książki :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 17:34 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    #define CLR_ONEWIRE_PORT PORTD &= ~_BV(7)
    znaczy, że zamiast PORTD &= ~_BV(7) które nic nie mówi używasz sobie w programie CLR_ONEWIRE_PORT - ta nazwa już pokazuje mi, że wyzeruje sobie linie portu 1-Wire.
    _BV(x) to znaczy to samo co (1<<x) czyli wykonanie operacji przesunięcia bitowego w lewo. Bardziej obrazowo gdy np. x=3 operacja ta wygląda następująco 00000001 << 3 = 00001000. Widać przesuniecie 1.
    a |= b; to to samo co a = a | b; i jest to suma logiczna bitowa (OR), sumowane są odpowiadające sobie bity np. 0011 | 0101 = 0111
    a &= b; to to samo co a = a & b; i jest to iloczyn logiczny (AND), operacja wykonywana jest na odpowiadających sobie bitach np. 0011 & 0101 = 0001
    ~ to negacja bitowa (NOT) zamienia bity na przeciwne np. ~0101 = 1010

    PORTD = 0x02; to inaczej PORTD = 0b00000010; i ustawiając bit nr1 wyzerujesz pozostałe jeśli chcesz tego uniknąć to do ustawiania bitów używasz |=, a do zerowania &=

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 19:20 
    Offline
    Użytkownik

    Dołączył(a): 16 lut 2012
    Posty: 166
    Pomógł: 0

    Co nabiorę chęci do nauki C i robię kolejny zryw, trafiam na taki tekst i natychmiast wymiękam. NO KUŹWA, MUSI BYĆ JAKIŚ SPOSÓB ABY TO PRZEJŚĆ.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 19:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2011
    Posty: 582
    Lokalizacja: okolice Wrocławia :)
    Pomógł: 24

    zenowi napisał(a):
    Co nabiorę chęci do nauki C i robię kolejny zryw, trafiam na taki tekst i natychmiast wymiękam. NO KUŹWA, MUSI BYĆ JAKIŚ SPOSÓB ABY TO PRZEJŚĆ.


    Nie nie pękaj kolego Zenowi... ja mam dokładnie tak samo.. jak znajdziesz jakiś działający sposób aby przez to przebrnąć koniecznie się tym pochwal :) .
    Ja tam nie mogę się przestawić z asemblera...... sorry za OT :D

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 20:14 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    zenowi napisał(a):
    Co nabiorę chęci do nauki C i robię kolejny zryw, trafiam na taki tekst i natychmiast wymiękam. NO KUŹWA, MUSI BYĆ JAKIŚ SPOSÓB ABY TO PRZEJŚĆ.


    Ale jaki tekst ??? przecież kolega Krauser w taki skondensowany wprawdzie sposób ale przekazał istotę tych zapisów ;)

    No pewnie że jest sposób, tylko że kolega to tak trochę jak w tym kawale.

    Cytuj:
    Był wielki sztorm, przeżył tylko jeden człowiek,i jakimś cudem dostał się na wysepkę. Po paru tygodniach podpływa do niego motorówka.
    - To twój szczęśliwy dzień, wskakuj na pokład - zapraszają ludzie z motorówki.
    - Nie, wierzę, że Bóg mnie uratuje.
    - Jak chcesz - powiedzieli i odpłynęli.
    Po tygodniu przepływa inna motorówka z tym samym zaproszeniem, rozbitek znów odmawia. To samo powtarza się tydzień później.
    Wreszcie smutny rozbitek umiera z głodu i trafia do nieba, po czym pyta się z pretensją Pana Boga:
    - Dlaczego mnie nie uratowałeś?
    - Jak to nie?! Trzy razy ludzi po Ciebie wysyłałem.


    Podobnie tu, ma kolega książkę, jest forum więc można dopytać o wszystko, ja też zawsze czy na PRIV ale także chętnie OnLine na Skype pomagam ;) ..... a kolega NIE i NIE ;) ....

    Więc jak się można nauczyć gdy się czeka na nie wiadomo co i wciąż narzeka, że C nie jest dla mnie ;)

    Zatem panowie: zenowi i Sonix ;) ... bo widzę, że jest was dwóch .... napiszcie może czego nie rozumiecie, z czym macie problem - ale tak po kolei - przykład po przykładzie. Ja na prawdę postaram się pomóc - zresztą jak widać nie tylko ja ;)

    Aha i nie traktujcie tego jakbym z was ironizował bo znam to z autopsji - zawsze powtarzam każdemu że sam aż 7 razy podchodziłem w ten sam sposób do C i mnie te ptaszki odrzucały ..... ale dlatego sporo postarałem się opisać w książce - więc mamy teraz jakiś punkt odniesienia.

    Jeśli więc np podacie stronę i opiszecie czego nie możecie zrozumieć - bo to nieraz hamuje na maxa w zrozumieniu dalszych rzeczy - to przewałkujemy to może tu jeszcze raz ?

    co wy na to Panowie ? ;)

    ------------------------ [ Dodano po: 4 minutach ]

    Tyle że ja w książce jeśli chodzi o zapis wybrałem TYLKO przesunięcia bitowe - bo jak się czyta te różne zapisy, które mają włączyć stan wysoki na pewnych pinach np PORTA:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    to chyba każdy powie że najlepiej trafia do podświadomości ten ostatni zapis a nie jakieś tam dziwolągi wcześniejsze ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 20:50 
    Offline
    Użytkownik

    Dołączył(a): 16 lut 2012
    Posty: 166
    Pomógł: 0

    Wydaje się, że tu nie ma czego rozumieć lub nie rozumieć. To się da powoli rozebrać. Ale od tego ciągłego powolnego rozbierania gdzie pałeczka gdzie zawijasek lub pokrzyknik ze ściągawką w ręku może w końcu człowieka szlag trafić. No musi być jakiś cwancyk aby tego szybko i sprawnie używać. Wydaje mi się, że istnieje coś na podobieństwo tabliczki mnożenia z którą się przecież nie dyskutuje ani rozbiera rozumowo tylko wykuwa na blachę i koniec. Taki zestaw regułek czy szczegółowych prawideł, które się zakuwa. Chodzi o to, aby ktoś z doświadczeniem zebrał to w sensowną kupę. Nie daj Boże aby były to tzw. ogólne zagadnienia opisowe. Może być metoda pamięciowa, wzrokowa czy dowolna inna, na krzyż czy ze spuszczaniem oczka (poddałbym się nawet seansowi hipnotycznemu) byleby przez to przejść.
    Kiedyś w liceum aby nauczyć się nieregularnych odmian i czasów z niemieckiego zrobiłem sobie, za namową profesora, specjalny różaniec ze słówkami. Wystarczyło przed lekcją odmówić i człowiek był spokojny. Aż przyszedł dzień gdy zacząłem obywać się bez tego germańskiego oprzyrządowania.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 20:55 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    zenowi napisał(a):
    Kiedyś w liceum aby nauczyć się nieregularnych odmian i czasów z niemieckiego zrobiłem sobie, za namową profesora, specjalny różaniec ze słówkami. Wystarczyło przed lekcją odmówić i człowiek był spokojny. Aż przyszedł dzień gdy zacząłem obywać się bez tego germańskiego oprzyrządowania.


    hahahaha no dobre dobre ;)

    ale aprop'os takiego różańca do C .... co byś wolał na pierwszy koralik ? ;) czy mam rozumieć, że kłopot masz z operatorami ? jeśli tak to jakimi ? .... rzuć okiem do książki i powiedz od którego miejsca robi się ciemno - to będziemy próbowali rozjaśniać.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2012, o 23:48 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 gru 2011
    Posty: 449
    Pomógł: 4

    zenowi napisał(a):
    Co nabiorę chęci do nauki C i robię kolejny zryw, trafiam na taki tekst i natychmiast wymiękam. NO KUŹWA, MUSI BYĆ JAKIŚ SPOSÓB ABY TO PRZEJŚĆ.


    Jeszcze jeden cytat:

    zenowi napisał(a):
    Wydaje się, że tu nie ma czego rozumieć lub nie rozumieć. To się da powoli rozebrać. Ale od tego ciągłego powolnego rozbierania gdzie pałeczka gdzie zawijasek lub pokrzyknik ze ściągawką w ręku może w końcu człowieka szlag trafić. No musi być jakiś cwancyk aby tego szybko i sprawnie używać. Wydaje mi się, że istnieje (...)


    Owszem, kolego istnieją sposoby, żeby te pałeczki i zawijaski opanować. Jednym z prostszych, moim subiektywnym zdaniem jest przeczytać od początku do końca całą książkę Nr 1 Mirka.
    Drugim sposobem jest wykorzystanie ściągawek (niektórzy, "młodsi" koledzy powiedzą bryków) do tego, żeby mieć pod ręką wszystkie te "pałeczki, zawijaski i cwancyki".


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 07:14 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 kwi 2012
    Posty: 195
    Pomógł: 0

    Ja powiem tak:
    1.) Musisz się nauczyć operatorów bitowych i bajtowych takich jak(&, | ! ^,~,&&,||,<<,>> itd.) - to jest paciorek
    2.) Zrozumieć kiedy występują , kiedy je stosować i operacji na nich ( wtedy zrozumiesz zapisy |= , &=~) - to jest litania
    3.) Jeżeli chcesz spać spokojnie i w razie czego sobie przypomnieć co i jak niestety ("STETY") musisz się zaopatrzyć w książkę Mirka - to jest Biblia ( tam masz modlitwy paciorki i litanie )



    Ostatnio edytowano 21 sie 2012, o 10:33 przez kidcowboy, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 08:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 cze 2012
    Posty: 102
    Pomógł: 2

    Ustawienie bitu (czyli stan "1") na pozycji 4 w takim bajcie 00000100

    "1" na czwartej pozycji wygląda tak 00001000 - to jest maska do operacji bitowych.

    Aby ustawić bit na czwartej pozycji musisz wykonać sumę bitową obu bajtów (sumowanie podobne jak w arytmetyce: 0+0=0; 0+1=1; 1+1=1)

    00000100
    00001000 OR
    ------------------------------------
    00001100


    Aby teraz wygasić bajt na pozycji 4 musisz wykonać iloczyn (AND) bajtu z ZANEGOWANĄ maską (czyli 11110111)
    Iloczyn bitowy jest analogiczny do iloczynu arytmetycznego (0*0=0; 1*0=0; 1*1=1)

    czyli:
    00001100
    11110111 AND
    ------------------------------------
    00000100


    Jak wiesz ten bajt, na którym wykonujemy operacje to może być rejestr kontrolujący port mikrokontrolera.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 12:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 306
    Pomógł: 0

    Widzę że temat się rozkręcił :)
    ale już sobie poradziłem, metodą prób i błędów :)
    tak mi to wyszło:
    Kod:
    DDRD |= _BV(PD6); //ustawiamy port PD0 jako wyjście
    PORTD &= ~_BV(PD6); //i ustawiamy to wyjście w stan wysoki (dioda nie świeci się)
    DDRC &= ~_BV(PD5); //PC0 jako wejście
    PORTC |= _BV(PD5); //które podciągamy do plusa

    // Włączenie podświetlanie wyświetlacza:     
       if(!(PIND & 0x20))     //jeśli wejście jest w stanie niskim
       {
       PORTD |= _BV(PD6);      //to włącza podswietlenia
       _delay_ms(6000);      //świeci 6s
       PORTD &= ~_BV(PD6);   //wyłącza podświelenie.


    Teraz kombinuje jak zrobić warunek że jeżeli raz naduszę przycisk to wykona się te podświetlenie a jak 2 razy to podświetlenie i inne funkcje. Kombinuje coś z pętlą for ale coś mi nie wychodzi :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 14:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 306
    Pomógł: 0

    Niestety Mirka nie :(
    mam symfonia c++ standard dwa tomy i jezyk c dla mikrokontekstów avr od podstaw do zaawansowanych aplikacji.
    trochę w necie szperam itp.
    a tu zastosuje składnie _BV(PDx) ponieważ już większość kodu w nim jest.
    O drganiach tez wiem ale nie brałem ich jeszcze pod uwagę
    a ta trzecia sprawa to zamiast delay można wstawić pętlę bodajże for o ona by robiła za czekanie 6s i za wywołanie kolejnej funkcji ale gdzieś tam wyczytałem ze takie zastąpienie funkcji delay jest złym rozwiązaniem :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 14:36 

    Pomógł: 0

    Niestety "Język C dla m...... od podstaw do ...." jest dla bardziej zaawansowanych już, sporo tam skrótów myślowych ;).
    Sam uczę się C z dwóch książek, "Język C, szkoła programowania" S. Pratha i "Język C nowoczesne programowanie".
    Książki Mirka mam obydwie, z pierwszej można fajnie się "wprowadzić" w stan C, ale jednak samego C lepiej uczy mi się w oderwaniu od mikrokontrolerów. Na zasadzie wykładów i ćwiczeń jak u Praty :). Uczelniany tryb, pozwala troszkę łatwiej systematyzować wiedzę, bo zaczynamy od "hello world" przechodząc przez poszczególne etapy i dzięki temu nie rozpraszają nas po drodze jakieś niepoznane dotąd polecenia itp.
    Mnie osobiście się tak lepiej uczy ;). Książki Mirka traktuje jako kolejny etap po ogarnięciu podstaw z C.



    Góra
      
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2012, o 16:44 
    Offline
    Użytkownik

    Dołączył(a): 16 lut 2012
    Posty: 166
    Pomógł: 0

    Czy ktoś z Was próbował tego? http://videokurs.pl/kurs-c.php Jak dotąd na nic lepszego nie trafiłem. p.Włodarczyk robi to w taki sposób, że nie da się nie rozumieć. Ponadto forma pogawędek jest bardzo przyjemna. Nie wiesz kiedy wchodzisz w temat i jesteś zaprzedany w najbardziej pozytywnym tego słowa znaczeniu. Cały kurs kosztuje 39zł. Przecież dziś to nie pieniądze. Tu naprawdę C++ stoi otworem i naprawdę wszystko jest od zera.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sie 2012, o 07:38 

    Pomógł: 0

    Szkoda, że nie ma do C ;), chwilowo nie chce sobie mieszać w głowie ;).



    Góra
      
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO