Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   197 / 197
(#) 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ő: »»   197 / 197
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