ENTERPRISE KLUB
2019. szeptember 7., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: HID kezelés Arduino -val (Read 43042 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #90 on: 2014.October.01. 21:18:31 »
Quote from: Z80System
Kontrol portoknál is lenne egyébként olyan lehetőség, hogy kivinném a nemtomhánybites értéket, mielőtt még 4irány+lövés drótra lennének szétszedve,

és akkor lehetővé válna az EP -vel beszedni azt s sokféle értéket, mint korábban írtam ?
4 bites értéked van, így 16x3-at lehetene, azaz összesen 48-at.
Meg a billentyűzeten a plusz sorokban kapsz 6x8-at, ami szintén 48.

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #91 on: 2014.October.01. 21:43:39 »
Itt mikor a billentyűzetnél nem a 10 bitet vesszük figyelembe, amelyek közül garantáltan csak egyik lesz kijelölt,
hanem 4 biten vesszük le a "címet", akkor nem alakul ki itt valami időzítési kérdés ?

Tehát honnan tudhatom hogy egy olyan időpillanat van, amikor mind a 4 bitem jó, és leolvashatom őket ?

Ugyanez visszafele, mikor beírom neki a 8 bitet visszafele, nem kellene valami 9. madzagon jeleznem neki, hogy na most kész mind a 8 bit, veheted befele ?
Z80 System

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #92 on: 2014.October.01. 22:35:17 »
Nincs itt semmilyen időzítés. A 8 bement az mindig aktív, és folyamatosan változhat, ahogy nyomkodja a felhasználó a gombokat :-)
A beszedést a 27-es IC végzi, az IN x,(0B5h) utasítás eredményeként beengedi az aktuális 8 bitet a billentyű csatlakozóról a Z80 adatbuszra.
Ha nem akarod folytonosan a 4 bit értékét újraolvasni, akkor a 25-ös IC 1-es lábát figyelve lehet megtudni, hogy új érték lett kiírva a 0B5h portra, azaz a jelen esetben érdekes 4 bit módosult.
Ha van olyan ebben a cuccban, hogy IRQ, akkor ezt arra lehetne használni.

Ami lényeg: annyi idő alatt ami a leggyorsabb 0B5h írás és olvasás között eltelik, neked detektálni kell, hogy már másik sor kell, és azt a 8 bitet kirakni.

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #93 on: 2014.October.01. 22:50:41 »
Quote
Ha van olyan ebben a cuccban, hogy IRQ, akkor ezt arra lehetne használni.

Van benne IRQ, de asszem csak egy lábon lehet használni, ami végülis lényegtelen,
de vannak olyanok is, amik minden lábon képesek megszakítani.

Bár például forrás azonosítást nemtom lehet -e. Persze itt most csak egy forrás lenne.

Azt már néztem, hogy egy már megírt ps/2 bill. kezelőben is a megszakítást használják,
mert ott is valami futó élre kell olvasni, vagy mi ...

Quote
25-ös IC 1-es lábát figyelve lehet megtudni
Felfut, lefut, hovafut ?

Quote
Ami lényeg: annyi idő alatt ami a leggyorsabb 0B5h írás és olvasás között eltelik, neked detektálni kell, hogy már másik sor kell, és azt a 8 bitet kirakni.
És ez sztd kb. mennyi idő ? Ez gyakorlatilag egy 4 MHz z80 out és közvetlen utána jövő in között eltelt idő, nem ? Lehet kb. 4-6 mikroszekundum ...

Mivel ez a chip 16 mhz, nincsen nagyságrendi különbség az órajelek között ... Ajánlott a megszak, nem ?




És sztm az olvasási irányban is van idő dolog, nem csak a visszaírási dolognál, mert azzal hogy én beállítok a következő in -ig,
attól még előfordulhat az simán, hogy én 2 bitet beolvasok, erre a z80 felülfrissíti a 4 bitet, és második kettőnek már az újat olvasom,
vagyis nem azt fogom neki beadni amit kért, mert nem jól olvastam k ia 4 bitet ... nem ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #94 on: 2014.October.01. 23:24:39 »
Az a (nem elvi) megoldás, hogy bár az arduino platform API nem tartalmaz ilyet, de attól még természetesen direkt port író/olvasó műveletekkel lehet egyszerre több bitet kezelni.

