Ako posunut adresy ws2812 adresovatelnych led?
Moderátori: mirosne, Moderátori
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Ako posunut adresy ws2812 adresovatelnych led?
Zdravim priatelia
este skor nez som pochopil princip adresovatelnych led som si myslel ze kazda ta led ma svoju adresu
ale prevda je ze ona LEDka ws2812 nema v sebe fyzicku adresu ale len vie ze za nou nieco je alebo nieje
a
tak pred tymto pochopenim som natahal kable na schody blbo.....
moja predstava
aby sa kazdy schod rozsvecoval postupne zdola az dohora
ale
zapojil som kable do hviezdy
vid priloha
este som to nezapojil ale myslim si ze na kazdom schode si prva ledka bude mysliet ze ma adresu1,
druha adr2 atd.....
tym padom budem vedeiet iba naraz osvietit sprava dolava alebo nejaku takuto kombinaciu...
otazka, existuje nejaky shifter ze by som to dal do kazdeho LEDpasika na schod ?
druhy schodovy led pasik by som stym posunul o 10lediek
treti schodovy led pasik o 20lediek
atd....
tym padom by som vedel vyadresovat vsetky zvlast....
dakujem.
este skor nez som pochopil princip adresovatelnych led som si myslel ze kazda ta led ma svoju adresu
ale prevda je ze ona LEDka ws2812 nema v sebe fyzicku adresu ale len vie ze za nou nieco je alebo nieje
a
tak pred tymto pochopenim som natahal kable na schody blbo.....
moja predstava
aby sa kazdy schod rozsvecoval postupne zdola az dohora
ale
zapojil som kable do hviezdy
vid priloha
este som to nezapojil ale myslim si ze na kazdom schode si prva ledka bude mysliet ze ma adresu1,
druha adr2 atd.....
tym padom budem vedeiet iba naraz osvietit sprava dolava alebo nejaku takuto kombinaciu...
otazka, existuje nejaky shifter ze by som to dal do kazdeho LEDpasika na schod ?
druhy schodovy led pasik by som stym posunul o 10lediek
treti schodovy led pasik o 20lediek
atd....
tym padom by som vedel vyadresovat vsetky zvlast....
dakujem.
0
Re: Ako posunut adresy ws2812 adresovatelnych led?
Plus a mínus nech jak je a data uprav podle obrázku.
1
1
- kukinko
- Ultimate člen
- Príspevky: 1536
- Dátum registrácie: 11 Júl 2008, 00:00
- Vek: 41
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
ak mas "original" WS2812 a len jeden riadiaci signal, tak jedine tak ako pisal balu - riadenie zapojit do serie..
pripadne pouzit viac vystupov (arduino?) a budes mat program pre viac stringov ..
este je tu tretia moznost ... ze mas cinske klony (SK6812) a tie maju adresy napevno a mozes svoje zapojenie ponechat a bude to fungovat
s tymi SK6812 som sa dlho trapil kym som prisiel na to ze maju pevne adresy... povodne to bola retaz aj s nejakym ovladacom ktory zdochol, tak sa dlhy pas strihol a na duine to neslo ... bol to samozrejme koniec pasu kde boli adresy posunute o ten "odstrihnuty" pocet lediek...
pripadne pouzit viac vystupov (arduino?) a budes mat program pre viac stringov ..
este je tu tretia moznost ... ze mas cinske klony (SK6812) a tie maju adresy napevno a mozes svoje zapojenie ponechat a bude to fungovat
s tymi SK6812 som sa dlho trapil kym som prisiel na to ze maju pevne adresy... povodne to bola retaz aj s nejakym ovladacom ktory zdochol, tak sa dlhy pas strihol a na duine to neslo ... bol to samozrejme koniec pasu kde boli adresy posunute o ten "odstrihnuty" pocet lediek...
0
"programujem = hram sa" s Arduino / ESP, LOGO!, Simatic + TIA
+ nejaka ta elektrobizuteria okolo
+ nejaka ta elektrobizuteria okolo
Re: Ako posunut adresy ws2812 adresovatelnych led?
To si možná pleteš s nějakými jinými adresovatelnými LEDkami. SK6812 se podle datasheetu chovají úplně stejně jako WS2812. Neposíláš nikdy žádnou adresu - vždy je řetězec dat.
0
- kukinko
- Ultimate člen
- Príspevky: 1536
- Dátum registrácie: 11 Júl 2008, 00:00
- Vek: 41
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
ved pisem ze ide o nejaky cinsky klon/ smejd, ktory ma ale adresy napevno
cize v programe neposielam data na ledky od 1
(napr 30 lediek : normalne 1-30 ale pri tom cinskom od 71-100 ak som to odstrihol na konci pasika)
pre duino neopixel kniznicu https://learn.adafruit.com/adafruit-neo ... ibrary-use
kde n je adresa ledky
cize v programe neposielam data na ledky od 1
(napr 30 lediek : normalne 1-30 ale pri tom cinskom od 71-100 ak som to odstrihol na konci pasika)
pre duino neopixel kniznicu https://learn.adafruit.com/adafruit-neo ... ibrary-use
Kód: Vybrať všetko
strip.setPixelColor(n, red, green, blue);
0
"programujem = hram sa" s Arduino / ESP, LOGO!, Simatic + TIA
+ nejaka ta elektrobizuteria okolo
+ nejaka ta elektrobizuteria okolo
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
Dakujem za odpovede ale nepomohli ste mi
s kablami sa uz neda nic robit
lebo to by som musel rozobrat dreveny obklad na schodoch
co je masaker a vsetko to uz mam hotove, toto je nerealne
schody su davane do takych hmozdiniek zospodu aj do peny takze by sa cele rozbili
tudy cesta nevede,
to ako to teeraz zapojit uz viem, otazka je ako to spravit stymto zapojenim......
jedine riesenie ja vidim v tom posune adries
cize pred kazdy pas zapojit akoby neviditelne ledky
ktore akoze ked sa vyadresuju budu svietit a tym sa mi cely pas adresovo posunie
ale ci nieco take existuje?
alebo vyrobit to nejako potom
datasheet k tomu a vyrobit/naprogramovat suciastku ktora sa bude chovat ako neviditelna ledka....
k tomu este to musi byt male aby sa to tam vopchalo do drazky na schodoch zospodu.....
ale tam by som nejaku dieru este s vedel vyvrtal zospodu..... sice trapenie ale slo by to.....
existuje nieco take ?
iny napad?
dakujem Vam i tak.
s kablami sa uz neda nic robit
lebo to by som musel rozobrat dreveny obklad na schodoch
co je masaker a vsetko to uz mam hotove, toto je nerealne
schody su davane do takych hmozdiniek zospodu aj do peny takze by sa cele rozbili
tudy cesta nevede,
to ako to teeraz zapojit uz viem, otazka je ako to spravit stymto zapojenim......
jedine riesenie ja vidim v tom posune adries
cize pred kazdy pas zapojit akoby neviditelne ledky
ktore akoze ked sa vyadresuju budu svietit a tym sa mi cely pas adresovo posunie
ale ci nieco take existuje?
alebo vyrobit to nejako potom
datasheet k tomu a vyrobit/naprogramovat suciastku ktora sa bude chovat ako neviditelna ledka....
k tomu este to musi byt male aby sa to tam vopchalo do drazky na schodoch zospodu.....
ale tam by som nejaku dieru este s vedel vyvrtal zospodu..... sice trapenie ale slo by to.....
existuje nieco take ?
iny napad?
dakujem Vam i tak.
0
Re: Ako posunut adresy ws2812 adresovatelnych led?
Pokud máš drážku zespoda schodu, tak by se tam dala nacpat DPS s malým MCU (třeba ATtiny13 - SOIC8, 5 volných IO nebo dokonce ATtiny10 - SOT-23, 3 volné IO), které budou mít shodný SW (kromě "adresy") a těm můžeš posílat instrukce, co mají dělat. Na IO ATtiny13 Ti musí stačit DPS 1x2 cm - dělal jsem bezdotykový spínač pro LED pásek (resp. pro řídící jednotku LED pásku) s ATtiny13 a IR snímáním přiblížení na DPS o rozměrech 21,9x9,5mm. 7805 a ATtiny13 se Ti na stejně velkou DPS musí vejít taky. Kromě toho by bohatě stačila 7805 v SOT-23, k tomu ATtiny10 v SOT-23 a DPS může mýt klidně cca 1x1cm.
Ve stejném pouzdře jako ATtiny13 je i ATtiny25/45/85 - tedy místo 1kB Flash můžeš mít 2/4/8kB Flash.
0
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
dikez za tip na attiny
led budu napajane 5v, takze tam problem s napajanim nebude....
ale co do toho attiny10 nahrat?
vedel by si to naprogramovat?
led budu napajane 5v, takze tam problem s napajanim nebude....
ale co do toho attiny10 nahrat?
vedel by si to naprogramovat?
0
Re: Ako posunut adresy ws2812 adresovatelnych led?
Do procesoru, který bude přímo řídit pásek napíšeš program, který bude obsahovat poslání dat do pásku a příjem instrukcí z nadřízeného systému. Schody budou mít třeba adresy 1-85 (pro 85 schodů), 0 = všechny schody.
Fungovat by to mělo třeba :
Pošleš data : schod 1 - jas 255
Procesor s adresou 1 rozsvítí pásek na maximum
schod 3 - jas 80
Procesor s adresou 3 rozsvítí pásek na jas 80
schod 0 (všechny schody) - jas 10
Každý procesor bez ohledu na adresu rozsvítí pásek na jas 10
atd.
Podobně může naprogramovat třeba efekty pro 1) postupnou změnu jasu, 2) změna zleva, 3) zprava od 4) středu na kraj, 5) od kraje do středu atd.
Pak pošleš data :
schod 1 - jas 255 - efekt 4 - procesor s adresou provede změnu jasu na 255 postupně od středu k oběma krajům (jakoby vlnu).
Jen musíš pamatovat, že ATtiny10 má jen 1kB flash, takže se nemůžeš moc rozvášnit.
Pokud by stačil jen efekt postupné změny jasu, tak ten ani nemusíš programovat, pak stačí poslat :
schod 1 - jas 1
schod 1 - jas 2
schod 1 - jas 3
schod 1 - jas 7
.
.
.
schod 1 - jas 127
schod 1 - jas 255
Mezi jednotlivýma příkazama třeba 50ms pauzu a schod se plynule rozsvítí z 0 na maximum třeba za 2 vteřiny. Během těch 50ms můžeš posílat příkazy ostatním schodům a můžeš tímhle způsobem plynule rozsvítit všechny schody jakoby .
Možná by šlo použít prostředí Arduina (nevím - nepoužívám) a pro LED pásek knihovnu, ale zbytek si asi budeš muset naprogramovat sám. Dále pokud nemáš programátor, který by uměl TPI (USBasp ho umí), tak bude potřeba použít ATtiny13 nebo řadu 25/45/85 - ty mají klasické ISP programování.
A ano - zvládnul bych to naprogramovat. To bych o tom jinak nepsal.
Fungovat by to mělo třeba :
Pošleš data : schod 1 - jas 255
Procesor s adresou 1 rozsvítí pásek na maximum
schod 3 - jas 80
Procesor s adresou 3 rozsvítí pásek na jas 80
schod 0 (všechny schody) - jas 10
Každý procesor bez ohledu na adresu rozsvítí pásek na jas 10
atd.
Podobně může naprogramovat třeba efekty pro 1) postupnou změnu jasu, 2) změna zleva, 3) zprava od 4) středu na kraj, 5) od kraje do středu atd.
Pak pošleš data :
schod 1 - jas 255 - efekt 4 - procesor s adresou provede změnu jasu na 255 postupně od středu k oběma krajům (jakoby vlnu).
Jen musíš pamatovat, že ATtiny10 má jen 1kB flash, takže se nemůžeš moc rozvášnit.
Pokud by stačil jen efekt postupné změny jasu, tak ten ani nemusíš programovat, pak stačí poslat :
schod 1 - jas 1
schod 1 - jas 2
schod 1 - jas 3
schod 1 - jas 7
.
.
.
schod 1 - jas 127
schod 1 - jas 255
Mezi jednotlivýma příkazama třeba 50ms pauzu a schod se plynule rozsvítí z 0 na maximum třeba za 2 vteřiny. Během těch 50ms můžeš posílat příkazy ostatním schodům a můžeš tímhle způsobem plynule rozsvítit všechny schody jakoby .
Možná by šlo použít prostředí Arduina (nevím - nepoužívám) a pro LED pásek knihovnu, ale zbytek si asi budeš muset naprogramovat sám. Dále pokud nemáš programátor, který by uměl TPI (USBasp ho umí), tak bude potřeba použít ATtiny13 nebo řadu 25/45/85 - ty mají klasické ISP programování.
A ano - zvládnul bych to naprogramovat. To bych o tom jinak nepsal.
0
Naposledy upravil/-a balu v 05 Jan 2023, 10:37, upravené celkom 1 krát.
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
moc si to skomplikoval....
ja si to predstavujem takto
procesor ktory to bude ovladat bude jeden a ten nebude ani tusit ze je tam ten pomocny ktory pusuva adsesy
cize si bude mysliet ze je vsetko zapojene do serie
a mozem stym robit normalne......
ten posuvac adries:
(teraz studujem ako to vastne ten ws2812 funguje)
ale furt tomu nerozumiem
asi to ide takto?
poslem na vstup 24bitov
a rozsvieti/zhasne/nastavi sa mi prva ledka
ten prvy ws2812 zozerie tychto 24bitov a posle len zbytok ktory posiela procesor?
cize ak poslem dalsich 24bitov
a rozsvieti/zhasne/nastavi sa mi druha ledka
ta zase 24bitov zozerie
a kde je jas?
asi si to este musim dostudovat
ale neviem ako tymto sposobom zapnut/vypnut iba 1ledku v strede pasu
to by som musel poslat plno bajtov do celeho pasu zaradom aby sa to zmenilo
funguje to takto blbo?
nieje tam este dlhsi retazec ktory urcuje aj pre ktoru led v poradi ten prikaz plati?
asi by som tam ja toto dal.... ale neviem najst poriadny datasheet k tomu zatial.....
-------
programator mam profi.... tam problem nieje, asi uz len poriadny datasheet a spravim to
ja si to predstavujem takto
procesor ktory to bude ovladat bude jeden a ten nebude ani tusit ze je tam ten pomocny ktory pusuva adsesy
cize si bude mysliet ze je vsetko zapojene do serie
a mozem stym robit normalne......
ten posuvac adries:
(teraz studujem ako to vastne ten ws2812 funguje)
ale furt tomu nerozumiem
asi to ide takto?
poslem na vstup 24bitov
a rozsvieti/zhasne/nastavi sa mi prva ledka
ten prvy ws2812 zozerie tychto 24bitov a posle len zbytok ktory posiela procesor?
cize ak poslem dalsich 24bitov
a rozsvieti/zhasne/nastavi sa mi druha ledka
ta zase 24bitov zozerie
a kde je jas?
asi si to este musim dostudovat
ale neviem ako tymto sposobom zapnut/vypnut iba 1ledku v strede pasu
to by som musel poslat plno bajtov do celeho pasu zaradom aby sa to zmenilo
funguje to takto blbo?
nieje tam este dlhsi retazec ktory urcuje aj pre ktoru led v poradi ten prikaz plati?
asi by som tam ja toto dal.... ale neviem najst poriadny datasheet k tomu zatial.....
-------
programator mam profi.... tam problem nieje, asi uz len poriadny datasheet a spravim to
0
Re: Ako posunut adresy ws2812 adresovatelnych led?
Popsaná varianta :
Ne - hlavní procesor nebude řídit LEDky vůbec. Ten bude posílat instrukce ostatním procesorům. Ty vlastně program z hlavního procesoru hodíš do těch pomocných a budeš je tím hlavním řídit.
LEDky NEJSOU adresovatelné jako paměť (adresa, data) - ty adresuješ tím, že pošleš tolik dat, kolik máš LEDek. Obrazně řečeno - podle toho, jak daleko data dotečou, tolik LEDek je zpracuje. 24bitů pro každou LEDku. Tedy pokud máš 3 LEDky za sebou, pošleš 3x24 bitů. Pokud potřebuješ změnit svit té prostřední, upravíš hodnoty pro 2. LEDku (v paměti MCU) a pošleš zase těch 3x24 bitů.
2. varianta programu pomocných procesorů je taková, že by vytvořily virtuálně řetěz (vlastně by se naprogramoval ten Tvůj vysněny "shifter") - že bys nemusel měnit program hlavního procesoru. Každý pomocný procesor by nejdříve na základě své adresy ignoroval data pro počet schodů krát počet LED v pásku a pak by začal přeposílat data do těch "svých" LED a pak by musel ignorovat data pro zbylé LEDky v ostatních schodech. Prostě z celého toku bitů by musel vybrat jen tu část pro svůj pásek.
A i tohle bych samozřejmě zvládl naprogramovat.
Ne - hlavní procesor nebude řídit LEDky vůbec. Ten bude posílat instrukce ostatním procesorům. Ty vlastně program z hlavního procesoru hodíš do těch pomocných a budeš je tím hlavním řídit.
LEDky NEJSOU adresovatelné jako paměť (adresa, data) - ty adresuješ tím, že pošleš tolik dat, kolik máš LEDek. Obrazně řečeno - podle toho, jak daleko data dotečou, tolik LEDek je zpracuje. 24bitů pro každou LEDku. Tedy pokud máš 3 LEDky za sebou, pošleš 3x24 bitů. Pokud potřebuješ změnit svit té prostřední, upravíš hodnoty pro 2. LEDku (v paměti MCU) a pošleš zase těch 3x24 bitů.
Skoro přesně, jak jsi to popsal. Jen pokud necháš po prvních 24 bitech pauzu pro zápis, zapisuješ zase do první LEDky. Musíš poslat data pro všechny LEDky před tou, co chceš změnit plus tu, co chceš změnit.jordiksvk napísal:asi to ide takto?
poslem na vstup 24bitov
a rozsvieti/zhasne/nastavi sa mi prva ledka
ten prvy ws2812 zozerie tychto 24bitov a posle len zbytok ktory posiela procesor?
cize ak poslem dalsich 24bitov
a rozsvieti/zhasne/nastavi sa mi druha ledka
ta zase 24bitov zozerie
2. varianta programu pomocných procesorů je taková, že by vytvořily virtuálně řetěz (vlastně by se naprogramoval ten Tvůj vysněny "shifter") - že bys nemusel měnit program hlavního procesoru. Každý pomocný procesor by nejdříve na základě své adresy ignoroval data pro počet schodů krát počet LED v pásku a pak by začal přeposílat data do těch "svých" LED a pak by musel ignorovat data pro zbylé LEDky v ostatních schodech. Prostě z celého toku bitů by musel vybrat jen tu část pro svůj pásek.
A i tohle bych samozřejmě zvládl naprogramovat.
0
Naposledy upravil/-a balu v 05 Jan 2023, 11:00, upravené celkom 1 krát.
Re: Ako posunut adresy ws2812 adresovatelnych led?
Ty LEDky NEMAJÍ vlastní adresy - ta knihovna to dělá stejně, jak jsem to popsal - v paměti změní hodnoty pro požadovanou LEDku a pošle data pro celý pás.kukinko napísal: ↑05 Jan 2023, 08:23ved pisem ze ide o nejaky cinsky klon/ smejd, ktory ma ale adresy napevno
cize v programe neposielam data na ledky od 1
(napr 30 lediek : normalne 1-30 ale pri tom cinskom od 71-100 ak som to odstrihol na konci pasika)
pre duino neopixel kniznicu https://learn.adafruit.com/adafruit-neo ... ibrary-usekde n je adresa ledkyKód: Vybrať všetko
strip.setPixelColor(n, red, green, blue);
0
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
Ahoj Balu
varianta2 sa mi paci
pretoze sa to bude tvarit akoby to bolo zapojene spravne
a mozem na to potom pouzit hocico uz hotove na ovladanie......
vies to urobit v AVRc pre attiny13?
varianta2 sa mi paci
pretoze sa to bude tvarit akoby to bolo zapojene spravne
a mozem na to potom pouzit hocico uz hotove na ovladanie......
vies to urobit v AVRc pre attiny13?
0
Re: Ako posunut adresy ws2812 adresovatelnych led?
Zkusím se na to podívat, ale mám pocit, že to bude neproveditelné vzhledem k délce impulzů. Určitě nepůjde použít Cčko. Tady má teoretickou šanci jenom assembler, ale myslím, že ani ten to nedá... Low pro log. nulu trvá 3 instrukce AVR procesoru na 8 MHz. Mám trochu obavu, že bude třeba jít tou cestou, že pomocné procesory budou řídit své LED pásky a hlavní procesor bude předávat instrukce těm pomocným. Zkusím na to večer kouknout a uvidíme.
0
-
- Ultimate člen
- Príspevky: 6236
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: Ako posunut adresy ws2812 adresovatelnych led?
trocha OT, ale zaujima ma, preco si pouzil tieto ledky? Nie je to na schody zbytocny luxus?
ja mam na kazdy schod jeden pas klasickych a potom cez 16 kanalovy pwm si nastavujem intenzitu pre kazdy schod - nepotrebujem mat napr. nalavo silnejsie svetlo a napravo slabsie.
ja mam na kazdy schod jeden pas klasickych a potom cez 16 kanalovy pwm si nastavujem intenzitu pre kazdy schod - nepotrebujem mat napr. nalavo silnejsie svetlo a napravo slabsie.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
ahoj
bolo to narychlo
myslel som ze budem robit taky efekt ze sa budu rozsvecovat zo stredu ku krajom kazdy schod a potom to pojde tak dohora.....
a pacila sa mi myslienka ovladat to lubovolne,
no stymto pokablovanim by bolo aj pwm problem......
balu:
attiny10 moze ist na 12mhz teraz som kukol v datasheete
tj 0,0833333us na kazdu instrukciu
AVRasm:
OUT A, Rr Out to I/O Location I/O (A) ← Rr None 1cyklus trva
mohlo by sa to potom v avr stihnut.....
no som zvedavy ci sa to bude dat aj inac napisat.....
log 1/0 v ws2812 je cca 1,2us
ale zase
AVRasm:
SBIS A, b Skip if Bit in I/O Register is Set if (I/O(A,b)=1) PC ← PC + 2 or 3 None 1/2/3
to co je 1? 2 ci 3?
alebo 1/2 ked neskace a 3 ked skace?
ci wogo to je info 1/2/3.....
mas pravdu ze v inom ako v AVRasm to asi nebude stihat.....
vies AVRasm ?
bolo to narychlo
myslel som ze budem robit taky efekt ze sa budu rozsvecovat zo stredu ku krajom kazdy schod a potom to pojde tak dohora.....
a pacila sa mi myslienka ovladat to lubovolne,
no stymto pokablovanim by bolo aj pwm problem......
balu:
attiny10 moze ist na 12mhz teraz som kukol v datasheete
tj 0,0833333us na kazdu instrukciu
AVRasm:
OUT A, Rr Out to I/O Location I/O (A) ← Rr None 1cyklus trva
mohlo by sa to potom v avr stihnut.....
no som zvedavy ci sa to bude dat aj inac napisat.....
log 1/0 v ws2812 je cca 1,2us
ale zase
AVRasm:
SBIS A, b Skip if Bit in I/O Register is Set if (I/O(A,b)=1) PC ← PC + 2 or 3 None 1/2/3
to co je 1? 2 ci 3?
alebo 1/2 ked neskace a 3 ked skace?
ci wogo to je info 1/2/3.....
mas pravdu ze v inom ako v AVRasm to asi nebude stihat.....
vies AVRasm ?
0
-
- Ultimate člen
- Príspevky: 6236
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: Ako posunut adresy ws2812 adresovatelnych led?
aha, ok. Ja som tiez chcel povodne vselijake efekty, ale nakoniec sa ukazalo, ze co sa tyka praktickosti, tak klasicke rozsvietenie so "smooth" efektom - cize ako keby to svetlo islo hore (dole) schodmi.
dalo by sa aj teraz, ale stale je to o tom, dat nejaky maly mcu na kazdy schod a riadit ich cez ten jeden datovy kabel.
dalo by sa aj teraz, ale stale je to o tom, dat nejaky maly mcu na kazdy schod a riadit ich cez ten jeden datovy kabel.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
-
- Stály člen
- Príspevky: 141
- Dátum registrácie: 15 Feb 2010, 00:00
- Bydlisko: Kosice
- Vek: 47
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
cena tych led je asi velmi podobna,
neviem stiahnut avrstudio
furt ma to sekne na microchip stranku...... a tam nic....
neviem stiahnut avrstudio
furt ma to sekne na microchip stranku...... a tam nic....
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Ako posunut adresy ws2812 adresovatelnych led?
Je to tam vysvetlené pomerne jednoznačne.1 if condition is false (no skip)
2 if condition is true (skip is executed) and the instruction skipped is 1 word
3 if condition is true (skip is executed) and the instruction skipped is 2 words
1 cyklus ak je false, teda nasledovná inštrukcia sa vykonáva
2 cykly ak je true, a preskakuje sa jednoslovná inštrukcia
3 cykly ak sa preskakuje dvojslovná inštrukcia
Niektoré inštrukcie AVR totiž zaberaju dve slova (32bit) ostatné iba jedno(16bitov)
Veľa štastia toto uchytať. Ani v asm to nebude prechádzka ružovým sadom. Radšej tam daj niečo čo beží čo najvyššie. Obávam sa že aj 20MHz bude málo.
Pri 10Mhz to je 12 inštrukcií? to je nič. To si moc nepotestuješ ani nepoukladáš.
Kedysi som robil sw príjem Irda a to do rýchlosti 115200 baud. teda 10x pomalšie. A chcelo to procesor čo tikal na 50Mhz. Je pravda že ten IrDA stack je o dosť komplikovanejší ako je toto ale tu nebudeš stíhať ani fyzickú vrstvu. Teda príjem bitov a ukladanie do bytov.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Ako posunut adresy ws2812 adresovatelnych led?
Pokud budeš mít každý pásek řízený vlastním malým kontrolerem, kterému budeš z hlavního řízení posílat příkazy, jak jsem psal výše, tak to není problém. Myslím, že to bude daleko nejjednodušší, jak dosáhnout to, co bys chtěl a aby to spolehlivě fungovalo. Naprogramuješ si do kontroleru "animace" pro jeden pásek a pak dáš ty kontrolery k páskům na jednotlivé schody. Následně naprogramuješ "hlavní řízení", aby jednotlivým schodům posílalo jenom něco ve smyslu "Schod 3, animace 7, cílový jas 127" - i s kontrolním součtem řekněme 5 bytů. Jenže to se Ti zdá moc složité.
Chválím Tě za použití datasheetu, ale taky musíš koukat, odkud ty hodiny vezmeš. V případě DPS třeba 5x7 cm není problém tam hodit klidně i velký oscilátor (ATtiny10 nemá tolik nožiček, abys mohl použít krystal), takže musíš počítat s IntRC 8 MHz. Naproti tomu třeba ATtiny25 umí při použití interního PLL až 16MHz interně. A tady je třeba se vejít na DPS o rozměru kolem těch 2x1cm, aby ses vešel do šířky lišty a nezabíral jsi moc místa v liště samotné.
Assembler AVR samozřejmě zvládám, to bych o tom jinak nepsal. Jenže to není jenom o programu. Základem je šikovné využití periferií. Přemýšlím tedy nad použitím :
- co nejrychlejšího procesoru bez externího zdroje hodin
- Využití Counteru s použitím externího vstupu pro počítání impulzů
- šikovného použití OCR registrů k automatickému vyvolání reakce (přerušení) při dosaženém počtu požadovaných hran na vstupu.
Mě z toho zatím nejlépe vychází ta řada 25/45/85. Taky je třeba vědět, kolik RAM procesor má (ATtiny10 a ATtiny13 jsem právě vyřadil. Mají jen 32 a 64 bytů RAM) Potřebuješ na každou LED 3 byty. Kolik máš LEDek na jednom schodě ?
Mimochodem - nenapsal jsi, kolik místa na tu destičku můžeš poskytnout, takže velikost DPS jenom hádám. Podle toho by se dalo třeba vybrat i procesor s UARTem a více RAM. Pak by to bylo i z hlediska naprogramování vlastní komunikace ještě mnohem a mnohem jednodušší. I když - na UART je zase nejlepší mít u MCU krystal, jinak hrozí potíže se spolehlivostí.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 1 Odpovedí
- 471 Zobrazení
-
Posledný príspevok od používateľa breta1
-
- 15 Odpovedí
- 2072 Zobrazení
-
Posledný príspevok od používateľa kapor
-
- 1 Odpovedí
- 1876 Zobrazení
-
Posledný príspevok od používateľa enigma
-
- 8 Odpovedí
- 1069 Zobrazení
-
Posledný príspevok od používateľa mclareniak
-
- 6 Odpovedí
- 2710 Zobrazení
-
Posledný príspevok od používateľa enigma