Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Awatar użytkownika
ACeK
-
-
Posty: 1520
Rejestracja: 30 mar 2003, o 19:35
Lokalizacja: Kielce

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: ACeK » 3 sie 2018, o 07:49

Obrazek Ja bym tak bardzo :no: krytykowal r-mik Dlaczego :? :twisted: Bo watek wyszedl dobry i zly policjant czego efektem jest to ze dalas rade zrobic to co chcialas Obrazek

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 08:02

ACek mi pomógł ,a r-mik gdyby chciał mi pomóc, zamieściłby w języku C, kod który daje najbardziej zbliżone do idealnego 50 %.
Nie napisał też jaka pętla jest lepsza while czy for.
Kod który wysłałam sama nie napisałam,bo nie potrafię,pobrałam go z zagranicznej strony internetu.
Na zagranicznych forach dają na zamówienie gotowce, i nie męczą ludzi tak jak r-mik.
Ostatnio zmieniony 3 sie 2018, o 10:10 przez Ania30, łącznie zmieniany 1 raz.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 08:35

Napisałeś ,że poprzez delay nie da się osiągnąć rozpiętości kHz do 12 godzin,u mnie taka rozpiętość została osiągnięta.
Zmierz (ale nie masz czym) jak jest faktyczna częstotliwość generowanego sygnału gdy chcesz uzyskać częstotliwości rzędu kilkudziesięciu kHz zwłaszcza przy taktowaniu 1MHz.
- Delay 10uS nie da 10us, to pierwsze.
- Czas wykonania operacji ustawiającej port (co najmniej 1us) ma w takim przypadku znaczenie. Jeden rozkaz zmieni częstotliwość o 10%!

Cały czas mowa o precyzyjnych częstotliwościach, współczynniku wypełnienia a uczepiłaś się najgorszego z możliwych rozwiązań mając sprzętowe sterowanie GPIO, gdzie trzeba liczyć każdy cykl maszynowy jak w latach 80.
W Generatorze DDS z EP 6/2018 jest sprzętowe sterowanie wyjściem:
void Timer1_Start(uint8_t dzielnik)
{
// OCR1B=dzielnik;
OCR1B=dzielnik;

//Output compare toggles OC1A pin
// TCCR1A |= 0x40; // COM1A = 1
TCCR1A |= 0x10; // COM1B = 1
//start timer without prescaler
TCCR1B = 0b00001001; // WGM 12=1, CS=1

DDRD |= _BV(PD4);
}

Uzyskasz DOKŁADNIE 50% bez liczenia cykli. Nie muszą być włączone przerwania ale mogą. Program główny może robić co chce a nie wpłynie to na generowany przebieg bez względu na to, czy przerwania będą włączone czy nie. Max częstotliwość to Fclk/2, uzyskaj taką przez delay. Taki program jest krótszy niż z delay. Jeśli częstotliwość jest zbyt duża należy timery połączyć w kaskadę.
Można także użyć timera w trybie PWM. Używając OCRxA można ustawić próg zliczania a co za tym idzie, precyzyjnie regulować częstotliwość.

Głupotą jest, mając możliwości sprzętowe, rozwiązywać problem w sposób programowy.
Uważasz, że nie mam racji? Napisz na innych forach i zweryfikuj moją wiedzę.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 10:16

Też uważam ,ze sprzętowe rozwiązanie jest lepsze jak programowe,to Ty wysnułeś taki wniosek ,że ja chcę programowe,jak chce najlepsze.
Jeśli chcesz pomóc to daj gotowca,tak jak ACeK ,i ja,bo ja sama według wskazówek Twoich czy innych nie potrafię.
Myślę,ze jest inny sposób ,jak miernik,w miarę tani, aby sprawdzić dokładność Duty 50 %,np.napisać program który to sprawdzi lub coś innego ,trzeba pomyśleć.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: pajaczek » 3 sie 2018, o 12:05

Nawet nie wiesz ACeK jak bardzo powtórka z rozrywki...

Btw. Apropo code, nawet sam chciałem poprawiać pierwsze posty w temacie dodając znacznik... jakże się zdziwiłem że szwankuje :twisted: Niestety nie jestem władny by móc choćby spróbować coś z tym zrobić.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 12:08

Jeśli chcesz pomóc to daj gotowca,tak jak ACeK
Dałem już dwa, z leday i sprzętowe.
Myślę,ze jest inny sposób ,jak miernik,w miarę tani, aby sprawdzić dokładność Duty 50 %,np.napisać program który to sprawdzi lub coś innego ,trzeba pomyśleć.
Jest jakiś inny sposób na sprawdzenie suwmiarki tanim narzędziem, które nie jest centymetrem? Jest, taśma miernicza, linijka. Efekt: żaden. Lepszy niż centymetrem ale nadal to zbyt słabe narzędzia. W przypadku wypełnienia 50% wystarczy matematyka. Jeśli timer pracuje w trybie "Output compare toggles pin", to MUSI dać na wyjściu 50% tak samo jak przerzutnik T https://pl.wikipedia.org/wiki/Przerzutnik_typu_T.
Gdy timer pracuje w trybie PWM i ustawi się wypełnienie 50% to takie będzie.

