Albert-Jan Knevels / Mbed 2 deprecated CherryStone

Dependencies:   mbed

Committer:
EiJay
Date:
Wed Sep 24 12:45:51 2014 +0000
Revision:
14:68623bf5de94
Parent:
13:226b63f2b5e4
Child:
15:963d229367f6
Release 2.0

Who changed what in which revision?

UserRevisionLine numberNew 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 11:529d80511757 11 °°°°°°*/
EiJay 0:7bb832ad2fb8 12 #include "mbed.h"
EiJay 0:7bb832ad2fb8 13 #include "MLX90393.h"
EiJay 0:7bb832ad2fb8 14 int main()
EiJay 0:7bb832ad2fb8 15 {
EiJay 5:92add1a06191 16 //mBed indicators
EiJay 5:92add1a06191 17 DigitalOut myled(LED1);
EiJay 5:92add1a06191 18
EiJay 5:92add1a06191 19 //PC-communication
EiJay 5:92add1a06191 20 Serial pc (USBTX, USBRX);
EiJay 5:92add1a06191 21 pc.baud(9600);
EiJay 5:92add1a06191 22 char hostCommand;
EiJay 7:7a91079a5ddd 23 int hostData1;
EiJay 7:7a91079a5ddd 24 int hostData2;
EiJay 7:7a91079a5ddd 25 int hostData3;
EiJay 5:92add1a06191 26 //Chip communication
EiJay 5:92add1a06191 27 SPI spi(p5, p6, p7);
EiJay 5:92add1a06191 28 spi.format(MLX90393::spi_bits,MLX90393::spi_mode);
EiJay 13:226b63f2b5e4 29 spi.frequency(100000000);
EiJay 13:226b63f2b5e4 30 MLX90393 sensor(p21,&spi);
EiJay 0:7bb832ad2fb8 31
EiJay 5:92add1a06191 32 //variables
EiJay 10:59582af3b94a 33 char read_buffer[11];
EiJay 9:190ec4ad9ac7 34 int content_buffer[63];
EiJay 10:59582af3b94a 35 unsigned int dataInteger0;
EiJay 10:59582af3b94a 36 unsigned int dataInteger1;
EiJay 10:59582af3b94a 37 unsigned int dataInteger2;
EiJay 6:c09f0df4123c 38 //if you remove this line the program will fail
EiJay 7:7a91079a5ddd 39 //also make sure that you always send the status back to the host
EiJay 6:c09f0df4123c 40 hostCommand = 0;
EiJay 5:92add1a06191 41 while(1) {
EiJay 5:92add1a06191 42 pc.scanf(" %i, %i, %i, %i", &hostCommand, &hostData1, &hostData2, &hostData3);
EiJay 5:92add1a06191 43 switch(hostCommand) {
EiJay 5:92add1a06191 44 case 0: {
EiJay 14:68623bf5de94 45 //read eeprom (implemented CS)
EiJay 10:59582af3b94a 46 sensor.RR(read_buffer,hostData1,hostData2);
EiJay 10:59582af3b94a 47 printf("%i\n",(read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2]);
EiJay 5:92add1a06191 48 break;
EiJay 5:92add1a06191 49 }
EiJay 5:92add1a06191 50 case 1: {
EiJay 14:68623bf5de94 51 //read eeprom full (implemeted CS)
EiJay 9:190ec4ad9ac7 52 for (int i = 0; i<63; i++) {
EiJay 9:190ec4ad9ac7 53 sensor.RR(read_buffer,i,1);
EiJay 9:190ec4ad9ac7 54 content_buffer[i] = (read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2];
EiJay 9:190ec4ad9ac7 55 }
EiJay 9:190ec4ad9ac7 56 for (int i = 0; i<63; i++) {
EiJay 10:59582af3b94a 57 printf("%i\n",content_buffer[i]);
EiJay 9:190ec4ad9ac7 58 }
EiJay 5:92add1a06191 59 break;
EiJay 5:92add1a06191 60 }
EiJay 5:92add1a06191 61 case 2: {
EiJay 10:59582af3b94a 62 //Write register
EiJay 10:59582af3b94a 63 sensor.WR(read_buffer,hostData1,hostData2,hostData3);
EiJay 5:92add1a06191 64 break;
EiJay 5:92add1a06191 65 }
EiJay 5:92add1a06191 66 case 3: {
EiJay 5:92add1a06191 67 break;
EiJay 5:92add1a06191 68 }
EiJay 5:92add1a06191 69 case 4: {
EiJay 14:68623bf5de94 70 //reset (Implemeted)
EiJay 11:529d80511757 71 sensor.RT(read_buffer,hostData1);
EiJay 11:529d80511757 72 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 73 break;
EiJay 5:92add1a06191 74 }
EiJay 5:92add1a06191 75 case 5: {
EiJay 14:68623bf5de94 76 //exit (implemented in cs)
EiJay 14:68623bf5de94 77 sensor.EX(read_buffer,hostData1);
EiJay 8:7f7c9353bc05 78 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 79 break;
EiJay 5:92add1a06191 80 }
EiJay 5:92add1a06191 81 case 6: {
EiJay 14:68623bf5de94 82 //single measurement (implemented)
EiJay 10:59582af3b94a 83 sensor.SM(read_buffer,hostData1,hostData2);
EiJay 11:529d80511757 84 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 85 break;
EiJay 5:92add1a06191 86 }
EiJay 5:92add1a06191 87 case 7: {
EiJay 14:68623bf5de94 88 //read measurement (implemented cs)
EiJay 10:59582af3b94a 89 sensor.RM(read_buffer,hostData1,hostData2);
EiJay 10:59582af3b94a 90 dataInteger0 = (read_buffer[0]<<24)+ (read_buffer[1]<<16)+(read_buffer[2]<<8)+read_buffer[3];
EiJay 10:59582af3b94a 91 dataInteger1 = (read_buffer[4]<<24)+ (read_buffer[5]<<16)+(read_buffer[6]<<8)+read_buffer[7];
EiJay 10:59582af3b94a 92 dataInteger2 = (read_buffer[8]<<16)+ (read_buffer[9]<<8)+read_buffer[10];
EiJay 10:59582af3b94a 93 printf("%u,%u,%u\n",dataInteger0,dataInteger1,dataInteger2);
EiJay 5:92add1a06191 94 break;
EiJay 5:92add1a06191 95 }
EiJay 5:92add1a06191 96 case 8: {
EiJay 14:68623bf5de94 97 //burst (implemented CS)
EiJay 10:59582af3b94a 98 sensor.SB(read_buffer,hostData1,hostData2);
EiJay 8:7f7c9353bc05 99 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 100 break;
EiJay 5:92add1a06191 101 }
EiJay 5:92add1a06191 102 case 9: {
EiJay 14:68623bf5de94 103 //wake up on change (Implemented in cs)
EiJay 5:92add1a06191 104 sensor.SWOC(read_buffer,hostData1,1);
EiJay 8:7f7c9353bc05 105 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 106 break;
EiJay 5:92add1a06191 107 }
EiJay 13:226b63f2b5e4 108 case 10: {
EiJay 13:226b63f2b5e4 109 //memory recall
EiJay 13:226b63f2b5e4 110 sensor.HR(read_buffer,hostData1);
EiJay 13:226b63f2b5e4 111 printf("%i\n",read_buffer[0]);
EiJay 13:226b63f2b5e4 112 break;
EiJay 13:226b63f2b5e4 113 }
EiJay 13:226b63f2b5e4 114 case 11: {
EiJay 13:226b63f2b5e4 115 //memory store
EiJay 13:226b63f2b5e4 116 sensor.HS(read_buffer,hostData1);
EiJay 13:226b63f2b5e4 117 printf("%i\n",read_buffer[0]);
EiJay 13:226b63f2b5e4 118 break;
EiJay 13:226b63f2b5e4 119 }
EiJay 13:226b63f2b5e4 120
EiJay 4:dd534b0b54dd 121 }
EiJay 0:7bb832ad2fb8 122 }
EiJay 0:7bb832ad2fb8 123 }