Infra jelek dekódolása

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Allspark
Bitmanipulátor
Hozzászólások: 106
Csatlakozott: 2009. július 9. csütörtök, 6:00

Hozzászólás Szerző: Allspark »

Az ár sajnos elsődleges, ezért ha nem muszáj nem szeretnék nagyobbra válltani.
kapu48 a te kódodat még nem nagyon értem de elolvasom amit belinkeltél és ha valami azután se tiszta jelentkezem.
És átmegyek a belinkelt témára mert ez már tényleg nem ide való.
Köszönöm.
Avatar
Allspark
Bitmanipulátor
Hozzászólások: 106
Csatlakozott: 2009. július 9. csütörtök, 6:00

Hozzászólás Szerző: Allspark »

Nah elolvastam minden ezzel kapcsolatos infót és már nagyjából értem is.
Most viszont már megyek aludni.
Köszönöm az eddigieket.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A chipek közti árlápcső néhány 100Ft.

A kódoptimalizáció hogy beleférjél több óra.... Így az erre jutó órabéred 5-25Ft/óra.

Ha fejlesztő kell, szólhatok :P ?
Avatar
Allspark
Bitmanipulátor
Hozzászólások: 106
Csatlakozott: 2009. július 9. csütörtök, 6:00

Hozzászólás Szerző: Allspark »

Nem kell köszi :D
Csak hobbizok egyenlőre, de ha ez elkészül akkor valószínű hogy nem csak egy kell belőle. Az édesapámnak kellenek ezek a kütyük majd, ezért szeretném ha minnél olcsóbban kijönne és ha már kész van a progi hozzá kicsit több időráfordítással (már eddigis eleget szenvedtem vele :D ) akkor ha esetleg kell egy pár hónap múlva, akkor csak megvesszük az olcsóbb alkatrészeket és csak beleégetem.
Egyépként pontosan hogy érted hogy ha fejlesző kell szólhatsz-e? :)
Avatar
Hegemon
Biztosítékgyilkos
Hozzászólások: 58
Csatlakozott: 2009. március 13. péntek, 6:00

Hozzászólás Szerző: Hegemon »

Sziasztok megint.

Tegnap böngézgettem a Bascom súgóját és találtam egy
PULSEIN var , PINX , PIN , STATE
és egy
PULSEOUT PORT , PIN , PERIOD
parancstestvériséget.
Irtam is gyorsan egy kis próbát a help alapján

Kód: Egész kijelölése

$regfile = "m16def.dat"
$crystal = 4000000
$baud = 19200
Dim W As Word
Do
Pulsein W , Pind , 2 , 0                       'detect time from 0 to 1
If W > 0 Then Print W
Loop
End
Ez ad is vissza (többé kevésbé, olyan 60% os hibaszázallékkal) azonos számsorokat azonos gombra, minden távirányítóval, viszont fogalmam sincs hogy miez. Lehet hogy vakvágány, de a többi kód közül egyik se vesz értelmes jelet az itthon levő 8 távorányítóból egyből se.
Szal ha valaki elmagyarázná, hogy ez milyen jelet is vesz, vagy mire való ez a kis kódsor, megköszönném.
aztán csak remélem hogy idetartozik a kérdés :roll:
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Én pl. SPI busz helyett/SPI kommunikációra használom. Most pl a MCP2308-as AD konverer IChez (12bit@50kHz)...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Ez „Pulsein W , Pind , 2 , 0” nem tudja venni az RC5-ös jelsorozatot!
Mert nem ismeri a pontos időzítéseket, és az adatfolyam protokollját!
RC5-röl leírást itt találsz: http://home.arcor.de/parabol60/index.htm?rc5.htm
Vagy itt: http://users.telenet.be/davshomepage/rc5.htm
Keres Phillips TV kódot 1 programozható távszabályzón. Azzal mennie kel hibátlanul!
8)
Avatar
Hegemon
Biztosítékgyilkos
Hozzászólások: 58
Csatlakozott: 2009. március 13. péntek, 6:00

Hozzászólás Szerző: Hegemon »

a rengeteg távirányíróta a Getrc5 egyáltalán nem reagál.
pár pl.
eddig ezzel volt vezérelve az okosház laptopra irva, Lirc vel vagy winlirc el, mikor milyen zászlós, vagy pingvines kedvem volt :-)
Felső rész a villanyokat miegymás, az alsó rész a multimédiát igazgatta.
Használtam még ezzel de ezt tunerkarival eladni kényszerültem.

Ittvan jópár féle kódkiosztás nem tudom hogy ez segít e a hozzáértőknek. Ezekből azt gyanítom hogy az RC5 nem is olyan elterjedt dolog home berkekben :D
Szóval a konkrét bajom hogy már csak ez hiányzik az okosházhoz, hogy működjön, és kezd kellemetlen lenni hogy még me kell ruházzak távirányítóra... Van egy 300 Ft os univerem, ami kölcsön van adva, de mi kor itt volt az se nagyon értette meg magát a getrc5 el, nem beszélve arról hogy a gombkiosztása is kedvezőtlenebb.

Jahm fentebb az LIRC linkekhez kérdés is tartozna. azok alapján esetleg tudnátok segíteni akár Robert kódját módosítani az én paramétereimhez?
(4 mhz kristály).
Az a kód mutatott életjelet csak (igaz random számokkal) és a pulsein, de akkor ez utóbbit megintcsak elvetjük ugyebár. :-)
és persze köszi a választ :-)[/url]
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

GetRC5 csak RC 5-s kódolás dekódolására való. ez a Philips szabványa. De lett belőle még RC6 is :)

