Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@17:0dee2d58c357, 2014-10-29 (annotated)
- Committer:
- EiJay
- Date:
- Wed Oct 29 13:18:21 2014 +0000
- Revision:
- 17:0dee2d58c357
- Parent:
- 16:62feeff507d5
- Child:
- 18:1fddc3e5fffe
Updated for I2C
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EiJay | 11:529d80511757 | 1 | /*ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ |
EiJay | 11:529d80511757 | 2 | ÛÛÛ°°°°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°°°°ÛÛÛ °°ÛÛÛ |
EiJay | 11:529d80511757 | 3 | ÛÛÛ °°° °ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ°ÛÛÛ °°° ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛ |
EiJay | 11:529d80511757 | 4 | °ÛÛÛ °ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°°ÛÛÛ° ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ |
EiJay | 11:529d80511757 | 5 | °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °ÛÛÛ °°° °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °°°°°°°°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ |
EiJay | 11:529d80511757 | 6 | °°ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° |
EiJay | 11:529d80511757 | 7 | °°ÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ °°ÛÛÛÛÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛ °°ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ |
EiJay | 11:529d80511757 | 8 | °°°°°°°°° °°°° °°°°° °°°°°° °°°°° °°°°° °°°°°ÛÛÛ °°°°°°°°° °°°°° °°°°°° °°°° °°°°° °°°°°° |
EiJay | 11:529d80511757 | 9 | ÛÛÛ °ÛÛÛ |
EiJay | 11:529d80511757 | 10 | °°ÛÛÛÛÛÛ |
EiJay | 16:62feeff507d5 | 11 | |
EiJay | 11:529d80511757 | 12 | °°°°°°*/ |
EiJay | 16:62feeff507d5 | 13 | |
EiJay | 15:963d229367f6 | 14 | //TODO: |
EiJay | 15:963d229367f6 | 15 | /* |
EiJay | 15:963d229367f6 | 16 | 1. include I am alive - to check if connecting w/ the mbed was succesfull |
EiJay | 15:963d229367f6 | 17 | 2. include a watch dog system for unconditional errors --> auto reset |
EiJay | 15:963d229367f6 | 18 | */ |
EiJay | 16:62feeff507d5 | 19 | |
EiJay | 16:62feeff507d5 | 20 | |
EiJay | 0:7bb832ad2fb8 | 21 | #include "mbed.h" |
EiJay | 0:7bb832ad2fb8 | 22 | #include "MLX90393.h" |
EiJay | 0:7bb832ad2fb8 | 23 | int main() |
EiJay | 0:7bb832ad2fb8 | 24 | { |
EiJay | 5:92add1a06191 | 25 | //mBed indicators |
EiJay | 17:0dee2d58c357 | 26 | DigitalOut a1(p21); |
EiJay | 17:0dee2d58c357 | 27 | DigitalOut a0(p22); |
EiJay | 5:92add1a06191 | 28 | |
EiJay | 5:92add1a06191 | 29 | //PC-communication |
EiJay | 5:92add1a06191 | 30 | Serial pc (USBTX, USBRX); |
EiJay | 5:92add1a06191 | 31 | pc.baud(9600); |
EiJay | 17:0dee2d58c357 | 32 | |
EiJay | 17:0dee2d58c357 | 33 | //variables |
EiJay | 17:0dee2d58c357 | 34 | int hostData1,hostData2,hostData3, content_buffer[63]; |
EiJay | 17:0dee2d58c357 | 35 | unsigned int dataInteger0, dataInteger1, dataInteger2; |
EiJay | 17:0dee2d58c357 | 36 | char read_buffer[11], hostCommand; |
EiJay | 17:0dee2d58c357 | 37 | |
EiJay | 17:0dee2d58c357 | 38 | //Chip communication (SPI) |
EiJay | 17:0dee2d58c357 | 39 | /*SPI spi(p5, p6, p7); |
EiJay | 5:92add1a06191 | 40 | spi.format(MLX90393::spi_bits,MLX90393::spi_mode); |
EiJay | 13:226b63f2b5e4 | 41 | spi.frequency(100000000); |
EiJay | 16:62feeff507d5 | 42 | MLX90393 sensor(p8,&spi); |
EiJay | 17:0dee2d58c357 | 43 | */ |
EiJay | 17:0dee2d58c357 | 44 | |
EiJay | 17:0dee2d58c357 | 45 | //Chip communication (I2C) |
EiJay | 17:0dee2d58c357 | 46 | a1=0; |
EiJay | 17:0dee2d58c357 | 47 | a0=0; |
EiJay | 17:0dee2d58c357 | 48 | I2C i2c(p9, p10); |
EiJay | 17:0dee2d58c357 | 49 | i2c.frequency(75000); |
EiJay | 17:0dee2d58c357 | 50 | MLX90393 sensor(MLX90393::i2c_address,&i2c); |
EiJay | 0:7bb832ad2fb8 | 51 | |
EiJay | 17:0dee2d58c357 | 52 | |
EiJay | 6:c09f0df4123c | 53 | //if you remove this line the program will fail |
EiJay | 7:7a91079a5ddd | 54 | //also make sure that you always send the status back to the host |
EiJay | 17:0dee2d58c357 | 55 | |
EiJay | 6:c09f0df4123c | 56 | hostCommand = 0; |
EiJay | 5:92add1a06191 | 57 | while(1) { |
EiJay | 5:92add1a06191 | 58 | pc.scanf(" %i, %i, %i, %i", &hostCommand, &hostData1, &hostData2, &hostData3); |
EiJay | 5:92add1a06191 | 59 | switch(hostCommand) { |
EiJay | 5:92add1a06191 | 60 | case 0: { |
EiJay | 14:68623bf5de94 | 61 | //read eeprom (implemented CS) |
EiJay | 10:59582af3b94a | 62 | sensor.RR(read_buffer,hostData1,hostData2); |
EiJay | 10:59582af3b94a | 63 | printf("%i\n",(read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2]); |
EiJay | 5:92add1a06191 | 64 | break; |
EiJay | 5:92add1a06191 | 65 | } |
EiJay | 5:92add1a06191 | 66 | case 1: { |
EiJay | 14:68623bf5de94 | 67 | //read eeprom full (implemeted CS) |
EiJay | 9:190ec4ad9ac7 | 68 | for (int i = 0; i<63; i++) { |
EiJay | 17:0dee2d58c357 | 69 | sensor.RR(read_buffer,i,hostData1); |
EiJay | 9:190ec4ad9ac7 | 70 | content_buffer[i] = (read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2]; |
EiJay | 9:190ec4ad9ac7 | 71 | } |
EiJay | 9:190ec4ad9ac7 | 72 | for (int i = 0; i<63; i++) { |
EiJay | 10:59582af3b94a | 73 | printf("%i\n",content_buffer[i]); |
EiJay | 9:190ec4ad9ac7 | 74 | } |
EiJay | 5:92add1a06191 | 75 | break; |
EiJay | 5:92add1a06191 | 76 | } |
EiJay | 5:92add1a06191 | 77 | case 2: { |
EiJay | 10:59582af3b94a | 78 | //Write register |
EiJay | 10:59582af3b94a | 79 | sensor.WR(read_buffer,hostData1,hostData2,hostData3); |
EiJay | 5:92add1a06191 | 80 | break; |
EiJay | 5:92add1a06191 | 81 | } |
EiJay | 5:92add1a06191 | 82 | case 3: { |
EiJay | 5:92add1a06191 | 83 | break; |
EiJay | 5:92add1a06191 | 84 | } |
EiJay | 5:92add1a06191 | 85 | case 4: { |
EiJay | 14:68623bf5de94 | 86 | //reset (Implemeted) |
EiJay | 11:529d80511757 | 87 | sensor.RT(read_buffer,hostData1); |
EiJay | 11:529d80511757 | 88 | printf("%i\n",read_buffer[0]); |
EiJay | 5:92add1a06191 | 89 | break; |
EiJay | 5:92add1a06191 | 90 | } |
EiJay | 5:92add1a06191 | 91 | case 5: { |
EiJay | 14:68623bf5de94 | 92 | //exit (implemented in cs) |
EiJay | 14:68623bf5de94 | 93 | sensor.EX(read_buffer,hostData1); |
EiJay | 8:7f7c9353bc05 | 94 | printf("%i\n",read_buffer[0]); |
EiJay | 5:92add1a06191 | 95 | break; |
EiJay | 5:92add1a06191 | 96 | } |
EiJay | 5:92add1a06191 | 97 | case 6: { |
EiJay | 14:68623bf5de94 | 98 | //single measurement (implemented) |
EiJay | 10:59582af3b94a | 99 | sensor.SM(read_buffer,hostData1,hostData2); |
EiJay | 11:529d80511757 | 100 | printf("%i\n",read_buffer[0]); |
EiJay | 5:92add1a06191 | 101 | break; |
EiJay | 5:92add1a06191 | 102 | } |
EiJay | 5:92add1a06191 | 103 | case 7: { |
EiJay | 14:68623bf5de94 | 104 | //read measurement (implemented cs) |
EiJay | 10:59582af3b94a | 105 | sensor.RM(read_buffer,hostData1,hostData2); |
EiJay | 10:59582af3b94a | 106 | dataInteger0 = (read_buffer[0]<<24)+ (read_buffer[1]<<16)+(read_buffer[2]<<8)+read_buffer[3]; |
EiJay | 10:59582af3b94a | 107 | dataInteger1 = (read_buffer[4]<<24)+ (read_buffer[5]<<16)+(read_buffer[6]<<8)+read_buffer[7]; |
EiJay | 10:59582af3b94a | 108 | dataInteger2 = (read_buffer[8]<<16)+ (read_buffer[9]<<8)+read_buffer[10]; |
EiJay | 10:59582af3b94a | 109 | printf("%u,%u,%u\n",dataInteger0,dataInteger1,dataInteger2); |
EiJay | 5:92add1a06191 | 110 | break; |
EiJay | 5:92add1a06191 | 111 | } |
EiJay | 5:92add1a06191 | 112 | case 8: { |
EiJay | 14:68623bf5de94 | 113 | //burst (implemented CS) |
EiJay | 10:59582af3b94a | 114 | sensor.SB(read_buffer,hostData1,hostData2); |
EiJay | 8:7f7c9353bc05 | 115 | printf("%i\n",read_buffer[0]); |
EiJay | 5:92add1a06191 | 116 | break; |
EiJay | 5:92add1a06191 | 117 | } |
EiJay | 5:92add1a06191 | 118 | case 9: { |
EiJay | 14:68623bf5de94 | 119 | //wake up on change (Implemented in cs) |
EiJay | 17:0dee2d58c357 | 120 | sensor.SWOC(read_buffer,hostData1,hostData2); |
EiJay | 8:7f7c9353bc05 | 121 | printf("%i\n",read_buffer[0]); |
EiJay | 5:92add1a06191 | 122 | break; |
EiJay | 5:92add1a06191 | 123 | } |
EiJay | 13:226b63f2b5e4 | 124 | case 10: { |
EiJay | 13:226b63f2b5e4 | 125 | //memory recall |
EiJay | 13:226b63f2b5e4 | 126 | sensor.HR(read_buffer,hostData1); |
EiJay | 13:226b63f2b5e4 | 127 | printf("%i\n",read_buffer[0]); |
EiJay | 13:226b63f2b5e4 | 128 | break; |
EiJay | 13:226b63f2b5e4 | 129 | } |
EiJay | 13:226b63f2b5e4 | 130 | case 11: { |
EiJay | 13:226b63f2b5e4 | 131 | //memory store |
EiJay | 13:226b63f2b5e4 | 132 | sensor.HS(read_buffer,hostData1); |
EiJay | 13:226b63f2b5e4 | 133 | printf("%i\n",read_buffer[0]); |
EiJay | 13:226b63f2b5e4 | 134 | break; |
EiJay | 13:226b63f2b5e4 | 135 | } |
EiJay | 13:226b63f2b5e4 | 136 | |
EiJay | 4:dd534b0b54dd | 137 | } |
EiJay | 0:7bb832ad2fb8 | 138 | } |
EiJay | 0:7bb832ad2fb8 | 139 | } |