Jeśli jednak zaczynamy liczyć super dokładnie, co jak już wielokrotnie pisałem w tym zastosowaniu nie ma znaczenia) to np czas narastania sygnału nabiera znaczenia. Czas zmiany sygnału z L na H (narastania) jest z reguły inny niż opadania (H na L) i już nie ma 50%. Mowa tu o czasach rzędu ns czy ps. Policz sobie jaką drogę przebywa światło w ns aby mieć wyobrażenie o jakich czasach rozmawiamy.
64 sekundy to 64'000'000'000ns! Mówimy o pomiarach dokładności 1,5625E-9% (0,0000000015625%). Jak chcesz to zmierzyć? Jaką "inną" metodę widzisz?
GPS oferuje odchyłkę kilkunastu ns w ciągu sekundy. Przyjmując 10, będzie to 640ns w ciągu 64 sekund. Masz więc wzorzec oferujący odchyłkę 640ns/64sek a chcesz mierzyć sygnał o dokładności 1ns/64sek, czyli 640razy dokładniejszy. Jak wiadomo, aby pomiar był miarodajny, urządzenie pomiarowe powinno oferować dokładność o rząd większą więc 0,1ns/64sek. Potrzebujesz więc sprzętu blisko 6500 razy dokładniejszego niż GPS!

Te dywagacja na temat dokładnie 50% sś dobre jako teoretyczne zadanie na uczelni ale nie do praktycznego użytku, tym bardziej, że nie ma jak tego zmierzyć.

Awatar użytkownika
ACeK
-
-
Posty: 1520
Rejestracja: 30 mar 2003, o 19:35
Lokalizacja: Kielce

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: ACeK » 3 sie 2018, o 12:43

... Nawet nie wiesz ACeK jak bardzo powtórka z rozrywki...
Obrazek Zapraszamy do trojki :twisted: Nie slucham teraz radia to nie wiem czy jeszcze jest ten program :lol: Dawno Cie tu nie bylo :o
:idea: Sprawdzilem jak dziala program na tiny2313a :) Nie da sie ustawic 1MHz to dalem 8Mhz (kwarc) oraz zmienilem portb na portd zeby nie bylo problemu z przelaczaniem kabli od programatora :no: Cos nie tak jest z procedura opozniajaca z tym ze symetria w dzialaniu progrmu jest zachowana :P Oto kilka zjdiec 8)
Obrazek
Załączniki
IMG_4383ep.jpg
Tu co tiny wysyla w swiat
IMG_4382ep.jpg
Wlasna plytka z tiny
ep.png
Odliczona ilosc taktow pomiedzy out portd, r16

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 12:52

Nie trzeba mierzyć wystarczy to zrobić,tak jak np.jeśli w trójkącie masz wymiary dwóch boków ,to nie musisz mierzyć ile ten bok ma wyliczasz to matematycznie ,i masz pewność,że to ma bez mierzenia,tak jak pisałeś zrobić to matematycznie.
Ten kody które podałeś są niepełne nie umię tak zrobić aby zadziałały na uC.
Pajączek coś tu wspomniał o powtórce z rozrywki,z tej strony z 2013.r., pobrałam program,ACeK,i dałam go tutaj w pierwszym poście,ale on nie działa tak jak ja chce, i Anek40,podaje link do powtórki z rozrywki.
viewtopic.php?f=38&t=22876
Ostatnio zmieniony 3 sie 2018, o 17:19 przez Ania30, łącznie zmieniany 1 raz.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 13:04

Ten kody które podałeś są niepełne nie umię tak zrobić aby zadziałały na uC.
Forum ma pomagać, uczyć a nie odwalać "czarna robotę". Można odwołać się do Biblii, "Dasz rybę (...), dasz wędkę (...)".
Forum nie jest po to aby dawać gotowe rozwiązania. Gotowce są w sklepie, można dać ogłoszenie, zlecić wykonanie urządzenia. Napisz co w kodach, które dałem jest niejasne a odpowiem na pytania. Aby to jednak nie było "nic nie rozumie" bo wtedy odeślę do kursu w EdW.
Programowania, znajomości architektury uC, znajomości elektroniki, nie da się nauczyć w dzień czy miesiąc, trzeba mieć tego świadomość. Projekt jest banalnie prosty, tylko niepotrzebnie został skomplikowany przez dywagacje na temat dokładności, który praktycznie nie ma znaczenie a co ważniejsze, nie masz jak tego sprawdzić. Ponadto co sprawdzać, jak taktujesz uC wewnętrznym generatorem RC. Dokładny miernik pokaże jitter i "pływanie" generatora, kiepski pokazał co pokazał.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 13:17

