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



Teraz jest 10 mar 2025, o 05:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 55 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 21 wrz 2013, o 19:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Mam pytanie dotyczące działania timera 1w trybie fast PWM na procesorze Atmega16 z kwarcem 16MHz.
Poniżej przedstawiam mój kod który niby działa ale nie rozumiem kilku rzeczy dotyczących TCCR1A i TCCR1B tego 16 bitowego licznika.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:35 
Offline
Moderator
Avatar użytkownika

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

A skąd ty wytrzasnąłeś te wszystkie bity:

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


w jednym rejestrze ? ;)

może być tak jednak do noty PDF zajrzeć hmm ? ;)

_________________
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: 21 wrz 2013, o 20:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Wiedziałem że o to zapytasz,już odpowiadam wiem że powinno być w ten sposób ale jak ustawię je tak to rejestrze OCR1A najmniejsza wartość to maksymalne świecenie diody LED natomiast do rejestru OCR1B mogę wpisywać jaką kolwiek liczbę i tak nie wpływa to na intensywność świecenia LED (tzn. ciągle świeci na maxa)


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 20:25 
Offline
Moderator
Avatar użytkownika

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

To nie jest tak - że coś robimy na czuja bo tak się nam wydaje. Czytamy notę i robimy po kolei ... a twój problem bierze się z tego, że właśnie próbujesz zrobić coś co ci się wydaje .... bo jeszcze raz powiem, ta linia w pierwszym kodzie nie ma w ogóle sensu niestety.

Dlatego pokaż jak teraz wygląda znowu twój kod po poprawce no i coś się obawiam że jakiś dziwny tryb PWM wybrałeś ...

czemu nie zainteresuje cię MODE 5 albo 6 ? zacznij od czegoś prostszego jeśli masz kłopoty i robisz to pierwszy raz

_________________
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: 21 wrz 2013, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Próbowałem wcześniej z trybem PWM mode 15 i nie wychodziło mi.
Teraz zmieniłem tak jak sugerowałeś na trym z mode 5 Fast PWM, 8-bit i jest ok,ale w tym trybie dioda LED będzie swieciła maksymalnie jasno przy OCR1B=255 lub OCR1A=255 bo to jest tryb jedno bajtowy i to rozumiem i to mi działa poprawnie.Myślałem że jak wybiorę trym PWM mode 15 to to samo osiągnę co powyżej tylko że maksymalne przepełnienie będę miał przy OCR1B=65535 i OCR1A=66535 ale chyba się mylę i dlatego napisałem ten post bo nie rozumiem tego trybu mode 15.
Który tryb PWM mam wybrać aby uzyskać taki sam efekt jak w trybie mode 5 z tą różnicą że maksymalne przepełnienie chcę mieć przy OCR1B=65535 i OCR1A=66535,czy istnieje taki tryb PWM dla timera 1?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 21:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
...ale wpisując " po Twojemu " ustawiasz "PWM, Phase Correct, 10-bit"
Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 21:36 
Offline
Moderator
Avatar użytkownika

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

mirek1968 --> zwróć uwagę do jakiej wartości dolicza Timer1 w trybie 15

_________________
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: 22 wrz 2013, o 11:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

No to bierzemy się do czytania:

Cytuj:
The PWM resolution for fast PWM can be fixed to 8-bit, 9-bit, or 10-bit, or defined by either ICR1
or OCR1A. The minimum resolution allowed is 2-bit (ICR1 or OCR1A set to 0x0003), and the
maximum resolution is 16-bit (ICR1 or OCR1A set to MAX).

Z tego już wiesz, że fast PWM może działać na 16 bitach, ba! Wiesz do czego przyda Ci się OCR1A

Obrazek
Mode 15 - ok.

Ale możesz w nocie wyczytać również to:
Cytuj:
The TCNT1, OCR1A/B, and ICR1 are 16-bit registers that can be accessed by the AVR CPU via
the 8-bit data bus. The 16-bit register must be byte accessed using two read or write operations


A najlepiej zapoznać się z podrozdziałem:
Accessing 16-bit Registers
Znajdziesz go przy timerze właśnie

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 12:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

arturf209
O ile dobrze zrozumiałem ,bo nie jestem biegły w angielskim timer 1 tryb PWM mode 15 jest to tryb 16 bitowy tylko dla rejestru OCR1A który jest przepełniony w wartości 66535 ,i to jest nawet zrozumiałe i tak mi to działa poprawnie na płytce testowej.
Z tego co czytałem w nocie katalogowej Atmega16 Timer 1 składa się tak jakby z dwóch 8-bitowych rejestrów OCR1A i OCR1B które w trybie PWM-8 bitowym można pięknie wykorzystać jako dwa sprzętowe wyjścia PWM pomimo że oba te rejestry działają na jednym Timerze 16 bitowym.
Jeśli coś nie poprawnie interpretuję to proszę o korektę mojego rozumowania.:-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 12:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

