USB/PS2 billentyűzet

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

USB/PS2 billentyűzet

HozzászólásSzerző: norbi » 2007. január 1. hétfő, 15:39

B.U.É.K Mindenkinek!!!! Sikeres AVR programozást erre az évre is!!! :D

Nemrég vetem agy USB/PS2 billentyűzetet (Laptopokhoz árulják,csak a számok vannak rajta) és össze akarom hozni egy Mega16-tal...

Sima PS2 billzet már üzemel vele, s a grafikus LCD-n szépen lehet lépkedni a menükben,de a sima billzet vhogy túl nagy lenne ide..azert gondoltam a laptophoz gyartott kis billzetre...

Hogy mondhatnam meg neki,hogy PS2 üzemben menjen????

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 1. hétfő, 20:59

Újabb probléma jelent meg a menürendszerben:

külön-külön szabályoznám két lábon a feszültséget egy timeres pwm segítségével,de a Portd.5 reagál csak rá, a Portd.6 nem :cry:

pedig a programban helyesen vannak irva,minden a helyén van:

'******************************************************
Sub Pwmhatter
Cls
Vonal = 10
Do

Lcdat 2 , 30 , "HATTERVILAGITAS"

Lcdat 8 , 2 , "ENTER=OK BACKSPACE=VISSZA"


Call Billzetlekerdezes

If B = 56 Then
Vonal = Vonal + 4
Lcdat 4 , Vonal , "I"
If Vonal = 110 Then Vonal = 10
Lcdat 4 , Vonal , "I"

Lcdat 5 , 10 , "MIN"
Lcdat 5 , 60 , "FEL"
Lcdat 5 , 110 , "MAX"

A = A + 10 '
Pwm1a = A
Portd.5 = A
End If




If B = 50 Then
Vonal = Vonal - 4
If Vonal = 10 Then Vonal = 110
Cls
Lcdat 4 , Vonal , "I"

Lcdat 5 , 10 , "MIN"
Lcdat 5 , 60 , "FEL"
Lcdat 5 , 110 , "MAX"


A = A - 10 '
Pwm1a = A
Portd.5 = A
End If


Call Menubolki
Loop
End Sub

'*******************************************************************************

Sub Ledpwm
Cls
Vonal = 10
Do

Lcdat 2 , 30 , "LED-vilagitasok"

Lcdat 8 , 2 , "ENTER=OK BACKSPACE=VISSZA"


Call Billzetlekerdezes

If B = 56 Then
Vonal = Vonal + 4
Lcdat 4 , Vonal , "I"
If Vonal = 110 Then Vonal = 10
Lcdat 4 , Vonal , "I"

Lcdat 5 , 10 , "MIN"
Lcdat 5 , 60 , "FEL"
Lcdat 5 , 110 , "MAX"

A = A + 10 '
Pwm1a = A
Portd.6 = A
End If


If B = 50 Then
Vonal = Vonal - 4
If Vonal = 10 Then Vonal = 110
Cls
Lcdat 4 , Vonal , "I"

Lcdat 5 , 10 , "MIN"
Lcdat 5 , 60 , "FEL"
Lcdat 5 , 110 , "MAX"

A = A - 10 '
Pwm1a = A
Portd.6 = A
End If


Call Menubolki
Loop
End Sub
'************************************************************

Van valakinek valami ötlete, hogy mért nem tudom a két lábat külön szabályozni?? :(

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 1. hétfő, 21:22

:))) a 2.problémám megoldodott,most láttam meg,hogy ott is pwm1a vt :oops:

az 1.probléma még függőben... :lol:

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2007. január 2. kedd, 1:23

A PS2 bill. inicializáláskor áll PS2 helyzetbe...
Azaz, ha a bill kap tápot, akkor az USBn ha nem tud kommunikálni, akkor PS2 módba rakja magát.

Ha rá van rakva a panelra, és úgy kapcsolod be?

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 2. kedd, 15:12

Akkor is ugyanez van...csak villan egyet rajta a led ill. küld folyamatosan vmi hex kódot az avrnek.

Pedig kiprobaltam és müdökik PS2 üzemben is más gépen ill. usb üzemben is.

Csak itt nem akar... :cry:

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 2. kedd, 15:15

