Parallax ColorPAL
- feherbalint
- DrótVégénSzéndarab
- Hozzászólások: 42
- Csatlakozott: 2008. augusztus 29. péntek, 6:00
Elvileg a "= G s !" paranccsal ( G helyére mehet az R és a B is akár) külön-külön is be lehet olvasni. Azért nem használtam ezt a multi-sample-t, mert azt egyszerűen nem tudom, hogy milyen változóba tudnám beolvasni. Nincs valami konkrét ötleted a beolvasásra? A serin-nel szerintem jó lenne, de én már mindent megpróbáltam, de mégse jött össze. Próbálkozok tovább, de már kezdek nagyon kifogyni az ötletekből. Tulajdonképp ugyan azokat a dolgokat próbálom ki, már vagy harmadjára.
Long-ba próbáltam beolvasni ezt az RGB kódot, de össze vissza jönnek értékek, sokszor csak 0.
Long-ba próbáltam beolvasni ezt az RGB kódot, de össze vissza jönnek értékek, sokszor csak 0.
- feherbalint
- DrótVégénSzéndarab
- Hozzászólások: 42
- Csatlakozott: 2008. augusztus 29. péntek, 6:00
- feherbalint
- DrótVégénSzéndarab
- Hozzászólások: 42
- Csatlakozott: 2008. augusztus 29. péntek, 6:00
Sikerült megcsinálni, mostmár jól működik!
Köszönöm szépen mindenki segítségét!
De hogy az élet ne legyen túl egyszerű, újabb hibával találkoztam. A serin/serout parancsnál ki kell kapcsolni a megszakítást, ami viszont a szoftveres pwm-nek nem tesz jót. Viszont ez már egy másik téma.
A működő program:
A lényege a dolognak, hogy jön 9 számjegy ASCII kódja, amit sajnos csak byte-ba tudok fogadni, és még azt " össze kell rakni" egy 3 jegyű számmá, ami hex-ben lesz. Ezt át kell konvertálni decimálissá, és így megkapjuk az RGB kódot. Remélem hogyha valaki egy ilyen szenzort vesz, nem kell neki szenvedni ennyit.
Hogy ha valakinek esetleg van ötlete a PWM-re, akkor valami pwm-es témában megbeszélhetnénk!
Köszönöm szépen mindenki segítségét!
De hogy az élet ne legyen túl egyszerű, újabb hibával találkoztam. A serin/serout parancsnál ki kell kapcsolni a megszakítást, ami viszont a szoftveres pwm-nek nem tesz jót. Viszont ez már egy másik téma.
A működő program:
Kód: Egész kijelölése
$regfile = "m16def.dat"
$baud = 4800
$crystal = 16000000
Dim Be1 As Byte
Dim Be2 As Byte
Dim Be3 As Byte
Dim Be4 As Byte
Dim Be5 As Byte
Dim Be6 As Byte
Dim Be7 As Byte
Dim Be8 As Byte
Dim Be9 As Byte
Dim Parancs As String * 10
Dim Red As String * 3
Dim Green As String * 3
Dim Blue As String * 3
Dim Red2 As Word
Dim Green2 As Word
Dim Blue2 As Word
Parancs = "= m !"
Do
Gosub Resetpal
Serout Parancs , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be1 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be2 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be3 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be4 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be5 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be6 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be7 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be8 , 1 , B , 1 , 4800 , 0 , 8 , 1
Serin Be9 , 1 , B , 1 , 4800 , 0 , 8 , 1
Red = Chr(be1) + Chr(be2) + Chr(be3)
Green = Chr(be4) + Chr(be5) + Chr(be6)
Blue = Chr(be7) + Chr(be8) + Chr(be9)
Red2 = Hexval(red)
Green2 = Hexval(green)
Blue2 = Hexval(blue)
If Red2 > 255 Then Red2 = 255
If Green2 > 255 Then Green2 = 255
If Blue2 > 455 Then Blue2 = 255
Print Red2 ; " " ; Green2 ; " " ; Blue2
Loop
Resetpal:
Config Portb.1 = Output
Reset Portb.1
Waitms 80
Set Portb.1
Waitms 10
Config Portb.1 = Input
Return
A lényege a dolognak, hogy jön 9 számjegy ASCII kódja, amit sajnos csak byte-ba tudok fogadni, és még azt " össze kell rakni" egy 3 jegyű számmá, ami hex-ben lesz. Ezt át kell konvertálni decimálissá, és így megkapjuk az RGB kódot. Remélem hogyha valaki egy ilyen szenzort vesz, nem kell neki szenvedni ennyit.
Hogy ha valakinek esetleg van ötlete a PWM-re, akkor valami pwm-es témában megbeszélhetnénk!
- feherbalint
- DrótVégénSzéndarab
- Hozzászólások: 42
- Csatlakozott: 2008. augusztus 29. péntek, 6:00
M16 helyett M164P : 2 sorosport van benne, és lábkompatibilis a M16-l...
SW sorosport és SW PWM: nem megy együtt!...
Tipp: ha tudod, h a SW PWMben mennyit időzöl, akkor a SW sorosport sebességét vedd kicsit lejjebb. Ől 4800-ról 4600-ra. Igy a csúszások kiegyenlítoik egymást....
AVR HW sorosportja 1% toleráns....
SW sorosport és SW PWM: nem megy együtt!...
Tipp: ha tudod, h a SW PWMben mennyit időzöl, akkor a SW sorosport sebességét vedd kicsit lejjebb. Ől 4800-ról 4600-ra. Igy a csúszások kiegyenlítoik egymást....
AVR HW sorosportja 1% toleráns....
1 szem ATMega processzor nem képes 1*re SW-böl kezelni mindent!
Ezért rakták tele az IC-t különböző HW eszközökkel.
Ezeket kellene messzemenően kihasználni!
1.: Lehetne HW sorosport RX, TX vezetékét valami külső eszközzel közösíteni?
……
2.: Lehetne HW sorosport RX bemenetét váltva használni. Adat küldésnél SW kimenet lenne.
Adat fogadásnál (Mivel itt hibázik neked) Lene HW soros bemenet. Amit tudnál megszakításban pufferelten kezelni. Így nem kellene a megszakítást letiltanod, mivel nem zavarnák egymást.
Ezért rakták tele az IC-t különböző HW eszközökkel.
Ezeket kellene messzemenően kihasználni!
1.: Lehetne HW sorosport RX, TX vezetékét valami külső eszközzel közösíteni?
……
2.: Lehetne HW sorosport RX bemenetét váltva használni. Adat küldésnél SW kimenet lenne.
Adat fogadásnál (Mivel itt hibázik neked) Lene HW soros bemenet. Amit tudnál megszakításban pufferelten kezelni. Így nem kellene a megszakítást letiltanod, mivel nem zavarnák egymást.
- feherbalint
- DrótVégénSzéndarab
- Hozzászólások: 42
- Csatlakozott: 2008. augusztus 29. péntek, 6:00
Én arra gondoltam, hogy egy attiny-t használni a ColorPal olvasására, és az attiny küldené valamilyen kommunikációval a másik avr-nek, amibe nem zavar bele a megszakítás. Persze ez csak akkor lenne működőképes, ha van ilyen kommunikáció. Ennek nemsokára utánanézek. Kapu48, köszönöm a válaszod, ezt is megpróbálom értelmezni, első olvasásra még nem sikerült.