Dependencies:   mbed

Committer:
GaryTrimble
Date:
Sun Feb 07 03:55:44 2010 +0000
Revision:
0:1eda7e4ab843

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GaryTrimble 0:1eda7e4ab843 1 #include "mbed.h"
GaryTrimble 0:1eda7e4ab843 2
GaryTrimble 0:1eda7e4ab843 3 SPI spi(p5,p6,p7);
GaryTrimble 0:1eda7e4ab843 4 DigitalOut cs(p8);
GaryTrimble 0:1eda7e4ab843 5 InterruptIn Max3140Data(p9);
GaryTrimble 0:1eda7e4ab843 6
GaryTrimble 0:1eda7e4ab843 7 Serial pc(USBTX, USBRX);
GaryTrimble 0:1eda7e4ab843 8
GaryTrimble 0:1eda7e4ab843 9 int ret = 0;
GaryTrimble 0:1eda7e4ab843 10 char input_character = 0;
GaryTrimble 0:1eda7e4ab843 11 char output_character = 0;
GaryTrimble 0:1eda7e4ab843 12 char input_buffer[16384];
GaryTrimble 0:1eda7e4ab843 13 int input_buffer_pointer = 0;
GaryTrimble 0:1eda7e4ab843 14 int output_buffer_pointer = 0;
GaryTrimble 0:1eda7e4ab843 15
GaryTrimble 0:1eda7e4ab843 16 void gotit() {
GaryTrimble 0:1eda7e4ab843 17
GaryTrimble 0:1eda7e4ab843 18 cs = 0;
GaryTrimble 0:1eda7e4ab843 19 ret = 0;
GaryTrimble 0:1eda7e4ab843 20 ret = spi.write(0x0000);
GaryTrimble 0:1eda7e4ab843 21 cs = 1;
GaryTrimble 0:1eda7e4ab843 22 input_character = char(ret & 0x7F);
GaryTrimble 0:1eda7e4ab843 23 input_buffer[input_buffer_pointer++] = input_character;
GaryTrimble 0:1eda7e4ab843 24 //pc.printf("%c",input_character);
GaryTrimble 0:1eda7e4ab843 25 }
GaryTrimble 0:1eda7e4ab843 26
GaryTrimble 0:1eda7e4ab843 27 void Max3140_Write(char output_byte){
GaryTrimble 0:1eda7e4ab843 28 ret = 0;
GaryTrimble 0:1eda7e4ab843 29 cs = 0;
GaryTrimble 0:1eda7e4ab843 30 ret = spi.write(0x8000 | output_byte);
GaryTrimble 0:1eda7e4ab843 31 cs = 1;
GaryTrimble 0:1eda7e4ab843 32 wait(0.0001);
GaryTrimble 0:1eda7e4ab843 33 }
GaryTrimble 0:1eda7e4ab843 34
GaryTrimble 0:1eda7e4ab843 35
GaryTrimble 0:1eda7e4ab843 36 int main(){
GaryTrimble 0:1eda7e4ab843 37
GaryTrimble 0:1eda7e4ab843 38 spi.format(16,0);
GaryTrimble 0:1eda7e4ab843 39 spi.frequency(1000000);
GaryTrimble 0:1eda7e4ab843 40
GaryTrimble 0:1eda7e4ab843 41 Max3140Data.mode(PullUp);
GaryTrimble 0:1eda7e4ab843 42 Max3140Data.fall(&gotit);
GaryTrimble 0:1eda7e4ab843 43
GaryTrimble 0:1eda7e4ab843 44 wait(0.5);
GaryTrimble 0:1eda7e4ab843 45
GaryTrimble 0:1eda7e4ab843 46 Max3140_Write('H');
GaryTrimble 0:1eda7e4ab843 47 Max3140_Write('e');
GaryTrimble 0:1eda7e4ab843 48 Max3140_Write('l');
GaryTrimble 0:1eda7e4ab843 49 Max3140_Write('l');
GaryTrimble 0:1eda7e4ab843 50 Max3140_Write('o');
GaryTrimble 0:1eda7e4ab843 51 Max3140_Write('\r');
GaryTrimble 0:1eda7e4ab843 52 Max3140_Write('\n');
GaryTrimble 0:1eda7e4ab843 53
GaryTrimble 0:1eda7e4ab843 54 ret = 0;
GaryTrimble 0:1eda7e4ab843 55 cs = 0;
GaryTrimble 0:1eda7e4ab843 56 ret = spi.write(0xC400);
GaryTrimble 0:1eda7e4ab843 57 cs = 1;
GaryTrimble 0:1eda7e4ab843 58 wait(0.1);
GaryTrimble 0:1eda7e4ab843 59 //pc.printf("\r\nWRITE CONFIGURATION register = 0x%04X\r\n ", ret);
GaryTrimble 0:1eda7e4ab843 60
GaryTrimble 0:1eda7e4ab843 61 cs = 0;
GaryTrimble 0:1eda7e4ab843 62 ret = spi.write(0x4000);
GaryTrimble 0:1eda7e4ab843 63 cs = 1;
GaryTrimble 0:1eda7e4ab843 64 //pc.printf("\r\nREAD CONFIGURATION register = 0x%04X\r\n", ret);
GaryTrimble 0:1eda7e4ab843 65 wait(0.1);
GaryTrimble 0:1eda7e4ab843 66
GaryTrimble 0:1eda7e4ab843 67 // Try to read some data
GaryTrimble 0:1eda7e4ab843 68
GaryTrimble 0:1eda7e4ab843 69 ret = 0;
GaryTrimble 0:1eda7e4ab843 70 cs = 0;
GaryTrimble 0:1eda7e4ab843 71 ret = spi.write(0x8600);
GaryTrimble 0:1eda7e4ab843 72 cs = 1;
GaryTrimble 0:1eda7e4ab843 73
GaryTrimble 0:1eda7e4ab843 74 wait(0.1);
GaryTrimble 0:1eda7e4ab843 75
GaryTrimble 0:1eda7e4ab843 76 //cs = 0;
GaryTrimble 0:1eda7e4ab843 77 //ret = spi.write(0x0000);
GaryTrimble 0:1eda7e4ab843 78 // cs = 1;
GaryTrimble 0:1eda7e4ab843 79
GaryTrimble 0:1eda7e4ab843 80 pc.printf("at loop\r\n");
GaryTrimble 0:1eda7e4ab843 81 input_buffer_pointer = output_buffer_pointer = 0;
GaryTrimble 0:1eda7e4ab843 82 for(;;){
GaryTrimble 0:1eda7e4ab843 83 if(input_buffer_pointer > output_buffer_pointer){
GaryTrimble 0:1eda7e4ab843 84 //pc.printf("%d %d\r\n", input_buffer_pointer, output_buffer_pointer);
GaryTrimble 0:1eda7e4ab843 85 output_character = input_buffer[output_buffer_pointer++];
GaryTrimble 0:1eda7e4ab843 86 pc.printf("%c", output_character);
GaryTrimble 0:1eda7e4ab843 87 }
GaryTrimble 0:1eda7e4ab843 88 }
GaryTrimble 0:1eda7e4ab843 89
GaryTrimble 0:1eda7e4ab843 90 }