mirek1968 napisał(a):
arturf209
Atmega16 Timer 1 składa się tak jakby z dwóch 8-bitowych rejestrów OCR1A i OCR1B


Przecież wyżej, skopiowałem z noty, że to rejestry 16 bitowe! Ba! Mówiłem, jaki rozdział masz przeczytać, żeby zobaczyć jak się do nich dobrać odpowiednio.

Niestety, angielski jest potrzebny, sam nie jestem biegły, zawsze w takiej sytuacji można wspomóc się słownikiem czy translatorem.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 12:43 
Offline
Moderator
Avatar użytkownika

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

mirek1968 napisał(a):
Z tego co czytałem w nocie katalogowej Atmega16 Timer 1 składa się tak jakby z dwóch 8-bitowych rejestrów OCR1A i OCR1B


Skąd taki pomysł ?? tym bardziej, że wyżej kolega ci pisze że to rejestry 16-bitowe i to jeszcze trzeba je odpowiednio czytać i zapisywać (tzn w odpowiedniej kolejności bajt starszy i młodszy takich rejestrów)

_________________
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: 22 wrz 2013, o 13:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

W więc wszystkie one są 16 bitowe-OK
W trybie fast PWM 8-bit rejestry OCR1A i OCR1B mają przepełnienie przy 255 ,a 50% przy około 127 czyli działają w praktyce tak jak 8-bitowy Timer 0 pomimo że Timer 1 jest we wszystkich swoich 15 trybach 16 bitowych.
Mam jeszcze jedno pytanie czy w trybie fast 8-bitowym Timera 1 np. OCR1A przy zliczeniu wartości 255 resetuje się do zera i wymusza przerwanie,po czym znowu zlicza 255 impulsów-jeśli to prawda to dlatego uważam że ten tryb to taki symulator trybu 8-bitowego licznika Timera 1 który jest 16-bitowy.
Proszę o potwierdzenie i uwagi.:-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 14:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Nota podaje przykład w asemblerze, gdzie TCNT1 jest przepisywany do rejestrów ogólnego przeznaczenia d 2 operacjach po osiem bitów każda. TCNT1 rozbija się jakby na dwa rejestry TCNT1AL i TCNT1AH. Ale pisząc w C można już odwoływać się normalnie do całego TCNT1, a kompilator operacje odczyt/zapis rozbije na dwa etapy. Tak to przynajmniej rozumiem.
Nota zawiera jeszcze ostrzeżenie, że są to operacje typu atomic, wiec podczas ich wykonywania powinno się zatrzymać wykonywanie przerwań. Manewr z backupem rejestru SREG.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 14:56 
Offline
Moderator
Avatar użytkownika

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

sq8dsr napisał(a):
Manewr z backupem rejestru SREG


dokładnie:

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

i po sprawie ;)

_________________
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: 23 wrz 2013, o 09:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Proszę jeszcze raz o ewentualne uwagi dotyczące poprawności tego kodu dla trybu mode 15 fast PWM

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


Program działa poprawnie ale tylko wtedy jak ustawię tryb mode 15 w jednym rejestrze
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


co nie zgadza się z notą katalogową Atmegi16 bo powinno być inaczej tzn.

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


ale jak tak zapiszę ten tryb to nie działa wcale.

I jeszcze inne pytanie czy tryb fast PWM mode 15 jest jedynym trybem PWM w którym przepełnienie uzyskam przy liczbie 56535? czy jeszcze są inne tryby ale ja nie widzę tych trybów w nocie katalogowej.(chodzi mi tylko o tryby fast pwm)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2013, o 12:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Nigdy nie używałem trybu 15, ale z tego co widzę wtedy chyba możliwy do użycia jest tylko jeden kanał.
W trybie 15 rozdzielczość nie jest 16 bit, tylko jest definiowana przez to co znajduje się w OCR1A. Jeśli wartość OCR1A jest ustawiona na 65535 to wtedy rozdzielczość jest 16 bitów, ale może być inna, 15, 14, 6 bitów.
Zrobiłem takie coś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2013, o 00:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Twój kod działa u mnie poprawnie:-)
Przetestowałem też inny ryb PWM mode 7 czyli fast pwm 10 bitowy

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2013, o 00:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Chyba nadal nie do końca rozumiesz działanie Timera. Po kolei:

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


