Virtual Dj vezérlő

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

HozzászólásSzerző: herc1234 » 2009. április 19. vasárnap, 13:26

Jól értem ha a soros porton jön valami kiváltasz egy keybd_event
eseményt mégpedig azt hogy lenyom /felenged.A Keys pedig az
hogy melyik gombot nyomtad le?
Na ezt nem tudtam hogyan kell.
És ez olyan mintha hardwares esemény történt volna?

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. április 19. vasárnap, 14:12

herc1234 írta:Jól értem ha a soros porton jön valami kiváltasz egy keybd_event
eseményt mégpedig azt hogy lenyom /felenged.A Keys pedig az
hogy melyik gombot nyomtad le?
Na ezt nem tudtam hogyan kell.
És ez olyan mintha hardwares esemény történt volna?

Igen, jól érted! Keys.Valami a gomb, lehet így Ctrl, Shift-et, stb lenyomni. Csak az ékezetes betűk vannak máshogy, ha "é"-t akarsz: Keys.É helyett -->186. Szóval így:

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

keybd_event(186, MapVirtualKey(186, 0), KEYEVENTF_KEYDOWN, 0)
keybd_event(186, MapVirtualKey(186, 0), KEYEVENTF_KEYUP, 0)

Minden betűnek van egy kódja, pl.: A = 65, B = 66. Ékezetes betűk: É = 186, Ó = 187, Ü = 191, Ö = 192, Ő = 219, Ű = 220, Ú = 221, Á = 222, Í = 226.
Azt viszont nem tudom, hogy ez olyan mintha hardwares esemény történt volna.
Bence

Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

HozzászólásSzerző: nobody_hun » 2009. április 19. vasárnap, 16:05

Bence írta:Először úgy csináltam, és sokkal lassabb volt. Amikor eltekertem a potmétert és a VDJ-ben szép lassan átment, most így, rögtön megy utána a potméter. Most azt találtam ki, hogy lesz két program, az egyik elindítja a másikat, a 2. láthatatlan és az 1.-ből be lehet zárni a 2.-at.


Timer interval? De van az MSCOMM is olyan event-je, amely adat érkezésekor ad megszakítást.

Bár jó az új ötleted is, csak nem túl elegáns... :D
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. április 19. vasárnap, 16:28

Timer interval 1 volt. Jó ötlet az adat érkezésekot megszakítás kipróbálom, és írom az eredményt!
Bence

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. április 19. vasárnap, 20:27

Köszi az ötletet, működik!
Bence

Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

HozzászólásSzerző: nobody_hun » 2009. április 20. hétfő, 18:58

Részemről a szerencse!

A Timer.Interval=1 túl gyors volt (1 ms). A timer megszakítása miatt nem várta meg az érkezett teljes adatot, hanem folyton olvasott.

Két soros olvasás között (ha van egy adó ami folyton ad) kb. 100-500 ms-t szoktam várni két beolvasás között, a várt adat hosszától függően.
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző

"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 24. péntek, 14:43

Sziasztok!

Nem fejeztem be a projektet, csak még nem vettem meg az alkatrészeket, így még mindig csak próbapanelen 5 potméterrel van összedobva az egész.
Az jutott eszembe, hogy úgy kéne megcsináni a vezérlőt, hogy legyen egy LCD rajta, amin kiírja a BPM-et, hátralévő időt, szám címét, stb. Ezeket az adatokat valahogy meg lehet tudni a VDJ-től. Elvileg három lehetőség van:
1.: Írnom kéne egy plugin-t (egyetlen probléma: ahogy elnéztem a VDJ fórumot mindenki c++ írt plugin-okat, én meg azt nem ismerem :( )
2.: Elvileg az új VDJ-ben lehet HID controllereket definiálni. Ha valaki el tudná magyarázni, hogy pontosan mi az a HID (egy szabvány? ) az jó lenne! Azt tudom, hogy a USB-s billentyűzetek is így működnek. HID-del lehet adatot küldeni és fogadni? AVR-el ez megvalósítható?
3.: Lehet MIDI controllereket is definiálni. Ez alapból kb alapból kiesik, mert nincs a gépemen MIDI port (így építeni/venni kéne valami átalakítót) és azt se ismerem.

Ha valaki elmagyarázza hogy mi az a HID annak köszönöm!
Bence

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

HozzászólásSzerző: Robert » 2009. július 24. péntek, 15:59

HID : Human Interface Device.
http://en.wikipedia.org/wiki/USB_human_ ... vice_class


Game/Kbd/Mice

Az oprendszerek beépítve tartalmazzák és rendszerhívásokon át macerálhatóak...

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 24. péntek, 16:13

Ezzel: http://www.mcselec.com/index.php?option=com_phpshop&page=shop.getfile&file_id=108&product_id=173 meg lehet csinálni? Alul van egy PDF fájl azzal a forráskóddal meg lehet csinálni vagy fizetni kell érte?
Bence

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

HozzászólásSzerző: Robert » 2009. július 24. péntek, 16:23

A HID egy _gyűjtőfogalom_.

A VirtuaDJ kérdés mit vár el, én arról az oldalról esnék neki....
És itt keresnék mintát....
A VID/PID az USB azonosító jelöl ki HID tartományt (is)...

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 24. péntek, 18:06

A Virtual Dj-ben úgy kell konfigurálni a kontrollert, hogy egy .xml fájlba kell leírni a dolgokat. A VID-et és a PID-et a fájlban kell megadni.

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

<?xml version="1.0" encoding="UTF-8"?>
<device name="MYCONTROLLER" author="Me" type="HID" decks="1" vid="0x1234" pid="0x0100" reportsize="32">
<page type="in">
...
</page>
<page type="out">
...
</page>
</device>

Így néz ki az .xml fájl.
(Bővebben egyébként itt van leírva: http://www.virtualdj.com/wiki/ControllerDefinitionHID.html )
A HID nem olyan mint például a soros port, hogy megadom az általam épített rendszer VID/PID-ét és tud komunikálni? Azt hittem így meg lehet csinálni, de lehet hogy egyszerűbb írni egy plugin-t.
Bence

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 26. vasárnap, 19:28

Sziasztok!
A probléma valószínűleg megoldódott! Találtam egy drivert, ami a soros portból csinál MIDI portot, és az AVR-ben be kell álítani a baud rate-et 31250-re és lehet küldeni a MIDI üzeneteket. Most a MIDI után olvasok, hogy pontosan hogyan is működik.
Bence

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 27. hétfő, 17:47

Sziasztok sikerült!

Akit érdekel itt a driver: CBX serial driver és az előző hozzászólásomban rosszul írtam, a baud rate: 38400. A MIDI üzeneteket így kell küldeni:

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

Print Chr(&HXX) ;

XX helyére a hexadecimális számot, a végére fontos a pontosvessző. A NOTE 1 az 1 csatornán 127-es értékkel így néz ki:

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

Print Chr(&H90) ; Chr(&H01) ; Chr(&H7f) ;
Bence

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3349
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2009. július 28. kedd, 0:02

Köszi az infót! :D
Ez vajon működik RS485-ös átvitelen is?
Mert avval nagyobb távolságot lehet áthidalni, mint az RS232-essel!
:?:

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. július 28. kedd, 11:17

Jó kérdés. :D Mivel az RS485-öt nem ismerem, nem tudom, de ha ugyan olyan jeleket küld mint az RS232 akkor igen. És még egy dolog amit elfelejtettem: így kell bekötni az RS232-t (nem csak az RX és TX-et).
Bence


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 2 vendég