|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
|
Ðiều Chỉnh | Xếp Bài |
10-12-2013, 08:47 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 1
: |
Help! Giao tiếp dspic30F4013 với tay game ps2
Mọi người có ai đã từng giao tiếp thành công dspic30F4013 với tay game ps2 chưa vậy? mình giao tiếp mãi mà vẫn chưa đc. Mình dùng tay cầm Ps2 loại 9 chân ngõ ra( sử dụng 5 chân Vcc, Gnd, Data, Cmd, ATT, Clock) viết bằng mikroC, truyền nhận thông qua chuẩn Spi
đây là code của mình sbit Chip_Select at LATF0_bit; sbit Chip_Select_Direction at TRISF0_bit; // LCD module connections sbit LCD_RS at LATB5_bit; sbit LCD_EN at LATB4_bit; sbit LCD_D4 at LATB3_bit; sbit LCD_D5 at LATB2_bit; sbit LCD_D6 at LATB1_bit; sbit LCD_D7 at LATB0_bit; sbit LCD_RS_Direction at TRISB5_bit; sbit LCD_EN_Direction at TRISB4_bit; sbit LCD_D4_Direction at TRISB3_bit; sbit LCD_D5_Direction at TRISB2_bit; sbit LCD_D6_Direction at TRISB1_bit; sbit LCD_D7_Direction at TRISB0_bit; // End LCD module connections unsigned int value; char txt[8]; void InitMain() { Chip_Select = 1; // Deselect DAC Chip_Select_Direction = 0; // Set CS# pin as Output SPI1_Init(); // Initialize SPI module } void main() { int a,b; ADPCFG = 0xFFFF; SPI1_Init(); Lcd_init(); TRISB.B12=0; TRISB.B11=0; a=0; Lcd_cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); while (1) { Chip_Select = 1; delay_us(100); Chip_Select = 0; // Select DAC chip SPI1_Write(0x01); // Truyen byte1 delay_us(100); SPI1_Write(0x42); // truyen byte2 delay_us(100); SPI1_Write(0x00); // truyen byte3 delay_us(100); SPI1_Write(0x00); // nhan byte4 a=SPI1_READ(0); IntToStr(a,txt); Lcd_out(1,1,txt); delay_us(100); SPI1_Write(0x00); // nhan byte5 b=SPI1_READ(0); IntToStr(b,txt); Lcd_out(2,1,txt); Chip_Select = 1; // LCD_out(1,1,txt); } } |
|
|