Tutaj wszystko OK. Ustawiasz tryb 7 czyli PWM 10-bit, tak jak chciałeś.
W trybie 7 licznik liczy do wartości 0x03FF czyli do 1023 (maksymalna wartość możliwa do wyrażenia przy użyciu 10 bitów) po czym się zeruje i liczy od nowa. Rożnica między trybem 15 a 7 jest taka, że w trybie 7 mamy narzuconą z góry wartość TOP, czyli tą do której liczy licznik a w trybie 15 ustalamy ją poprzez wpisanie jej do OCR1A.
Nie potrzebne są więc te przypisania w trybie 7:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ich działanie, w Twoim programie, powoduje, że na chwilkę wartość wypełnienia PWM dla obydwu kanałów (OC1A i OC1B) ustala się na 50%. Czemu na 50% ? Dlatego, że wartość 511 połową maksymalnej wartości do której liczy timer1 w trybie 7. Gdyby to był tryb 6 to 511 byłoby wartością TOP czyli dało by maksymalne, 100% wypełnienie PWMa, dlatego że 511 jest wartością 9 bitową, a tryb 6 jest właśnie 9 bitowy i 511 jest dla niego wartością TOP.
Jednak tak jak mówię, w tym przypadku działanie tych przypisań jest nie potrzebne. Bo faktyczna manipulacja wypełnieniem odbywać się będzie w pętli WHILE.

Dalej mamy deklarację zmiennych "i" oraz "k" Nie potrzebnie dajesz jako "i" typ int. Nie potrzebujesz przecież liczb ujemnych. W przypadku tego trybu 15 zmienna int jest za mała. Bo jej maksymalna wartość to 32767, dlatego w swoim przykładzie użyłem typu uint16_t który działa od 0 do 65535. Zmienna "k" jest nieużyta. Nie wiem, może miała być użyta w dalszej części kodu. Ale tak przy okazji użyłeś tutaj typu int8_t który działa od -128 do 127. To tak przy okazji.

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

Liczysz pętlą for do 511, więc maksymalnie uzyskasz w trybie 7 wypełnienie 50%. Aby uzyskać 100% musisz liczyć do 1023.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2013, o 10:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Masz rację moja pomyłka ,pomyliłem wartość maksymalną trybu fast pwm 10-bitowego z 9-bitowym i zastosowałem nie właściwą zmienną int (pomyłka moja ale dobrze że mi pomogłeś to zauważyć)

Poprawiłem kod i jest teraz wszystko ok,jednak warto było wejść na te forum i założyć post bo teraz rozumiem timer 1 i jego tryby dużo lepiej niż wcześniej za co bardzo dziękuję wszystkim odpowiadającym a zwłaszcza Tobie:-)

Mam jeszcze jeno pytanie może troszkę z innej beczki bo chodzi o ADC.
Ale ze względu że jest to tylko jedno pytanie nie opłaca mi się zakładać z tego powodu nowego postu.
chodzi mi o taki zapis z przykładu z blue booka M.Kardasia .

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


Nie rozumiem dlaczego ADMUX jest ustawiony wartością hex 0XF8 do odpowiada binarnie 1111 1000 a jak się popatrzy na rejestr ADMUX Atmegi16 w nocie katalogowej to w żaden sposób nie mogę tego skojarzyć z ustawieniem ADC5 jako wejścia ADC .
Pewnie znowu czegoś nie zrozumiałem i dlatego pytam:-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2013, o 18:09 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Przy czym w książce jest błąd powinno być:


co więcej - jest to WYRAŹNIE opisane na stronie atnela i w erracie i w aktualizacjach , ale widać kolega tam w ogóle nie zagląda :(

http://atnel.pl/uaktualnienia-programow-do-dvd.html

http://atnel.pl/errata.html

_________________
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: 25 wrz 2013, o 11:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

squeez

Bardzo dziękuję za szczegółowe wytłumaczenie mi tego o co pytałem,teraz wydaje mi się to proste i logiczne ale nie mogłem tego w pierwszym momencie zrozumieć.Teraz rozumiem po co ta maska i w jakim celu została użyta w programie.:-)
Jeszcze raz bardzo jestem wdzięczny:-)

Jestem osobą która potrzebuje często łapatologicznego wytłumaczenia niektórych spraw jeśli chodzi o programowanie bo jest to tylko moje hobby i wcześniej nie miałem do czynienia z informatyką i dlatego często tu zaglądam i o wiele rzeczy pytam i jeszcze nie raz zapytam pewnie:-),a więc proszę wszystkich o cierpliwość i wyrozumiałość panie Mirku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2013, o 12:41 
Offline
Moderator
Avatar użytkownika

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

mirek1968 napisał(a):
a więc proszę wszystkich o cierpliwość i wyrozumiałość panie Mirku