Lehet hogy ez már ténylegesen egy órajelciklusban történik meg, az is lehet, hogy valami élre (ahhoz hogy megtudjam, a tényleges mikrokontroller helpjét kéne olvassam, amik ilyen 1000 oldalas (szó szerint) doksik tudnak lenni ...

Mindenesetre mégha élre történik a port (több bit) írás/olvasás, az az él akkor sem kell szinkronban legyen a z80 -on beálló változásokkal. Vagy z80 -on is egyszerre állnak a be a bitek a billentyű/joy port esetében ?
« Last Edit: 2014.October.02. 01:30:23 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #95 on: 2014.October.02. 15:54:52 »
Hát pedig egyébként ez a raspberry pi is piszkálja továbbra is a csőrömet ...

40 GPIO -ja van, 800 Mhz -es cpu -ja, 512MB ram -ja ...

Értem hogy atombombával verébre, de ha egyszer 15 -ezerből megvan dobozostól,
olcsóbban kijön mint a mikrokontrolleres lapkás kombók ...

Mondjuk tápolását még nem néztem, az igaz ...

Csak ezzel az időzítés kérdéssel ne "ijesztettetek volna be", akkor komolyan foglalkoznék a dologgal ...
Z80 System

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 35.0.1916.153 Chrome 35.0.1916.153
    • View Profile
    • http://povi.fw.hu
Re: HW készítés Arduino-val
« Reply #96 on: 2014.October.02. 16:11:45 »
Quote from: Z80System
Van benne IRQ, de asszem csak egy lábon lehet használni, ami végülis lényegtelen,
de vannak olyanok is, amik minden lábon képesek megszakítani.

Bár például forrás azonosítást nemtom lehet -e. Persze itt most csak egy forrás lenne.

Azt már néztem, hogy egy már megírt ps/2 bill. kezelőben is a megszakítást használják,
mert ott is valami futó élre kell olvasni, vagy mi ...
Felfut, lefut, hovafut ?
És ez sztd kb. mennyi idő ? Ez gyakorlatilag egy 4 MHz z80 out és közvetlen utána jövő in között eltelt idő, nem ? Lehet kb. 4-6 mikroszekundum ...

Mivel ez a chip 16 mhz, nincsen nagyságrendi különbség az órajelek között ... Ajánlott a megszak, nem ?




És sztm az olvasási irányban is van idő dolog, nem csak a visszaírási dolognál, mert azzal hogy én beállítok a következő in -ig,
attól még előfordulhat az simán, hogy én 2 bitet beolvasok, erre a z80 felülfrissíti a 4 bitet, és második kettőnek már az újat olvasom,
vagyis nem azt fogom neki beadni amit kért, mert nem jól olvastam k ia 4 bitet ... nem ?
16x gyorsabb, mint a 4MHz-es Z80, mivel az AVR-ek egy utasítás lefut egy ciklus alatt, míg Z80-on minimum 4 ciklus kell egy utasításhoz.
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #97 on: 2014.October.02. 16:18:29 »
Ha jól tippelem max 11 Z80 órajel alatt kell megoldani a dolgot.

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #98 on: 2014.October.02. 16:28:35 »
Quote
Ha jól tippelem max 11 Z80 órajel alatt kell megoldani a dolgot.
És csak akkor ha tényleg használok megszakítást arra, hogy észrevegyem a megváltozást ...

Tehát ha van az a jel amit mondasz, hogy na, most megváltozott. Na akkor van 11 z80 óraciklusom, hogy beolvassam a 4 bitet, hogy mit kérnek, és beállítsam a 8 bitet arra, amit kértek, igaz ?

És akkor arról nem is beszélve, hogy ehhez akkor kell +1 vonal, a megszakításhoz ...

És akkor ez még csak a billentyűzet problémája,
a joystick -nál nincs ilyen megszakításra használható jelem ... ott észre kell vennem simán, hogy az 5 inputom közül melyik aktív, és beadnom a választ ... gondolom szintén 11 z80 ciklus idő alatt ...
Z80 System

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #99 on: 2014.October.02. 16:39:32 »
Quote from: Z80System
Tehát ha van az a jel amit mondasz, hogy na, most megváltozott. Na akkor van 11 z80 óraciklusom, hogy beolvassam a 4 bitet, hogy mit kérnek, és beállítsam a 8 bitet arra, amit kértek, igaz ?
Igen. És aztán a 8 bitnek folyamatosan változni kell, ha nyomkodják az oda tartozó gombokat. Ismételt beolvasáshoz nem kell újabb B5h írás, pl egy space-ra várásnál elég a ciklus elött beállítani a B5h értékét, utána már csak olvasni kell meg tesztelni, hogy megnyomták-e.

Offline Z80System

  • EP addict
  • *
  • Posts: 3895
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 37.0.2062.124 Chrome 37.0.2062.124
    • View Profile
Re: HW készítés Arduino-val
« Reply #100 on: 2014.October.02. 16:50:06 »
Hmmm ... hát így belegondolva ... lehet hogy nem egy ilyen sovi 16 Mhz -es cuccal kellett volna erre rámenni ...

Kényelmes melóhoz kéne ide egy 100 MHz -es dolog ... nem ? Vagy mégtöbb ?

Nyilván idő fog elmenni a PS/2 vagy USB billentyűzet beolvasásával is, azt is csinálnom kell a loop -omban ...

Arról nem is beszélve, hogy a PS/2 bill olvasása is használja a megszakítást ...

Most egy kicsit nem értem, hogy mi itt a helyzet ... valahogy azt hittem, hogy egy ilyen bill. csatolási feladathoz egy EP -nél 4X nagyobb órajelű dolog az simaliba ... kényelmes dolog lehet ...

De most kicsit úgy kezdem érezni, hogy nem ...

Persze lehet hogy csak nem értek valamit ...

Az mindenesetre tök hülyen hangzik, hogy egy 16MHz -es bill illesztő nem elég gyors a 4 MHz -es EP -hez ... :)
Z80 System

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 34.0.1847.116 Chrome 34.0.1847.116
    • View Profile
    • http://povi.fw.hu