Az univerzális távirányítókon általában van valmelyik kódrendszer....
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Szerintem nem jó oldalról állsz hozzá a témához!
Itt nem az elterjedtség a mérvadó, hogy mit használsz!
Amelyiknek a kódrendszere üzleti titoknak minősül azt nem lehet leszimulálni!
Mivel nem találsz hozzá dokumentációt! Ezért kénytelenek vagyunk azt a kódrendszert használni, amelyiknek megvan a pontos dokumentációja. És könnyebb 1 megfelelő távszabályzót szerezni, mint megírni 1 másik rendszerre az időzítéseket.

Csak Berakod a programod elejére, hogy milyen Kavicsot használsz. Majd a Bascom kiszámolja hozzá az RC5-ös időzítéseket.
Avatar
Hegemon
Biztosítékgyilkos
Hozzászólások: 58
Csatlakozott: 2009. március 13. péntek, 6:00

Hozzászólás Szerző: Hegemon »

Áhhá .. Értem. Akkor nincs mese keresek olcsó és jó univerzális távirányítót, legalább akkor a későbbiekben minden szoba tud kapni egyet és nem kell hurcibászni.
Megfordult a fejemben hogy csinálok saját távirányítőt egy kissebb avr el, de úgy többe kerül a hús mint a leves, viszont úgy mindenképp sajátigények szerinti lenne... Na talán majd a 10 éves upgrédnél :-)

Mellékesen az lirc honlapján amit fentebb adtam linket van RC8 is :)

Köszönöm a segítséget mégegyszer :)
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Hozzászólás Szerző: SanyiSay »

Karcsúsítottam picit.
Eldobtam az első pár bitet az úgysem volt lényeges így belefért Long-ba.
Tudom jól teleraktam a megszaítási rutint, de megy. :)

Dim Capdb As Byte 'megszakítás db szám
Dim Kod As Long '4 Byte-on tárolt kód
Dim B As Byte

Config Timer1 = Timer , Prescale = 256 , Capture Edge = Falling
On Capture1 Captmr
Enable Interrupts
Enable Capture1

Capdb = 1

Do
If Capdb = 49 Then
Disable Capture1

Cls
Lcd Kod

Incr Capdb

Enable Capture1
End If

Loop

Captmr:

If Capture1 > 100 Then 'szép nagy indítójel észlelése
Capdb = 0
Kod = 0
End If

If Capdb > 49 Then Return

If Capture1 > 40 And Capdb > 16 Then
B = Capdb - 17
Toggle Kod.b
End If

Incr Capdb

Timer1 = 0
Return
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Üdv!
A programod egyik szépséghibája, hogy 2db. „Return” utasítás van a megszakítás rutinban!
Ami elvileg nem megengedet! Mert a fordító csak az egyiket fordítja helyesen „Reti-nek”!
A másik csak „Ret” lesz. És megszakítási problémákat fog okozni.

Bascom help: Assembler mnemonics ->
RET Subroutine Return PC = STACK None 4
RETI Interrupt Return PC = STACK I 4
:roll:
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Ja a másik nagy hiba, hogy fogalmunk nincs miről is szól az egész program? !
:cry: :roll: :? :oops:
Pár magyarázó megjegyzést azért illett volna bele rakni! :cry:
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Hozzászólás Szerző: SanyiSay »

Valamint szintén hiba, hogy az első bejegyzésem eltűnt miután módosítottam benne .
Így a karcsúsítottam sem értelmes mert ugye mit?? :)
Mondjuk gyanús is volt mert lefagyott az oldal a javítás küldése kor.

A Returnt köszi, de nem tudtam.
Viszont most sem értem akkor ,hogy hagyom ott a rutint?
Vagy muszáj végig futnia? Bármivel nem szokott ott sok minden lenni lehet nem is gond.

Valamint eddig a programig azt sem tudtam hogy a toggle, capture, incr mire jók.


Aprogram lényege:
attiny2313
8Mhz

A Timer1 Capture megszakítását használva lemérem az egymást követő lefutó éleket, amik természetesen a Tsop1736 ból jönnek a 2313 ICP lábára.
Ahogy néztem a legtöbb távirányító az indulásnak egy szép hosszú észrevehető jelet generál aztán jön ugye az adatfolyam.
Valahogy így jelen esetben a mért értékek 160,26,53,26,26,53 +-2 pontatlanság

Ezért a várom a hosszú jelet és onnan a beérkező jelek hosszát, ami vagy dupla, vagy szimpla hosszú, 1 vagy 0 ra alakítom. Közben a kezdettől számított helyére teszem egy változóa bitenként. Mivel 50 jelet ad ez a távkapcs, és eleje úgyis csak készülék kód stb nem változik, az első 16 bitet kihagytam és így a többi befért egy Long tipusba. Ha jött 49 jel akkor késznek tekintem a kódolást.

Az egyszerűség és a mérési pontatlanságmiatt minden jelet ami 100-nál nagyobb kezdő jelnek veszek, és az dupla szinpla pedig 40 alatt és felett van meghatározva.
Természetesen ez csak akkor igaz ha 11101101 nincs egymást követő kettő 0 mert akkor az egy nek lesz értékelve hiába lenne a mért érték kb 75 hisz a 40-es limit fölött van. Viszont nem volt ilyen adat ezért erre nem volt szükség. Mert így ugye az adathossz sem lenne 49 db jel.

Tapasztalatom hogy a szerelő asztalom fénycsöve folyamatos jelet generál tsopnak (kb 20 cm-revan) de még ezzel együtt is szépen muzsikál.
Válasz küldése