No kto jak kto ale ja jestem cierpliwy - tylko z uporem maniaka wciąż przypominam o zaglądaniu do źródeł czyli na stronę atnel z uaktualnieniami itp ... ok ? ;)

_________________
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: 25 wrz 2013, o 14:47 
Offline
Moderator
Avatar użytkownika

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

GwynBleidD napisał(a):
Wystarczy tylko sobie stablicować wartości rejestru dla wymaganej konkretnej jasności rzeczywistej


tak wystarczy ... tylko zawsze jest z tym kłopot ... ale już niedługo ;) bo wkrótce nowe narzędzie w MkAvrCalculator - a tutaj mała zajawka tego narzędzia ;)

Obrazek

_________________
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: 25 wrz 2013, o 15:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 lip 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
tutaj mała zajawka tego narzędzia ;)

A co to takiego ? I kiedy to się pojawi ?

Hmmm... PWM resolution - rozdzielczość pwm, czyżby program do konfiguracji diody RGB przez PWM ?

A tak przy okazji Mirku, to twój 8000 tysięczny post ! :D


Edit
Ojojojojojoj tak się śpieszyłem żeby mnie nikt nie wyprzedził że przesadziłem :oops:
Oczywiście chodziło o 8 tysięczny post albo 8000 post :)

I tak sobie licząc...
Forum działa od
Cytuj:
Wystartowaliśmy 10 października 2011 roku.

a dzisiaj jest 25. września 2013 więc to i tak niezły wynik
~ 2 lata = 8k postów

_________________
sig off ;(



Ostatnio edytowano 25 wrz 2013, o 16:11 przez MrWeb123, łącznie edytowano 4 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2013, o 15:49 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3219
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

MrWeb123 napisał(a):
A tak przy okazji Mirku, to twój 8000 tysięczny post !


Trochę przesadzasz, 8000 tysięcy oznacza 8 milionów...

A to nastąpi gdzieś w 2056 roku :lol:

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2013, o 18:14 
Offline
Moderator
Avatar użytkownika

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

GwynBleidD napisał(a):
A ja jeszcze do tego ficzera zamawiam generowanie kodu dla obsługi HSV


myślę że i o tym też będzie co nieco ;)

_________________
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: 25 wrz 2013, o 19:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

GwynBleidD napisał(a):
A ja jeszcze do tego ficzera zamawiam generowanie kodu dla obsługi HSV

A to u mnie widziałeś. Zresztą rozbudowałem nieco ten program, o obsługę IR i jeszcze w planie jest parę rzeczy, ale nie wiem czy flasha starczy, ale to najwyżej dam AT328 bo teraz jest 88.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2013, o 20:08 
Offline
Moderator
Avatar użytkownika

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

Tak HSV to bardzo fajna metoda na sterowanie LED'ami ;)

_________________
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: 25 wrz 2013, o 20:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Fajna bo pozwala łatwo uzyskać zmiany kolorów w osi nasycenia i jaskrawości.
Z tym, że ja cały czas myślę nad tym jakby dopasować to wszystko do percepcji wzroku, choć nie jest to kwestia samego HSV tylko tego, że przejścia między niektórymi kolorami są traktowane nieco inaczej, więc wydają się bardziej lub mniej skokowe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2013, o 00:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

GwynBleidD napisał(a):
A samo tablicowanie dla RGB nie daje wystarczających rezultatów?

W moim odczuciu nie daje. Tu są co najmniej dwa zagadnienia jak sądzę. Pierwszym jest nieliniowa zmiana jasności diody LED w zależności od wypełnienia/prądu. Drugim jest różna percepcja przez człowieka zmiany koloru, która jest zależna od tego jaki kolor był wcześniej (lub jaki kolor jest obok). Zobacz, że przykładowo w takim Photoshopie, w module drukowania, są przeróżne metody konwersji przestrzeni RGB lub CMYK (kolorymetryczna, percepcyjna, relatywna kolorymetryczna i jeszcze inne). Oczywiście, że temat jest obszernie opisany, wbrew pozorom to są bardzo skomplikowane zagadnienia.
Oczywiście w zastosowaniach typu dioda RGB te wszystkie zaawansowane modele matematyczne to byłby przerost formy nad treścią, więc potrzebne jest jakieś tam uproszczenie.
Przykładowo oprócz mopowania wartości PWM, dobry rezultat może dać mapowanie czasu trwania koloru. W niektórych miejscach okręgu H (przy HSV) poszczególne kolory powinny zmieniać się szybciej, w innych wolniej. Np przejście z koloru czerwonego do zielonego (przez zółty) jest odbierane jako bardziej skokowe niż przejście z zielonego do niebieskiego, mimo że oba przejścia mogą mieć taki sam jakby "delta"H.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 55 ]  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 2 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