gdyby chciał mi pomóc, zamieściłby w języku C, kod który daje najbardziej zbliżone do idealnego 50 %.
Zamieściłem dwa.
To, że one nie zadziałają tak jak chcesz to "oczywista oczywistość".
- trzeba je dostosować do własnych wymagań
- sam kod to nie wszystko, trzeba zrobić projekt, ustawić bity konfiguracyjne itp.
Nie napisał też jaka pętla jest lepsza while czy for.
Z punktu widzenia szybkości wykonywania, aktualnie nie ma to znaczenia (w starych kompilatorach miało).
Na zagranicznych forach dają na zamówienie gotowce
To dlaczego nie korzystasz z zagranicznego forum i męczysz się tu?

Awatar użytkownika
ACeK
-
-
Posty: 1520
Rejestracja: 30 mar 2003, o 19:35
Lokalizacja: Kielce

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: ACeK » 3 sie 2018, o 13:42

... Pajączek coś tu wspomniał o powtórce z rozrywki,z tej strony z 2013.r., pobrałam program,ACeK,i dałam go tutaj w pierwszym poście,ale on nie działa tak jak ja chce, i Anek40,podaje link do powtórki z rozrywki...
Obrazek Anka za bardzo powaznie podchodzisz do tematu :P nie potrzebnie dajesz sie prowokowac :idea: Masz problem to piszesz na forum pytanie :idea: jak ciagle cos nie jest jasne zadajesz nastepne az wszystko stanie sie jasne :) Zapisz sie do :arrow: AKTYW FORUM zbieraj punkty :P Usmiechnij sie Obrazek

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 17:13

Takie rady jak r-mik to ja tez potrafię dawać,sam nie umie napisać pełnego kodu.
Z zagranicznych forum skorzystałam o wiele więcej ja w polskich .
Mam kilka kodów sprzętowych z zagranicznych stron.
Chciałam zobaczyć na co można liczyć tutaj,no i widać słychać i czuć,nie odnosi się to do ACeK.
W przystawce do programatora jest gniazdo na kwarc ,po co ono tam jest i co można z tym kwarcem zrobić.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 17:30

Takie rady jak r-mik to ja tez potrafię dawać,sam nie umie napisać pełnego kodu.
Przykład generatora DDS na AVR to za mało?
Z zagranicznych forum skorzystałam o wiele więcej ja w polskich .
Więc proszę tam szukać pomocy, skoro tu sami nieudacznicy, idt, itp.
Mam kilka kodów sprzętowych z zagranicznych stron.
Skoro tam dają super kody na zamówienie, za darmo, co czemu z nich nie korzytsać?
Chciałam zobaczyć na co można liczyć tutaj,no i widać słychać i czuć
To już czytałem, proszę o linki do tych zagranicznych for, gdzie piszą jak osiągnąć precyzję 0,0000(...)15%. Jestem bardzo ciekaw, czy za granica sa inne prawa fizyki.
W przystawce do programatora jest gniazdo na kwarc ,po co ono tam jest i co można z tym kwarcem zrobić.
Zostawiam bez komentarza, bo mowa o tym już była i to kilka razy.

Awatar użytkownika
ACeK
-
-
Posty: 1520
Rejestracja: 30 mar 2003, o 19:35
Lokalizacja: Kielce

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: ACeK » 3 sie 2018, o 17:37

Obrazek Twoje pytanie jest bardzo :no: precyzyjne :uhoh: To jak ja bym sie spytal w mojej kuchni jest kolo lodowki garczek co moge z nim zrobic :? Dlatego podaj typ lub zamiesc zdjecie :idea: Wtedy kiedy wiadomo co to jest dostaniesz odpowiedz Obrazek

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: pajaczek » 3 sie 2018, o 19:14

