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



Teraz jest 18 lis 2018, o 15:09


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: 43 ]  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: 23658
Lokalizacja: Szczecin
Pomógł: 894

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
Avatar użytkownika

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

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



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
Avatar użytkownika

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

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



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: 42
Pomógł: 1

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
Tech-support
Avatar użytkownika

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

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 ]
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: 23658
Lokalizacja: Szczecin
Pomógł: 894

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
Tech-support
Avatar użytkownika

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

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
Tech-support
Avatar użytkownika

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

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
Tech-support
Avatar użytkownika

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

... 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
Tech-support
Avatar użytkownika

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

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: 1623
Pomógł: 78

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: 273
Pomógł: 18

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 ]
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: 273
Pomógł: 18

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: 1623
Pomógł: 78

Ż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: 273
Pomógł: 18

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: 600
Pomógł: 24

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: 43 ]  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