Gary Trimble
/
rs485
main.cpp@0:1eda7e4ab843, 2010-02-07 (annotated)
- Committer:
- GaryTrimble
- Date:
- Sun Feb 07 03:55:44 2010 +0000
- Revision:
- 0:1eda7e4ab843
Who changed what in which revision?
User | Revision | Line number | New 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 | } |