Albert-Jan Knevels / Mbed 2 deprecated CherryStone

Dependencies:   mbed

Committer:
EiJay
Date:
Mon Sep 15 09:55:36 2014 +0000
Revision:
12:2fc3e1efa646
Parent:
11:529d80511757
Child:
13:226b63f2b5e4
intermediate

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