Re: HW készítés Arduino-val
« Reply #101 on: 2014.October.02. 18:34:45 »
bőven elég kell, hogy legyen a 16MHz, csak assembly-ben kéne programozni... :mrgreen:

nem csak az az előnye, hogy gyorsabb, hanem pontosan ki lehet számolni az időzítéseket. Vagyis pontosan tudod, hogy két asm utasítás között lesz 62.6 ns (16MHz-en).
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #102 on: 2014.October.02. 20:33:26 »
Quote from: Povi
bőven elég kell, hogy legyen a 16MHz, csak assembly-ben kéne programozni... :mrgreen:

nem csak az az előnye, hogy gyorsabb, hanem pontosan ki lehet számolni az időzítéseket. Vagyis pontosan tudod, hogy két asm utasítás között lesz 62.6 ns (16MHz-en).

Pontosan. Most amivel foglalkozni szeretnek (tobbek kozott!) VGA jel eloallitasa kozvetlenul "filleres" AVR altal (tudom van ilyen project mar, de megam szeretnem "felfedezni"). Ott is az a lenyeg hogy orajel pontossagra kiszamolja az ember, hogy fog osszejonni ... Meg szerencse, hogy AVR RISC-ben ez azert egesz egyszeru, legalabbis nincs _annyira_ sok variacio :)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #103 on: 2014.October.02. 20:38:46 »
Amire gondoltam anno en billencs illesztesnel: nem lenne szinte semmi idozites gond, ha szerezne az ember egy kis kapacitasa (cca 10*8 bites is eleg lenne) dual port SRAM-ot, vagy vmi hasonlot. Igy a RAM egyes bitjeinek pontos allasa szimulalja a billentyuket. EP valtogathatja a cuccost a 0xB5 porton akar 1GHz-es Z80-al is :) akkor is jo lesz, a dual port RAM egyik portjanak cimbusza kapcsolodik ugye a B5 iras cuccosra, az onnan olvasott adat (adatbusz) meg B5 in iranyban. A dual port RAM masik busza meg csatlakozik az MCU-hoz, aki szep kenyelmes tempoban ahogy neki tetszik irja a RAM tartalmat. Tudom, nekem maniam a dual port RAM (tobbszor felhoztam), pedig olyan meg nem is volt soha a kezemben :D

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #104 on: 2014.October.02. 21:11:10 »
Mindenesetre anno Tigriannak sikerült egy ilyen cuccal a PS/2 illesztés.