lehet,hogy hülyeség, de pl másik gépre kötve is csak akkor vilagit a LED,ha a gép saját billzetén (vagy ezen) ugyebár bekapcsolom a NumLockot..

AVRröl ugyanezt kellene elérni,nem?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2007. január 2. kedd, 16:25

Nem.
Az AVR alapú PS2 kezelés esetén a bill _felé_ nem kommunikál. Azaz lem lehet a LEDeket ki/bekapcsolgatni rajta. Ezt most is a PC végzi, azaz amikor a billentyűzeten lenyomok egy CapsLock-ot, akkor ennek lenyomási és elengedési kódja megy kia PC felé, és lenyomáskor a PC visszaküld egy kódot a billentyűzetnek, hogy a LEDet gyújtsa ki v. kapcsolja le.

Próbáld ki, 2 bill kell hozzá: CL bekapcsol, bill lehúz, és msáikat raksz fel. Gépeléskor a nagybetűk jelennek meg a PC-n, holott a LED nem világít....

Itt csak a Bill ad ki leütési/felengedési kódot az AVR felé.
A GetATKbd parancssorokkal lehet betűt venni, ha van KeyData table (ld súgó). Illetve van a 8.3 verziótól a GetATkbdRAW, ahol az _ömleszettt_ parancskódok jönnek...

A legegyszerűbb:

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

$crystal = 14745600                                         'Sebesseg
$regfile = "M48def.dat"                                     'Chip
$baud = 9600
'PS2Keyb
Config Keyboard = Pind.6 , Data = Pind.2 , Keydata = Keydata
Dim B As String * 1

Do
  B = Getatkbd()
   If B > 0 Then
      Print "Code:" ; B ; " Character:" ; Chr(b)
  End If
Loop
Keydata:
'normal keys lower case
'NO shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0


Ez soros porton visszaküldi a lenyomott billenytűt...

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 2. kedd, 16:55

a mintapéldában biztos,hogy a B az string???

Véletlenül nem byte?

Amugy a billzetkezelés megy jól, csak ezzel a kis vacakkal szenvedek,folyamatosan küldi az AVR felé (csinaltam a grafikus LCD-re gyorsan tesztelö progit,hogy lássam,mit is ütök le) a 86H értéket....

pedig ugy voltam vele,hogy dizájnosabb ezzel a billzettel,mit 4x4billzet és házilag barkácsolt doboz,pedig igy nagyon nem fog menni :cry:

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2007. január 2. kedd, 17:54

Más kódot ad ha leütsz billenytűt?
A B lehet hogy byte...

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 2. kedd, 18:41

folyamatosan ezt a kódot adja,s nem reagal a billentyu lenyomasokra sem az AVR-nel.

Amugy szamgepen jol megy

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2007. január 2. kedd, 19:07

Hat, akkor valami nemszabvanyos inicializálása lehet. vagy vár valami visszajelet az AVR felől:(. De ilyet az AVR nem ad ki....

Tisztan PS2 billentyuzettel megy a program?

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 2. kedd, 19:11

Hagyomanyos PS2vel megy a progi nagyon szepen.

ha nem sikerul megoldani,lehet,hogy kidobom a belsejet es csinalok RS232 v I2C billzetet :D

Csak az egesz menu ps2re keszult :?

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 3. szerda, 0:16

ujabb fejlemény az éjszakában:D

kiprobltam a vezerlest egy hagyomanyos usb/ps2 billzettel es azzal meg ment!!!! de ez nekem nem jo,tul nagy...a laptopos-csak numlock-billzettel kell megoldjam:(

most neztem meg,hogy a kis billzet 250mA-t igenyel!!! egy hagyomanyos max 50mA-t...lehet,hogy itt lesz a gond?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2007. január 3. szerda, 0:21

Nem. A paneleken a vezetekezes nem okoz gombot. Igaz a PS2 csatlakozo 100mA-t enged (szabvany alajan.).

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2007. január 3. szerda, 0:52

akkor ezt vegkepp nem ertem :cry:

hagyomanyos ps2 billzettel megy,hagyomanyos usb/ps2-essel megy,csak az usb/ps2 kis vacakkal nem... :cry:


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég