Dependencies:   mbed

Committer:
simon
Date:
Sun Nov 22 18:43:01 2009 +0000
Revision:
2:e3dd9a5cefa0
Parent:
1:e4af215fb689

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:da9d848449ef 1 #include "mbed.h"
simon 0:da9d848449ef 2
simon 2:e3dd9a5cefa0 3 SPI spi(p5, p6, p7); // mosi, miso, sclk (or "command", "data", "clock")
simon 1:e4af215fb689 4 DigitalOut cs(p25); // chip select (or "attention")
simon 0:da9d848449ef 5
simon 1:e4af215fb689 6 // setup the controller in to analog mode
simon 1:e4af215fb689 7 void ps2_analog_mode() {
simon 1:e4af215fb689 8 const char enter_config_mode[5] = {0x01, 0x43, 0x00, 0x01, 0x00};
simon 1:e4af215fb689 9 const char enable_analog_mode[9] = {0x01, 0x44, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00};
simon 1:e4af215fb689 10 const char exit_config_mode[9] = {0x01, 0x43, 0x00, 0x00, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A};
simon 0:da9d848449ef 11
simon 1:e4af215fb689 12 cs = 0;
simon 1:e4af215fb689 13 for (int i=0; i<5; i++) {
simon 1:e4af215fb689 14 spi.write(enter_config_mode[i]);
simon 1:e4af215fb689 15 }
simon 1:e4af215fb689 16 cs = 1;
simon 0:da9d848449ef 17
simon 1:e4af215fb689 18 wait_us(1);
simon 1:e4af215fb689 19
simon 1:e4af215fb689 20 cs = 0;
simon 1:e4af215fb689 21 for (int i=0; i<9; i++) {
simon 1:e4af215fb689 22 spi.write(enable_analog_mode[i]);
simon 0:da9d848449ef 23 }
simon 1:e4af215fb689 24 cs = 1;
simon 1:e4af215fb689 25
simon 1:e4af215fb689 26 wait_us(1);
simon 0:da9d848449ef 27
simon 1:e4af215fb689 28 cs = 0;
simon 1:e4af215fb689 29 for (int i=0; i<9; i++) {
simon 1:e4af215fb689 30 spi.write(exit_config_mode[i]);
simon 1:e4af215fb689 31 }
simon 1:e4af215fb689 32 cs = 1;
simon 0:da9d848449ef 33 }
simon 0:da9d848449ef 34
simon 1:e4af215fb689 35 int main() {
simon 1:e4af215fb689 36 ps2_analog_mode();
simon 0:da9d848449ef 37
simon 1:e4af215fb689 38 while (1) {
simon 1:e4af215fb689 39 const char poll_command[9] = {0x01, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
simon 1:e4af215fb689 40 char response[9];
simon 0:da9d848449ef 41
simon 1:e4af215fb689 42 cs = 0;
simon 1:e4af215fb689 43 for (int i=0; i<9; i++) {
simon 1:e4af215fb689 44 response[i] = spi.write(poll_command[i]);
simon 1:e4af215fb689 45 }
simon 1:e4af215fb689 46 cs = 1;
simon 0:da9d848449ef 47
simon 1:e4af215fb689 48 printf("Digital %02X %02X Analog %02X %02X %02X %02X\n", response[3], response[4], response[5], response[6], response[7], response[8]);
simon 0:da9d848449ef 49 }
simon 0:da9d848449ef 50 }
simon 0:da9d848449ef 51