Obrazek Zapraszamy do trojki :twisted: Nie slucham teraz radia to nie wiem czy jeszcze jest ten program :lol: Dawno Cie tu nie bylo :o
Nie no... czasami zaglądam, aczkolwiek trochę się u mnie pozmieniało i nie mam tyle czasu co kiedyś.
...tak jak np.jeśli w trójkącie masz wymiary dwóch boków ,to nie musisz mierzyć ile ten bok ma wyliczasz to matematycznie ,i masz pewność,że to ma bez mierzenia,tak jak pisałeś zrobić to matematycznie...
Co za bzdura... żeby się już do wszystkiego nie czepiać, to zakładam że chciałaś napisać: "ile ten trzeci bok ma". Ale i wówczas możesz jedynie mieć pewność że trzeci bok jest większy od zera, a mniejszy od sumy dwóch pozostałych... tylko tyle Ci to mówi.
Pajączek coś tu wspomniał o powtórce z rozrywki,z tej strony z 2013.r., pobrałam program,ACeK,i dałam go tutaj w pierwszym poście,ale on nie działa tak jak ja chce, i Anek40,
I nie zadziała tak jak chcesz... żaden program nie zadziała, na żadnym istniejącym (nie teoretycznym) procesorze.
Niestety ale spierasz się o rzeczy albo o których nie bardzo masz pojęcie, albo o takie o których dość dobrze wiesz, ale próbujesz tutaj użytkowników strolować. Jeżeli to pierwsze, to niestety zgadzam się z r-mik że nie tędy droga i pretensje do forum są niewłaściwe bo oczekujesz za wiele za mało dając od siebie, tu raczej dostaniesz wędkę nie rybę.

Tak poza konkursem: Odpowiedz mi proszę na pytanie: co masz wspólnego z anek40 poza zainteresowaniem podobną tematyką i imionami na tą samą literę.
Nie napisał też jaka pętla jest lepsza while czy for.
Z punktu widzenia szybkości wykonywania, aktualnie nie ma to znaczenia (w starych kompilatorach miało).
No nie do końca się tutaj zgodzę, tak samo jak nie do końca się zgodzę z Twoim wcześniejszym stwierdzeniem że nie ma żadnego znaczenia czy coś jest napisane w C/C++ czy ASM. Ale nie odczytuj tego niewłaściwie... na pewno na potrzeby powyższego problemu, a już na pewno na poziomie tych problemów, nie zawracał bym sobie tym głowy. To raczej dywagacje na zupełnie inną okazję.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 19:29

pajączek i r-mik, niech do mnie nie piszą ,będą nieczytani,i nie otrzymają odpowiedzi.
Jak zamieścić tutaj foto przystawki ?
Ostatnio zmieniony 3 sie 2018, o 22:57 przez Ania30, łącznie zmieniany 2 razy.

Awatar użytkownika
ACeK
-
-
Posty: 1520
Rejestracja: 30 mar 2003, o 19:35
Lokalizacja: Kielce

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: ACeK » 3 sie 2018, o 19:33

Obrazek Na dole masz pomaranczowy prostokad z napisem zalaczniki :idea: Kliknij tam to pod nim pojawi sie dodaj pliki Obrazek

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 19:45

pajączek i r-mik niech do mnie nie piszą
To jest forum, ma regulamin. Dopóki nie jest łamany , każdy może pisać, tym bardziej jak pisze na temat.
Jeśli regulamin jest łamany, proszę zgłaszać do moderatora lub administratora jeśli moderator jest stronniczy.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: r-mik » 3 sie 2018, o 19:51

No nie do końca się tutaj zgodzę, tak samo jak nie do końca się zgodzę z Twoim wcześniejszym stwierdzeniem że nie ma żadnego znaczenia czy coś jest napisane w C/C++ czy ASM. Ale nie odczytuj tego niewłaściwie... na pewno na potrzeby powyższego problemu, a już na pewno na poziomie tych problemów, nie zawracał bym sobie tym głowy. To raczej dywagacje na zupełnie inną okazję.
Tu się zgodzę. Przeważnie, z silnym naciskiem na przeważnie, pętla fot, while, (until) są kompilowane do tej samej postaci w ASM. Różnice są (myślę o ASM) ale naprawdę nie duże, ale czasem istotne.
Z punktu widzenia programisty C, Basic to raczej kwestia wygody.
Faktycznie "dywagacje na zupełnie inną okazję" bo tu mamy dywagacje na temat 2us na 64sekundy!


PS
Polityki nie tykaj, więc nie mam możliwości dać porównań, choć już dałem, według mnie obrazowe, centymetr i suwmiarka.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Attiny 2313A zmiana stanu wysokiego na niski,duty cycle 50%

Postautor: Ania30 » 3 sie 2018, o 19:56

Patrze i niema jak wysłać załącznika,klikam na pełny edytor i jest.
Koło kondensatora jest gniazdo na kwarc,po lewej odpadło muszę przylutować.
Czy jak się da tam kwarc to tak samo jakby go przylutować do Atmega 8A,po co tam jest to gniazdo i co można z tym robić.
Gdzie można kupić taką przystawkę,kupiłam ją na Allegro,teraz jej tam niema.
Załączniki
DSCF2290.JPG

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 24 gości