Jumat, 16 September 2011

Interfacing Joystick PlayStation (AVR) Bag 2 (Software)

Setelah anda membaca bagianyang pertama (persiapan hardware), sekarang mari kita lihat bagaimana cara membuat program di uC untuk membaca data dan mengirimkan perintah dari/ke JoyStick PlayStation.
Yang harus dipersiapkan :
  1. 1 unit komputer
  2. Software CodeVision-AVR
Langkah-langkah :
  1. Buka CodeVision anda
  2. Gunakan CodeWizard untuk setting I/O anda sesuai dengan kebutuhan anda.
  3. Lalu pilih menu File->Generate, save, and Exit.
  4. Tambahkan baris berikut ke dalam source code anda :


#include <spi.h>
#define psxatn PORTC.4 // Sesuaikan dengan desain Hardware anda
unsigned char byte4, byte5, byte6, byte7, byte8, byte9; // Deklarasikan sebagai variabel global
  1. Tambahkan baris inisialisasi awal SPI berikut pada fungsi main anda (void main())
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 62,500 kHz
// SxPI Clock Phase: Cycle Half
// SPI Clock Polarity: High
// SPI Data Order: LSB First
SPCR=0x7E;

SPSR=0×00;
  1. Buat fungsi berikut untuk membaca (pooling) data dari PSX:
void readPSX(){
psxatn = 0;
spi(0×01);
spi(0×42);
spi(0×00);
byte4 = spi(0×00);
byte5 = spi(0×00);
byte6 = spi(0×00);
byte7 = spi(0×00);

byte8 = spi(0×00);
byte9 = spi(0×00);
psxatn = 1;
}
  1. Setelah anda memanggil fungsi readPSX() maka variabel byte4, byte5, byte6, byte7, byte8, dan byte9 akan berisi data dengan rincian sebagai berikut :
  1. Perlu diingat bahwa pada saat idle pin psxatn dalam keadaan high. Untuk menandai bahwa komunikasi akan dimulai maka pin ini harus diberi logika low, kemudian akan terjadi pertukaran data seperti di atas. Untuk mengakhiri high kan kembali pin psxatn.
Terima kasih, selamat mencoba.

1 komentar:

  1. saya belum paham mas. mungkin penjelasan lebih lanjut bisa dikirim ke email saya
    zay.bukan.jay@gmail.com

    BalasHapus