![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Testing code for just temperature test
main_temptest.cpp@0:584ea5db2696, 2017-09-04 (annotated)
- Committer:
- vickygough
- Date:
- Mon Sep 04 10:15:45 2017 +0000
- Revision:
- 0:584ea5db2696
initial tempread test;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vickygough | 0:584ea5db2696 | 1 | #include "mbed.h" |
vickygough | 0:584ea5db2696 | 2 | #include "PINNAMES_mbed.h" |
vickygough | 0:584ea5db2696 | 3 | #include "SPICOMMANDS.h" |
vickygough | 0:584ea5db2696 | 4 | #include "PROTOTYPES.h" |
vickygough | 0:584ea5db2696 | 5 | #include "TABLES.h" |
vickygough | 0:584ea5db2696 | 6 | |
vickygough | 0:584ea5db2696 | 7 | const int spiBitrate=250000; |
vickygough | 0:584ea5db2696 | 8 | bool arduino_task_done = false; |
vickygough | 0:584ea5db2696 | 9 | uint8_t write_buf [8]; |
vickygough | 0:584ea5db2696 | 10 | |
vickygough | 0:584ea5db2696 | 11 | int main() { |
vickygough | 0:584ea5db2696 | 12 | |
vickygough | 0:584ea5db2696 | 13 | // initialise write_buf |
vickygough | 0:584ea5db2696 | 14 | write_buf[0] = 0xAA; //message start |
vickygough | 0:584ea5db2696 | 15 | write_buf[1] = MEGA1; //chip_ID |
vickygough | 0:584ea5db2696 | 16 | write_buf[2] = do_nothing; //command |
vickygough | 0:584ea5db2696 | 17 | write_buf[3] = 0x00; |
vickygough | 0:584ea5db2696 | 18 | write_buf[4] = 0x00; |
vickygough | 0:584ea5db2696 | 19 | write_buf[5] = 0x00; //temp device number |
vickygough | 0:584ea5db2696 | 20 | write_buf[6] = 0x00; |
vickygough | 0:584ea5db2696 | 21 | write_buf[7] = GetSum(); |
vickygough | 0:584ea5db2696 | 22 | |
vickygough | 0:584ea5db2696 | 23 | char read_buf [8]; |
vickygough | 0:584ea5db2696 | 24 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 25 | read_buf[i] = 0; |
vickygough | 0:584ea5db2696 | 26 | } |
vickygough | 0:584ea5db2696 | 27 | |
vickygough | 0:584ea5db2696 | 28 | while(1) { |
vickygough | 0:584ea5db2696 | 29 | spi.format(8,3); |
vickygough | 0:584ea5db2696 | 30 | spi.frequency(spiBitrate); |
vickygough | 0:584ea5db2696 | 31 | |
vickygough | 0:584ea5db2696 | 32 | // REQUEST TEMPERATURES |
vickygough | 0:584ea5db2696 | 33 | write_buf[2] = request_temps; |
vickygough | 0:584ea5db2696 | 34 | write_buf[7] = GetSum(); |
vickygough | 0:584ea5db2696 | 35 | |
vickygough | 0:584ea5db2696 | 36 | chipSelect = 0; |
vickygough | 0:584ea5db2696 | 37 | wait_us(70); |
vickygough | 0:584ea5db2696 | 38 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 39 | spi.write(write_buf[i]); |
vickygough | 0:584ea5db2696 | 40 | } |
vickygough | 0:584ea5db2696 | 41 | |
vickygough | 0:584ea5db2696 | 42 | |
vickygough | 0:584ea5db2696 | 43 | while (!arduino_task_done) { |
vickygough | 0:584ea5db2696 | 44 | wait_us(10); |
vickygough | 0:584ea5db2696 | 45 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 46 | read_buf[i] = (uint8_t) spi.write(0xFA); |
vickygough | 0:584ea5db2696 | 47 | } |
vickygough | 0:584ea5db2696 | 48 | if (read_buf[6] == 0x01) { |
vickygough | 0:584ea5db2696 | 49 | //task done |
vickygough | 0:584ea5db2696 | 50 | arduino_task_done = true; |
vickygough | 0:584ea5db2696 | 51 | } |
vickygough | 0:584ea5db2696 | 52 | } |
vickygough | 0:584ea5db2696 | 53 | chipSelect = 1; |
vickygough | 0:584ea5db2696 | 54 | wait_us(10); |
vickygough | 0:584ea5db2696 | 55 | |
vickygough | 0:584ea5db2696 | 56 | |
vickygough | 0:584ea5db2696 | 57 | //READ PROBE 1 |
vickygough | 0:584ea5db2696 | 58 | write_buf[2] = read_onetemp_only; |
vickygough | 0:584ea5db2696 | 59 | write_buf[5] = 0x01; |
vickygough | 0:584ea5db2696 | 60 | write_buf[7] = GetSum(); |
vickygough | 0:584ea5db2696 | 61 | chipSelect = 0; |
vickygough | 0:584ea5db2696 | 62 | wait_us(70); |
vickygough | 0:584ea5db2696 | 63 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 64 | spi.write(write_buf[i]); |
vickygough | 0:584ea5db2696 | 65 | } |
vickygough | 0:584ea5db2696 | 66 | |
vickygough | 0:584ea5db2696 | 67 | while (!arduino_task_done) { |
vickygough | 0:584ea5db2696 | 68 | wait_us(10); |
vickygough | 0:584ea5db2696 | 69 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 70 | read_buf[i] = (uint8_t) spi.write(0xFA); |
vickygough | 0:584ea5db2696 | 71 | } |
vickygough | 0:584ea5db2696 | 72 | if (read_buf[6] == 0x01) { |
vickygough | 0:584ea5db2696 | 73 | //task done |
vickygough | 0:584ea5db2696 | 74 | arduino_task_done = true; |
vickygough | 0:584ea5db2696 | 75 | } |
vickygough | 0:584ea5db2696 | 76 | } |
vickygough | 0:584ea5db2696 | 77 | chipSelect = 1; |
vickygough | 0:584ea5db2696 | 78 | wait_us(10); |
vickygough | 0:584ea5db2696 | 79 | |
vickygough | 0:584ea5db2696 | 80 | printf("Response from Arduino is "); |
vickygough | 0:584ea5db2696 | 81 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 82 | printf("%d ", read_buf[i]); |
vickygough | 0:584ea5db2696 | 83 | //if (read_buf[i] == 32) printf("this is 32"); |
vickygough | 0:584ea5db2696 | 84 | read_buf[i] = 0x00; |
vickygough | 0:584ea5db2696 | 85 | } |
vickygough | 0:584ea5db2696 | 86 | printf("\r\n"); |
vickygough | 0:584ea5db2696 | 87 | |
vickygough | 0:584ea5db2696 | 88 | |
vickygough | 0:584ea5db2696 | 89 | //READ PROBE 2 |
vickygough | 0:584ea5db2696 | 90 | write_buf[2] = read_onetemp_only; |
vickygough | 0:584ea5db2696 | 91 | write_buf[5] = 0x02; |
vickygough | 0:584ea5db2696 | 92 | write_buf[7] = GetSum(); |
vickygough | 0:584ea5db2696 | 93 | chipSelect = 0; |
vickygough | 0:584ea5db2696 | 94 | wait_us(70); |
vickygough | 0:584ea5db2696 | 95 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 96 | spi.write(write_buf[i]); |
vickygough | 0:584ea5db2696 | 97 | } |
vickygough | 0:584ea5db2696 | 98 | |
vickygough | 0:584ea5db2696 | 99 | while (!arduino_task_done) { |
vickygough | 0:584ea5db2696 | 100 | wait_us(10); |
vickygough | 0:584ea5db2696 | 101 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 102 | read_buf[i] = (uint8_t) spi.write(0xFA); |
vickygough | 0:584ea5db2696 | 103 | } |
vickygough | 0:584ea5db2696 | 104 | if (read_buf[6] == 0x01) { |
vickygough | 0:584ea5db2696 | 105 | //task done |
vickygough | 0:584ea5db2696 | 106 | arduino_task_done = true; |
vickygough | 0:584ea5db2696 | 107 | } |
vickygough | 0:584ea5db2696 | 108 | } |
vickygough | 0:584ea5db2696 | 109 | |
vickygough | 0:584ea5db2696 | 110 | chipSelect = 1; |
vickygough | 0:584ea5db2696 | 111 | wait_us(10); |
vickygough | 0:584ea5db2696 | 112 | |
vickygough | 0:584ea5db2696 | 113 | printf("Response from Arduino is "); |
vickygough | 0:584ea5db2696 | 114 | for (int i = 0; i < 8; ++i) { |
vickygough | 0:584ea5db2696 | 115 | printf("%d ", read_buf[i]); |
vickygough | 0:584ea5db2696 | 116 | //if (read_buf[i] == 32) printf("this is 32"); |
vickygough | 0:584ea5db2696 | 117 | read_buf[i] = 0x00; |
vickygough | 0:584ea5db2696 | 118 | } |
vickygough | 0:584ea5db2696 | 119 | printf("\r\n"); |
vickygough | 0:584ea5db2696 | 120 | |
vickygough | 0:584ea5db2696 | 121 | |
vickygough | 0:584ea5db2696 | 122 | wait(1); |
vickygough | 0:584ea5db2696 | 123 | } |
vickygough | 0:584ea5db2696 | 124 | |
vickygough | 0:584ea5db2696 | 125 | } |
vickygough | 0:584ea5db2696 | 126 | uint8_t GetSum() { |
vickygough | 0:584ea5db2696 | 127 | uint8_t sum = write_buf[0] + write_buf[1] + write_buf[2] + write_buf[3] + write_buf[4] + write_buf[5]; |
vickygough | 0:584ea5db2696 | 128 | return sum; |
vickygough | 0:584ea5db2696 | 129 | } |