Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   196 / 196
(#) pakibec válasza Gory hozzászólására (») Feb 11, 2006
Ilyen mélységig sajnos nem látok a témába - még. Az USB sokkal praktikusabb lenne, de amennyire tudom sok vele a gond, driver problémák, beszerezhetőség.

Elvileg ebben a kapcsolásban a RAM azért kell, mert lassú a soros port átvitel ("tárlolásos módot" kell használni nagyobb frekvenciákon), USB-n ez a probléma nem lenne, így direktbe is mehetne. Vagy tévedek?

A bank kiválasztást ki tudnád fejteni egy kicsit, mert tény, hogy a leírástól eltérnek. Ugyan az is tény, hogy a szimulátorral "hibásan" is működik.

Betettem egy 4 Mhz-es kristályt, a baud. rate-et 4800-ra állítottam, hiba sajnos megmaradt. Bár itt is jelentős a hiba. Van erről a PIC doksijában egy nagyon jó táblázat. Kipróbálom 4 Mhz-es kristállyal, 9600-on (itt elvileg csak 0.16% a hiba BRGH=1-en)

Hol találtad egyébként az USB-s leírást?
(#) pakibec válasza Gory hozzászólására (») Feb 11, 2006
Köszönöm a tippeket!

Hát a leírás írja a 20 Mhz-es kristályt, kicsrélem és kipróbálom mással.

Az áramkör nem próbapenelen van, túl bonyulultnak láttam ott elkészíteni, lehet, hogy érdemesebb lett volna. Valószinűleg építek tesztelő áramkört a PIC-hez és a maximhoz is, aztán meglátjuk.

Először a hex-eket égettem, csak utána kezdtem az asm-et bogarászni. DE néhány hónapos PIC programozói multtal más sikerült egy hibát felfedeznem....
Az PIC leírása szerint a bank kiválsztás 2 biten történik. A STATUS reg RP1 és RP0 bitjén, a progiban csak az RP0 szerepel.
Persze a leírás a PIC16F877A ra vonatkozik, de talán a ekkora eltérés nincs a két IC között(PIC16F877/PIC16F877A).
(#) lamar válasza Lázár Péter hozzászólására (») Feb 10, 2006
Íme a válasz.
Elnézést, hogy nem fordítom le.
A lényeg jól benne van. Forrása:
[link=http://www.measurement-testing.com/elecrical-shielding.html]http://www.measurement-testing.com/elecrical-shielding.html[/link]

  1. Electrical shielding is the imposition of a metal or composite barrier between
  2.         one or more sources of electrical noise and their victims with the objective
  3.         of reducing or eliminating electrical interference. Examples of the barrier
  4.         are the case or housing of equipment; shields covering interconnecting
  5.         cables between equipment; large cabinets, racks, or consoles; shielded
  6.         (screen) rooms; and entire shielded buildings or vehicles.
  7.       The principal measure of a shield"s performance is the <em>shielding effectiveness</em>.
  8.      It is defined by the equation below where SE<sub>dB</sub>
  9.      SE<sub>dB</sub> = 20 log<sub>10</sub> (F<sub>b</sub>/F<sub>a</sub>)
  10.      is the <em>shielding effectiveness</em> in decibels, F<sub>b</sub> is the electric
  11.        (or magnetic) field strength before imposition of the barrier, and F<sub>a</sub>        is the electric (or magnetic) field strength after imposition of the
  12.        barrier.      
  13.      Shielding is obtained by the combination of <em>reflection loss</em> and <em>absorption loss</em>.
  14.        The former is due to the impedance mismatch between the wave impedance
  15.        of an oncoming wave and the surface impedance of the interposed barrier.
  16.        Absorption loss corresponds to the attenuation due to the <em>skin effect</em>        at higher frequencies, and is dependant on the frequency, conductivity,
  17.        permeability, and thickness of the barrier. Shielding effectiveness is
  18.      the sum of both losses.
  19.      Most intentional shields are made of metal to ensure high reflection losses.
  20.        Even thin metals, such as household aluminum foils (with a thickness
  21.        of about 1.5 mils or 0.038 mm), offer shielding effectiveness in excess
  22.        of 100 dB. At low frequencies, these foils become electromagnetically
  23.        transparent (i.e., they do not attenuate magnetic fields). Thus, if there
  24.        is a shielding problem due to the selection and makeup of the metal barrier,
  25.      it is likely to occur only for low-frequency magnetic fields.
  26.      To obtain significant shielding to magnetic fields at low frequencies, the metal
  27.        barrier must be very thick or composed of a highly-permeable material
  28.        such as Mumetal, Supermalloy, or Hypernom. Often such shields are fabricated
  29.        in two or more layers, frequently laminated, to obtain good shielding
  30.      properties per unit of weight.
(#) kicsi_huszar válasza deguss hozzászólására (») Feb 4, 2006
Szóval aszondják az okosok, hogy ez egy Hollywood Plus kártya. Ha esetleg valakinek kéne még a lábkiosztás, ideírom. Köszi a segítséget deguss, tied a pont...

note: SDA and SCL signals are not required to get the mpeg boards to
work, it is only to keep the Plug&Play compatibility for the monitors if
they support this feature.

External view, seen from the bracket:

_________
/_________
| |
| 9 8 7 |
| 6 5 4 3 |
2 1 /
---------

1:Blue IN
2:GND
3:Green IN
4:GND
5:Vsync IN
6:Hsync IN
7:Red IN
8:SDA (from pin12 of DB15)
9:SCL (from pin15 of DB15)
(#) proksa1 válasza proksa1 hozzászólására (») Jan 25, 2006
The MOSFETs used are Hitachi lateral devices, 2SK1058 (N-Channel) and 2SJ162 (P-Channel). These are designed specifically for audio, and are far more linear than the (currently) more common switching devices that many MOSFET amps use. Unfortunately, they are not especially cheap, but their performance in an audio circuit is so much better than vertical MOSFETs, HEXFETs, etc., that there is no comparison. note that using HEXFETs or any other vertical MOSFET type is not an option. They will fail in this circuit, as it was not designed to use them <--------az angol leírás ezt írja megjegyzésnek a FET-ekhez, nem igazán értem mit jelent >
(#) Inhouse válasza Inhouse hozzászólására (») Jan 24, 2006
Itt egy párhuzamos + híd üzem rajz:
BPA-200

Üdv
Inhouse
(#) Csapajev válasza _JANI_ hozzászólására (») Jan 23, 2006
Linkek vannak, de milyenek. Igaz csak az elsőt néztem meg, ahol valóban van egy harci robothoz való H-bridge, meg egy olvasó hozzászólása, hogy a H-bridge az első másodpercben cipóvá sül. A portál tulajdonosa ezt el is ismeri, de szerencsére van egy linkje "egy még jobb H-bridge vezérlésre". A link a csóka robotos könyvének reklámja, amit megrendelhetsz és megvehetsz. Ettől aztán elmegy az ember kedve.

Egyébként angolul tele van a világ H-bridge linkekkel. Magyarul is van egypár ugyanis hobbi szinten a következők használják:

1. RC modellvezérlés (Ugye nehéz a repülön levő potmétert a földről csavarni?)
2. Harci robotok (fentiek miatt)
3. Diszko-villágítás - zenére rángás
4. Modellvasut (mind a hagyományos mind a digitális)

Az Ő lapjaikon néha magyarul is találni valamit. Továbbá az összes MCU gyártó (pl. Microchip) "Application note"-jaiba dögivel van.

Üdv

Csapajev
(#) szabi83 válasza Inhouse hozzászólására (») Jan 20, 2006
Idézet:
„Most, hogy jobban megnézem, elég érdekes ez a kapcsolás...”

angol szöveg körítés van hozzá
megkeresem..

meg is van:

Central Locking Interface
Some cheap car alarms do not have a connection for the central locking system. However, in most it should be possible to find a point in the alarm circuit which is high when the alarm is activated and low when it is off. This signal can then be used to drive this relay circuit to operate the central locking system.

The interface circuit converts each toggle of the alarm signal to a brief pulse to operate the two relays which then are then connected in parallel with appropriate contacts on the master solenoid in the central locking system.

Frank Keller, via email. ($40)

forrása meg itt, közép tájt
(#) Lucifer válasza deguss hozzászólására (») Jan 17, 2006
Köszike!
Na fogtam magam kísérleteztem. Először megpróbáltam a bbatka hex fileját ráégetni. Sajnos nem sikerült. Eztán fogtam amgam csináltam egy új projektet a Pikdevvel. Beraktam a bbatka által készített ora.asm-et, az include directoryba szereztem egy 16f818.inc fájlt amit aprojekthez is hozzáadtam. Aztán megpróbáltam lefordítani.
De az utasításokra általában azt írta hogy nem definiáltam előre őket. Pölö: " symbol not previously defined (PCLATH) ". Nem tudja véletlenül valaki, hogy hogyan kell a Pikdevet beállítani hogy megtalálja ezeket.
(#) Csapajev válasza mspike hozzászólására (») Jan 12, 2006
Van egy "fő" PIC, amelyik a PC-vel és a többi PIC-kel tartja a kapcsolatot. A "fő" PIC és a PC közti kapcsolat USART (nem feltétlenül kell az egész RS232-t installálni) és elég 1200 baud. A kommunikációs protokollt célszerű ASCII-ban kidolgozni, mert akkor az egészet a PC-s program megírása előtt egy terminál emulátor programmal le lehet ellenőrizni. A PIC és PC kapcsolatnak csak az a trükkje, hogy más a PC RS232 jelszintje, ehhez ideális egy MAX232-es chip, de néhány tranzisztorral is meg lehet csinálni, bár ez utóbbit sose próbáltam. Elvileg az I2C-t is be lehetne vinni a PC-be, de ahhoz nincs kész protokoll. (A Linux-ban természetesen van) A PIC oldalon nem célszerű szoftverrel megoldani az USART-ot, jobb ha van hardver támogatása.

A "fő" PIC tartja a kapcsolatot a többi PIC-kel. Az I2C egy multimaster-cliens protokoll, de itt elég egy "normál" master-cliens protokoll. Ez azt jelenti, hogy a "fő" PIC, amikor éppen nem a PC-vel foglalkozik, akkor üzeneteket küldd a többi PIC-nek, akik azt értelmezik. Az I2C nyilván az eszközök állapotának a lekérdezésére is alkalmas. Az I2C sebessége alapból 100KHZ. A fenti feladathoz nem kell valami nagy sávszélesség, tehát akár szoftverből is meg lehet írni a klienseket.

Az I2C és USART programok a Microchip application note-jai közt dögivel vannak, mind szoftveres, mind hardveres verzióra.

A dolognak egyetlen hátulütője van: a programnak nem lehet csak úgy nekiesni és megírni. Mind a "fő" PIC, mind a többi PIC programját "valós idejű" stílusban kell megírni. Ez azt jelenti, hogy az egyes PIC-ek funkcióit pontosan meg kell tervezni (ugye egyszer van az I2C azután a ki- vagy bekapcsolás meg még amit akarunk.) Ezután meg kell tervezni, ki mekkora időkeretet kap, prioritást adva a kommunikációnak. A "strukturált programozás" elnevezés analógiájára ezt lehetne "struktúrált időprogramozásnak" hívni. Ha nem fér bele az összes processz egy időkeretbe, akkor a kilógokat még részprocesszekre kell bontani. Cserébe viszont rendkívüli modularitást kapsz.

Hát valahogy így.
(#) Csapajev válasza mspike hozzászólására (») Jan 11, 2006
Teljesen véletlenül a ház berendezéseinek vezérlésre találtam egy rendkívül érdekes megoldást, amit már ipari méretekben használnak.

Az előbb én I2C buszt ajánlottam. Nos az X-10 szabvány a hálózatio feszültséget használja busznak. Amikor az AC éppen 0, akkor ráteszi a digitális jelet. Igy elég a villanyóra utáni részbe bekötni a vezérlő egységet. A normál fogyasztók nem érzékelik a jelet, a többi pedig annak megfelelően működik.

Bármely web keresőbe beírva az X-10-et, hihetetlen mennyiségű eszköz és információ érkezik.

A Microchip AN 236-os application note-ja egy központ elkészítését írja le.

Üdv

Csapajev
(#) Örült Vegyész válasza Örült Vegyész hozzászólására (») Jan 7, 2006
Powerful disc magnet - 1 inch diameter x 0.5 inch thick. not FOR KIDS.

Hmmmmm....
(#) Topi válasza damatic hozzászólására (») Jan 1, 2006
A nő mint webszerver. Hibaüzenetek és értelmezésük:
-400 Bad Request - a férfi a randira virág nélkül érkezett
-401 Unauthorized - férjnél van
-402 Payment Required - gyertyafényes vacsora
-403 Forbidden - El a kezekkel!
-404 not Found - Ma a barátnőimmel bulizok!
-405 Method not Allowed - Hátulról nem engedem!
-406 Method not Acceptable - Nem veszem a számba!
-407 Proxy Auth. Required - Meg kell kérdezni anyámat!
-408 Request Timeout - Tudod, hogy mióta nem hívtál???
-409 Conflict - Ki volt az a szőke nő, akivel tegnap láttalak?
-410 Document Removed - El akarok válni!
-411 Length Required - Miii? Ezt nevezed te hosszúnak???
-412 Precondition Failed - Miiii? Nincs nálad óvszer???
-413 Request Entity Too Large - EKKORA nekem be nem fér!
-415 Unsupported Media Type - Neeem, négyesben szó sem lehet róla!
-500 Internal Server Error - menstruál
-501 not Implemented - még sosem feküdt le senkivel
-502 Bad Gateway - ...fúúúúj, sós!
-503 Service Unavailable - Fáj a fejem!
-504 Gateway Timeout - Ennyi?
(#) Norberto válasza Thomas10100 hozzászólására (») Nov 27, 2005
BSF azt jelenti, hogy a STATUS regiszter RP0-ás bitjét "1"-es szintre állítod...ezzel azt mondod, hogy váltson bank1-re

BCF ennek az ellenététe, ezzel "0"-ba állítod az RP0-ás regisztert, vagyis visszakerülsz a bank0-ba.

A status egy belső regisztere a PIC-eknek...ebben tárolják az aktuális helyzetüket, információkat a futó programról (pl. egy előzőleg lefutott kivonás eredménye 0 lett-e, stb.).

Nameg itt választhatsz bank-ok közül is...
(#) Norberto válasza Thomas10100 hozzászólására (») Nov 27, 2005
De hülye vagyok!

Nem vettem észre elsőre...

...tehát ahhoz, hogy a TRISA és TRISB regisztereket meg tudd változtatni, illetve értéket tudj adni nekik, ahhoz át kell váltanod a bank1-re! Aztán ha beállítottad, vissza kell váltani a bank0-ra, hogy ott dolgozhass tovább.
(#) Thomas10100 válasza Norberto hozzászólására (») Nov 27, 2005
Igen le tudtam fordítani, és a hex fájl alapján le tudtam szimulálni is a PIC szimulátor progiban! De ha visszaolvasol a hibákhoz, akkor ott a bank1 és bank2 -vel van még valami, azok nem tünnek el!
Miért nem?( ezek:Message<302> C:MPLABSPROGRAM 1VALAMI.ASM 12 : register in operand not in bank 0. Ensure that bank bits are correct.
Message<302> C:MPLABSPROGRAM 1VALAMI.ASM 14 : register in operand not in bank 0. Ensure that bank bits are correct.
)
(#) Thomas10100 válasza Thomas10100 hozzászólására (») Nov 27, 2005
Mi a hiba?
Make: The target "C:MPLABSProgram 1valami.o" is out of date.
Executing: "Crogram FilesMicrochipMPASM SuiteMPAsmWin.exe" /q /p16F84 "valami.asm" /l"valami.lst" /e"valami.err"
Warning[205] C:MPLABSPROGRAM 1VALAMI.ASM 1 : Found directive in column 1. (LIST)
Warning[205] C:MPLABSPROGRAM 1VALAMI.ASM 3 : Found directive in column 1. (__CONFIG)
Error[113] C:MPLABSPROGRAM 1VALAMI.ASM 3 : Symbol not previously defined (CP_OFF)
Error[113] C:MPLABSPROGRAM 1VALAMI.ASM 3 : Symbol not previously defined (WDT_OFF)
Message[302] C:MPLABSPROGRAM 1VALAMI.ASM 12 : register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:MPLABSPROGRAM 1VALAMI.ASM 14 : register in operand not in bank 0. Ensure that bank bits are correct.
Halting build on first failure as requested.
BUILD FAILED: Sun Nov 27 12:43:16 2005
(#) mikado válasza source2 hozzászólására (») Okt 23, 2005
"There are not easy to connect or drive to."

Na itt a lényeg...
(#) source2 hozzászólása Okt 23, 2005
Ezt a linket egy oldalon találtam, nem tudom mi igaz belőle, de ez az LCD :

  1. "NEW) HITACHI 9.4" COLOUR LCD SCREEN: Hitachi brand, Part # LMG9200XUCC. These high resolution colour LCDs are brand new laptop displays. Resolution: 640x480 VGA, Brightness: 70, Screen size: 9.4", Panel type: STN, Dimension: 154mm x 205mm. There are not easy to connect or drive to.   "


15 Ausztrál dollár, ami annyi tesz hogy mai árfolyamnak megfelően 2366,7 Ft nak felel meg.

Itt a bolt címe ahonnan rendelni lehet:
http://www.oatleyelectronics.com/displays.html
(#) bbatka válasza Gory hozzászólására (») Szept 8, 2005
Előbb-utóbb csak összejön ez a progi.A paritás problémát Picsimulator forrásában a TXSTA register manipulálásával próbálom megoldani, oly módon hogy minden karakter előtt maszkolom. Még nem próbáltam ki a Pic-ben. Majd délután.
Az MBus-nál kicsit zavarosabb a sorszámozás mint az FBus-nál, de nem lesz gond megoldanom.
(#) Topi válasza RoboCop hozzászólására (») Jún 28, 2005
Na az elvi vázlata a következő... A sorosport jelet rádiófrekisen moduláljuk... A kisautóban meg demoduláljuk.

Mikor egy parancs érkezik, jön egy 1-es, vársz 104mikro sec et, és utánna jönnek rajta a bitek. az a 8 bit. Azután kapsz egy stop bitet. Szóval a PIC RA0-ra kell rávinni a jelet... Visszafele kommunikáció szerintem nem kell, mert csak oda irányú adat kell.... Vissza gondolom nem akarsz hozni semmi adatot. Azaz figyelni kell a RA0 bemenetet, és szépen füzögetni a biteket...

Itt van hozzá az soros kommunikáció unit. Én assemblyben szoktab dolgozni de a lényeg világosan látszik ebből is:
  1. ;Serial routines
  2.  
  3.                 cblock  0x20                    ;start of general purpose registers
  4.                         Xmit_Byte               ;holds byte to xmit
  5.             Rcv_Byte            ;holds received byte
  6.             Bit_Cntr            ;bit counter for RS232
  7.             Delay_Count         ;delay loop counter
  8.                 endc
  9.  
  10. SER_INIT
  11.             BSF     STATUS, RP0           ;select bank 1
  12.             BCF     SER_TRIS, SER_OUT     ;set B6 as an output
  13.             BSF     SER_TRIS, SER_IN      ;set B7 as an input
  14.             BCF     STATUS, RP0           ;select bank 0
  15.             BSF     SER_PORT, SER_OUT     ;set SER_OUT high
  16.             RETURN
  17.  
  18. XMIT_RS232  MOVWF   Xmit_Byte             ;move W to Xmit_Byte
  19.             MOVLW   0x08                  ;set 8 bits out
  20.             MOVWF   Bit_Cntr
  21.             BCF     SER_PORT, SER_OUT
  22.             CALL    Bit_Delay
  23. Ser_Loop    RRF     Xmit_Byte , f         ;send one bit
  24.             BTFSS   STATUS    , C
  25.             BCF     SER_PORT, SER_OUT
  26.             BTFSC   STATUS    , C
  27.             BSF     SER_PORT, SER_OUT
  28.             CALL    Bit_Delay
  29.             DECFSZ  Bit_Cntr  , f         ;test if all done
  30.             GOTO    Ser_Loop
  31.             BSF     SER_PORT, SER_OUT
  32.             CALL    Bit_Delay
  33.             RETURN
  34.  
  35. Rcv_RS232   BTFSC   SER_PORT, SER_IN      ;wait for start bit
  36.             GOTO    Rcv_RS232
  37.             CALL    Start_Delay           ;do half bit time delay
  38.             BTFSC   SER_PORT, SER_IN      ;check still in start bit
  39.             GOTO    Rcv_RS232
  40.             MOVLW   0x08                  ;set up to read 8 bits
  41.             MOVWF   Bit_Cntr
  42.             CLRF    Rcv_Byte
  43. Next_RcvBit CALL    Bit_Delay
  44.             BTFSS   SER_PORT, SER_IN
  45.             BCF     STATUS    , C
  46.             BTFSC   SER_PORT, SER_IN
  47.             BSF     STATUS    , C
  48.             RRF     Rcv_Byte  , f
  49.             DECFSZ  Bit_Cntr  , f         ;test if all done
  50.             GOTO    Next_RcvBit
  51.             CALL    Bit_Delay
  52.             MOVF    Rcv_Byte, W
  53.             RETURN
  54.  
  55. Start_Delay MOVLW   0x0C
  56.             MOVWF   Delay_Count
  57. Start_Wait  NOP
  58.             DECFSZ  Delay_Count , f
  59.             GOTO    Start_Wait
  60.             RETURN
  61.  
  62. Bit_Delay   MOVLW   0x18
  63.             MOVWF   Delay_Count
  64. Bit_Wait    NOP
  65.             DECFSZ  Delay_Count , f
  66.             GOTO    Bit_Wait
  67.             RETURN
  68.  
  69. ;End of serial routines


Ezután van a waites unit:
  1. ;Delay routines
  2.  
  3.                 cblock  0x20                    ;start of general purpose registers
  4.                         count                   ;used in looping routines
  5.                         count1                  ;used in delay routine
  6.                         counta                  ;used in delay routine
  7.                         countb                  ;used in delay routine
  8.                 endc
  9.  
  10. Long_Delay
  11.                 call    Delay255
  12.                 call    Delay255
  13.                 call    Delay255
  14.                 call    Delay255
  15.                 return
  16.  
  17. Delay255        movlw   0xff            ;delay 255 mS
  18.                 goto    d0
  19. Delay100        movlw   d"100"          ;delay 100mS
  20.                 goto    d0
  21. Delay50         movlw   d"50"           ;delay 50mS
  22.                 goto    d0
  23. Delay20         movlw   d"20"           ;delay 20mS
  24.                 goto    d0
  25. Delay10         movlw   d"10"           ;delay 10mS
  26.                 goto    d0
  27. Delay1          movlw   d"1"            ;delay 1mS
  28.                 goto    d0
  29. Delay5          movlw   0x05            ;delay 5.000 ms (4 MHz clock)
  30. d0              movwf   count1
  31. d1              movlw   0xC7
  32.                 movwf   counta
  33.                 movlw   0x01
  34.                 movwf   countb
  35. Delay_0         decfsz  counta, f
  36.                 goto    $+2
  37.                 decfsz  countb, f
  38.                 goto    Delay_0
  39.  
  40.                 decfsz  count1  ,f
  41.                 goto    d1
  42.                 retlw   0x00
  43.  
  44. ;end of Delay routines


És végül itt a használatára egy főunit...
Az rs232lib.inc a felső kód.
Az rs232delay.inc a második kód. Ezek vannak belinkelve.

Ja és itt a főunit:
  1. LIST P=16F84
  2.  #INCLUDE "P16F84.INC"
  3.  ERRORLEVEL     0,      -302    ;suppress bank selection messages
  4.  __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF
  5.  
  6.         cblock  0x20                    ;start of general purpose registers
  7.                 endc
  8.  
  9. SER_PORT        Equ     PORTA
  10. SER_TRIS        Equ     TRISA
  11. SER_IN          Equ     0x00
  12. SER_OUT         Equ     0x01
  13.  
  14.         org     0x0000
  15.  
  16.  
  17. start   clrf    count
  18.                 clrf    TRISB ;összes kimenet
  19.                 clrf    PORTA
  20.                 clrf    PORTB  
  21.                 call    SER_INIT                ;initialise serial port
  22.                 call    Long_Delay              ;wait about 1 second
  23.  
  24. Loop    call    Rcv_RS232
  25.                 movwf   PORTB
  26.                 goto    Loop
  27.  
  28.                
  29.         include "rs232lib.inc"                  ;include the defaults for the chip
  30.         include "rs232delay.inc"                ;include the defaults for the chip
  31.  
  32.                 end
(#) kaninjo válasza Topi hozzászólására (») Jún 3, 2005
Hello Topi!

A MIDI-port tul.képpen egy soros port, ami 31.25 kbaud-os sebességgel kommunikál. Ez jó, mivel a PIC-ek többségében van soros port. Csak a sebességet kell beállítani...
A kommunikáció egy START bit-tel kezdődik (ez mindíg 0), és egy STOP bit-tel végződik (mindíg 1). Vannak "parancs" byte-ok (pl. hangjegy bekapcsolása [note On], kikapcsolása [note Off], ...), és adatbyte-ok. Pl. egy note On parancs után ki kell küldened a billentyű "számát" (max 127 bill.), és hangerejét (szintén max. 127). Ez össz. 3 bájt. Azért "csak" 127, mert a 8. bit különbözteti meg a parancs és adatbájtokat (parancsnál a 8. bit 1, adatnál 0).
Van néhány nagyon jó kis táblázatom a MIDI standard üzenetekről. Ha kell becsomagolom és elküldöm neked. Ill. van példaprogramom, igaz billentyűhöz, de talán ez is ad némi segítséget.
Az ütésérzékenység megoldható a PIC belső A/D konvertereivel, "alapesetben" 8 (egyes PIC-eknél 10), esetleg 16 csatornára kibővítve(analóg multiplexerrel). Az AD konverzió után kapott értéket pedig máris küldhetjük a MIDI portra...
Sokat foglalkoztatott ez a téma. Amit eddíg nem sikerült megcsinálnom az a Pitch Bend, de dobnál erre nincs is szükség ...
Ha gondolod szívesen segítek a témával kapcsolatban (ha tudok ).

Üdv.:Kaninjo
Következő: »»   196 / 196
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem