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 w 2025? 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 3 maja 2025, o 03:43


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Ten wątek jest zablokowany. Nie możesz w nim pisać ani edytować postów.  [ Posty: 40 ]  Przejdź na stronę 1, 2  Następna strona
    Autor Wiadomość
    PostNapisane: 31 sie 2018, o 20:22 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Witam
    Proszę o podpowiedź co w tym kodzie na Attiny 2313, trzeba poprawić, aby się skompilował.
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Pozdrawiam

    Adela



    Ostatnio edytowano 31 sie 2018, o 20:29 przez Ada57, łącznie edytowano 4 razy

    Góra
     Zobacz profil  
     
    PostNapisane: 31 sie 2018, o 20:24 
    Offline
    Moderator
    Avatar użytkownika

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

    Uprzejmie proszę sprecyzować i PORZĄDNIE zadać pytanie - czyli np podać komunikaty błędów a nie liczyć na to, że ktoś będzie zgadywał ... no jak ... TAK można zadawać pytanie i nie napisać o co chodzi ?

    _________________
    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  
     
    PostNapisane: 31 sie 2018, o 20:31 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Załączyłam obrazek jaki wyświetlił kompilator ale się nie pokazał.
    Wyświetla error w 8 linii ,1 columnie.
    Error 1 expected identifier or '(' before 'while',line 8,column 1



    Góra
     Zobacz profil  
     
    PostNapisane: 31 sie 2018, o 21:39 
    Offline
    Użytkownik

    Dołączył(a): 29 mar 2012
    Posty: 595
    Lokalizacja: Jaworzno
    Pomógł: 39

    A gdzie w Twoim kodzie jest blok głównej funkcji?
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    chyba że coś przed nami ukrywasz :shock:


    Autor postu otrzymał pochwałę

    _________________
    Pozdrawiam
    PP



    Góra
     Zobacz profil  
     
    PostNapisane: 31 sie 2018, o 21:49 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Pobrałam go z tej strony.
    Teraz patrzę , są dalsze części.

    http://codeandlife.com/tags/attiny2313/

    https://www.google.com/search?client=fi ... wcEeHw3w08



    Góra
     Zobacz profil  
     
    PostNapisane: 31 sie 2018, o 22:11 
    Offline
    Użytkownik

    Dołączył(a): 29 mar 2012
    Posty: 595
    Lokalizacja: Jaworzno
    Pomógł: 39

    Napisz może co chcesz zrobić lub jaki efekt chcesz uzyskać, to łatwiej będzie pomóc, bo debatowanie nad wycinkami jakichś niekompletnych kodów z internetu nie ma sensu.


    Autor postu otrzymał pochwałę

    _________________
    Pozdrawiam
    PP



    Góra
     Zobacz profil  
     
    PostNapisane: 31 sie 2018, o 22:16 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Chcę aby dwie diody na Attiny 2313A ,lub innym uC,na wyjściu 15 i 16 (PB3 i PB4 migały na przemian co 64 sekund ,duty 50%.
    Stan niski 64 sek,stan wysoki 64 sek.,lub zbliżony do 64 sek.
    Najlepiej bez delay,sprzętowo tj.PWM,CTC., nie programowo.
    Tak aby duty 50% było jak najdokładniejsze.
    Co lepiej dać delay,czy sleep,jaka jest między nimi róznica?.
    Licznik jest chyba lepszy dla dokładności duty 50% ,jak delay.



    Ostatnio edytowano 1 wrz 2018, o 16:08 przez Ada57, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
     
    PostNapisane: 1 wrz 2018, o 13:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 maja 2015
    Posty: 61
    Pomógł: 2

    Widzę ze dalej męczymy ten sam temat :D

    proszę link:
    https://forbot.pl/blog/kurs-stm32-7-lic ... pwm-id8459

    teraz się chyba już rozjaśni :lol:

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

    To nie jest gotowiec ale pewien sposób podejścia do zadania :D


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 14:09 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Jak zmienić ,if (Sekundy == 60),na if(Mikrosekundy==60).
    Napisałam, if(Mikrosekundy==60),ale się nie skompilowało,
    if (Sekundy == 60) się skompilowało w kodzie.



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 14:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    Koleżanko, ale Ty orientujesz się chociaż trochę w tym całym programowaniu? Czy próbujesz na siłę coś napisać łącząc znalezione w internetach kawałki kodów?

    1) masz zadeklarowaną zmienną Mikrosekundy?
    2) masz skonfigurowany timer w ten sposób, żeby odliczał mikrosekundy? Z tego, co się orientuję, trudne będzie to zadanie na AVR. Ale może co 10 mikrosekund się uda?
    A w ogóle, w którym kodzie są te sekundy i mikrosekundy?



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 15:37 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Ściągam z netu kody i próbuję je ulepszyć ,aby miały jak najbardziej zbliżone do idealnego wypełnienie 50%,tj.duty Cycle 50%.
    W tym kodzie chce zamienić 64 sekund w linijce nr.14,na 64000000 us mikrosekund.

    http://diycenter.acid19.linuxpl.com/pri ... &item_id=3

    https://www.avrfreaks.net/forum/tut-c-n ... s?page=all



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



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 17:20 
    Offline
    Moderator
    Avatar użytkownika

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

    Ada57 napisał(a):
    Ściągam z netu kody i próbuję je ulepszyć

    Tak nieśmiało zapytam, a może lepiej nauczyć się takich podstaw programowania i samemu napisać kod ? Zapewniam, że to podstawy podstaw w C i mikroprocków AVR - więc nawet dużo się uczyć nie trzeba. Bo widać, że

    Ada57 napisał(a):
    i próbuję je ulepszyć


    ... że to coś nie idzie za dobrze bez znajomości podstaw

    _________________
    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  
     
    PostNapisane: 5 wrz 2018, o 21:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    Ale po co zamieniać 60 sekund na 60 000 000 mikrosekund, jeżeli to jest to samo?
    Zresztą, jakiego typu musi być zmienna, żeby pomieściła taką wartość? Zadeklarowałaś zmienną Sekundy typu char, czyli... zmienną, która może przyjąć wartości od 0 do 255. Trochę mało.
    Z drugiej strony, co się tak uparłaś na te mikrosekundy? Jeżeli najważniejsze dla Ciebie jest to, żeby czas stanu niskiego i wysokiego były równe, to co za różnica, czy będzie to 59,9999999/59,9999999 czy 60,0000001/60,0000001?



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 21:37 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    W telewizorach LCD, i nie tylko ,dokładne 50% ma znaczenie.



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 21:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    W obydwu podanych przeze mnie przypadkach jest dokładnie 50%.



    Góra
     Zobacz profil  
     
    PostNapisane: 5 wrz 2018, o 22:11 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Chodzi o rozdzielczość,jest inna w sekundach a inna w mikrosekundach.
    To po co się wprowadza ms,us,ns,a nie pozostaje się tylko przy sekundach.
    Jak dokładniej podzieli się 1 metr na pół,jak jest w cm,czy w mm.



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 07:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    ... to może prościej:
    procesor wykonuje pętlę główną. I dodatkowo odlicza czas (w przerwaniu). Pętla główna jest baaardzo krótka, więc można przyjąć, że sprawdzenie zawartości rejestru timera i porównanie ilości sekund odbywa się co stały czas.
    I teraz pytanie: czy ma dla Ciebie znaczenie, że czas trwania stanu wysokiego ma 60,000001 sekundy, i czas stanu niskiego ma też 60,000001 sekundy, jeżeli te czasy są sobie równe?
    Jakiej dokładności oczekujesz? Femtosekund?
    I w przypadku odliczania czasu w sekundach i w mikrosekundach będzie różnica. Kilku taktów procesora. Rzędu mikrosekund (w zależności od kwarcu).
    Kwarc też nie daje pełnej gwarancji, że będzie podawał idealnie stabilną częstotliwość w czasie. Więc tu również mogą pojawić się lekkie odchyłki od wybranego przez Ciebie czasu.



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 09:25 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Jestem ciekawa czy da się w tym kodzie zrobić w us,a co mi szkodzi dać te us jeśli to możliwe.
    Poza tym jak dam w us to będę miała większy zakres częstotliwości od kHz do ?,i nauczę się ,dowiem, się czegoś nowego.
    W delay mogę dać w us ,ale jest mało dokładne Duty 50% .



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 10:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    Możesz spróbować. Nie napiszę dokładnie, co jak przestawić, bo teraz nie mam dostępu do dokumentacji do tego procka. Ale musisz:
    1) zmienić preskaler timera, tak, żeby przerwanie było wywoływane co wybrany przez Ciebie czas (ale wątpię, czy uda się co 1 mikrosekundę) - do sprawdzenia w dokumentacji
    2) zadeklarować zmienną mikrosekundy. Jako typ musisz wybrać taki, który pomieści wartość, do której chcesz zliczać.
    3) na podanym przez Ciebie programie będzie wtedy działało.

    Ponawiam pytanie: jaką dokładność chcesz uzyskać? Konkretnie



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 10:33 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Marhew napisał:
    "Ponawiam pytanie: jaką dokładność chcesz uzyskać? Konkretnie"

    Chcę uzyskać dokładność jaka jest najbardziej możliwa do uzyskania.



    Ostatnio edytowano 6 wrz 2018, o 11:07 przez Ada57, łącznie edytowano 3 razy

    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 11:04 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    To sugeruję użyć generatora stabilizowanego temperaturowo.



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 13:08 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    micky napisał:
    "To sugeruję użyć generatora stabilizowanego temperaturowo."

    Na Allegro znalazłam kwarc 32768 Hz z 1 ppm.

    https://allegro.pl/listing?string=kwarc ... i-1-1-0806

    i z 5 ppm

    https://allegro.pl/listing?string=kwarc ... i-1-1-0806



    Góra
     Zobacz profil  
     
    PostNapisane: 6 wrz 2018, o 14:53 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 549
    Pomógł: 27

    no i co on Ci da?



    Góra
     Zobacz profil  
     
    PostNapisane: 12 wrz 2018, o 13:30 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Czy można w tym kodzie dać zamiast ms,us,i jak to zrobić.
    Jak oceniacie ten kod pod względem dokładności wypełnienia duty 50%,z kwarcem i bez.
    Czy , unsigned int licznik1;, jest we właściwych miejscach,zostawić go czy usunąć,jeśli usunąć to które,a które zostawić.
    Jak ewentualnie można ulepszyć ten kod,chodzi o zwiększenie dokładności wypełnienia 50%/50%.

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



    Góra
     Zobacz profil  
     
    PostNapisane: 12 wrz 2018, o 18:33 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 549
    Pomógł: 27

    Jak by to, Ty coś rozumiesz z tego kodu czy to jakiś gotowiec z internetu ?

    ------------------------ [ Dodano po: 23 minutach ]

    Moim zdaniem droga którą obrałaś to droga donikąd naprawdę warto zainwestować w zrozumienie tematu a nie na ślepo brnąć licząc na jakiś gotowiec bo co jak trzeba będzie coś zmienić. Poza tym to przypomina spacer przez pole minowe bez wykrywacza min .
    P.S .Na jakiej podstawie Ty uważasz że zmiany stanu pinów odbywają się w mili sekundach?



    Góra
     Zobacz profil  
     
    PostNapisane: 12 wrz 2018, o 18:57 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    Żeby zrobić ‘idealnie’ dokładny generator używa się wzorca atomowego. Poczytaj o DCF 77 - można go wykorzystać w Twoim projekcie. W skrócie w ciagu jednej minuty generowanych jest 59 impulsów i sa one najidealniejsze z możliwych. Przy Twoich potrzebach w zupełności to wystarczy (pomijam fakt, że moim zdaniem przesadzasz z ta potrzebna dokładnościa). Popatrz za dekoderami tego sygnału. Wystarczy zliczać impulsy i odpowiednio zmieniać Twoje porty sterujace. Dostałaś wędkę, czas w końcu iść na ryby :)



    Góra
     Zobacz profil  
     
    PostNapisane: 12 wrz 2018, o 19:35 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Dzięki informacji micky znalazłam jak podłaczyć Atmegę do DCF,link poniżej.
    Zadałam te pytanie powyżej, aby z odpowiedzi czegoś się nauczyć dowiedzieć.
    Chcę dokładnego 50% aby się przy okazji nauczyć,poznać,i chce to zrobić choćby sztuki dla sztuki.
    Czy nie lepszy będzie moduł czasu GPS jako zegar generujący przerwania.

    https://www.elektroda.pl/rtvforum/topic3279257.html



    Góra
     Zobacz profil  
     
    PostNapisane: 13 wrz 2018, o 08:36 
    Offline
    Użytkownik

    Dołączył(a): 31 maja 2018
    Posty: 70
    Zbananowany użytkownik

    Pomógł: 0

    Czy w ostatnim kodzie który zamieściłam , nie da się go przerobić tak aby można było ustawić w na us ,mikrosekundy ?
    Potrzebne mi są te us mikrosekundy, aby poszerzyć zakres częstotliwości.



    Góra
     Zobacz profil  
     
    PostNapisane: 13 wrz 2018, o 09:46 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 549
    Pomógł: 27

    Ponawiam pytanie skąd wniosek że on działa w mili sekundach mierzyłaś to sprawdzałaś oscyloskopem skąd wiesz w jakim czasie zmienia się wartość zmiennej licznik .
    a co do kodu to moim zdaniem jest on po prostu słaby mówiąc bardzo pobłażliwie (oczywiście w odniesieniu do tego co chcesz osiągnąć).
    Cytuj:
    Zadałam te pytanie powyżej, aby z odpowiedzi czegoś się nauczyć dowiedzieć.


    Twoja nauka przypomina dziecko które znalazło niewybuch i chce go rozebrać żeby dostać się do materiału wybuchowego .
    Oczywiście nie zniechęcam do eksperymentowania ale jednak najpierw to podstawowa wiedza by się przydała .

    A co do kodu wynika z niego że nie wiesz co to jest zmienna i jak się ją tworzy i jakie są typy zmiennych w avr-gcc przykładem tego jest zmienna licznik1 którą powołujesz do życia 4 razy dwa razy jako globalna i dwa jako automatyczną bez inicjalizacji i na dodatek raz w pętli głównej i jak by tego było mało do niczego jej nie wykorzystujesz ponadto na pewno nie uzyskasz tam sygnału o wypełnieniu 50% zadziała to tak pin PB3 ma stan wysoki dopóki zmienna licznik nie osiągnie 64000 po czym spełnia się warunek w pierwszym ifie i zmienia stan na pinie PB3 na niski po kilku taktach zegarowych kwarca (w zależności od ilości komend asemblerowych) wykonuje się drugi if który ponownie ustawia pin PB3 na stan wysoki . więc jak sama widzisz tu nie ma mowy o wypełnieniu 50% a zmiany stanu pinu są zależne od ilości rozkazów asemblerowych które to mikrokontroler wykonuje z szybkością zależną od taktowania i ile dany rozkaz potrzebuje taktów zegara . .



    Góra
     Zobacz profil  
     
    PostNapisane: 13 wrz 2018, o 09:51 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Sorry że się wtrące, ale czy ty budujesz laser do operacji mózgu czy może planujesz kontrolę rozszczepienia uranu w elektrowni atomowej?
    Sygnał zegarowy to nie jest jedyna rzecz która wpływa na czas wykonania - sama instrukcja również potrzebuje czasu. Do tego weź jeszcze pod uwagę opóźnienia na ścieżkach płytki (pooglądaj płytę główną kompa w okolicach pamięci/mostków), oraz użytych częściach.
    Aha, sygnał GPS nie działa wewnątrz budynków.

    Wysłane ze srajfona

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
     
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Ten wątek jest zablokowany. Nie możesz w nim pisać ani edytować postów.  [ Posty: 40 ]  Przejdź na stronę 1, 2  Następna strona

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO