Albert-Jan Knevels / Mbed 2 deprecated CherryStone

Dependencies:   mbed

Committer:
EiJay
Date:
Tue Jul 29 08:13:00 2014 +0000
Revision:
9:190ec4ad9ac7
Parent:
8:7f7c9353bc05
Child:
10:59582af3b94a
Reading eeprom works;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EiJay 0:7bb832ad2fb8 1 #include "mbed.h"
EiJay 0:7bb832ad2fb8 2 #include "MLX90393.h"
EiJay 4:dd534b0b54dd 3
EiJay 0:7bb832ad2fb8 4
EiJay 0:7bb832ad2fb8 5 int main()
EiJay 0:7bb832ad2fb8 6 {
EiJay 5:92add1a06191 7 //mBed indicators
EiJay 5:92add1a06191 8 DigitalOut myled(LED1);
EiJay 5:92add1a06191 9
EiJay 5:92add1a06191 10 //PC-communication
EiJay 5:92add1a06191 11 Serial pc (USBTX, USBRX);
EiJay 5:92add1a06191 12 pc.baud(9600);
EiJay 5:92add1a06191 13 char hostCommand;
EiJay 7:7a91079a5ddd 14 int hostData1;
EiJay 7:7a91079a5ddd 15 int hostData2;
EiJay 7:7a91079a5ddd 16 int hostData3;
EiJay 5:92add1a06191 17 //Chip communication
EiJay 5:92add1a06191 18 SPI spi(p5, p6, p7);
EiJay 5:92add1a06191 19 spi.format(MLX90393::spi_bits,MLX90393::spi_mode);
EiJay 5:92add1a06191 20 spi.frequency(1000000);
EiJay 5:92add1a06191 21 MLX90393 sensor(p26,&spi);
EiJay 0:7bb832ad2fb8 22
EiJay 2:ed31b405067c 23
EiJay 5:92add1a06191 24 //variables
EiJay 5:92add1a06191 25 char read_buffer[10];
EiJay 9:190ec4ad9ac7 26 int content_buffer[63];
EiJay 6:c09f0df4123c 27 //if you remove this line the program will fail
EiJay 7:7a91079a5ddd 28 //also make sure that you always send the status back to the host
EiJay 6:c09f0df4123c 29 hostCommand = 0;
EiJay 5:92add1a06191 30 while(1) {
EiJay 5:92add1a06191 31 pc.scanf(" %i, %i, %i, %i", &hostCommand, &hostData1, &hostData2, &hostData3);
EiJay 5:92add1a06191 32 switch(hostCommand) {
EiJay 5:92add1a06191 33 case 0: {
EiJay 7:7a91079a5ddd 34 //wait_ms(1);
EiJay 5:92add1a06191 35 break;
EiJay 5:92add1a06191 36 }
EiJay 5:92add1a06191 37 case 1: {
EiJay 9:190ec4ad9ac7 38 /*
EiJay 9:190ec4ad9ac7 39 ** Send 'read register' command to MLX90393.
EiJay 9:190ec4ad9ac7 40 * @param *receiveBuffer Pointer to receiveBuffer, will contain response of IC after command is sent.
EiJay 9:190ec4ad9ac7 41 * @param address The register to be read out.
EiJay 9:190ec4ad9ac7 42 * @param mode Communication mode (0=I2C, 1=SPI).
EiJay 9:190ec4ad9ac7 43 * @note The receiveBuffer will contain the status byte, followed by 2 bytes for the data at the specific register.
EiJay 9:190ec4ad9ac7 44 */
EiJay 9:190ec4ad9ac7 45 //void RR(char *receiveBuffer, int address, int mode);
EiJay 9:190ec4ad9ac7 46 for (int i = 0; i<63; i++) {
EiJay 9:190ec4ad9ac7 47 sensor.RR(read_buffer,i,1);
EiJay 9:190ec4ad9ac7 48 content_buffer[i] = (read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2];
EiJay 9:190ec4ad9ac7 49 //printf("%i",content_buffer[i]);
EiJay 9:190ec4ad9ac7 50 }
EiJay 9:190ec4ad9ac7 51 for (int i = 0; i<63; i++) {
EiJay 9:190ec4ad9ac7 52 printf("%i\n",content_buffer[i]);
EiJay 9:190ec4ad9ac7 53 }
EiJay 5:92add1a06191 54 break;
EiJay 5:92add1a06191 55 }
EiJay 5:92add1a06191 56 case 2: {
EiJay 5:92add1a06191 57 break;
EiJay 5:92add1a06191 58 }
EiJay 5:92add1a06191 59 case 3: {
EiJay 5:92add1a06191 60 break;
EiJay 5:92add1a06191 61 }
EiJay 5:92add1a06191 62 case 4: {
EiJay 5:92add1a06191 63 break;
EiJay 5:92add1a06191 64 }
EiJay 5:92add1a06191 65 case 5: {
EiJay 5:92add1a06191 66 //exit
EiJay 7:7a91079a5ddd 67 //printf("**gelukt** \n\r");
EiJay 5:92add1a06191 68 sensor.EX(read_buffer,1);
EiJay 8:7f7c9353bc05 69 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 70 break;
EiJay 5:92add1a06191 71 }
EiJay 5:92add1a06191 72 case 6: {
EiJay 5:92add1a06191 73 //single measurement
EiJay 5:92add1a06191 74 sensor.SM(read_buffer,hostData1,1);
EiJay 8:7f7c9353bc05 75 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 76 break;
EiJay 5:92add1a06191 77 }
EiJay 5:92add1a06191 78 case 7: {
EiJay 5:92add1a06191 79 break;
EiJay 5:92add1a06191 80 }
EiJay 5:92add1a06191 81 case 8: {
EiJay 5:92add1a06191 82 //burst
EiJay 5:92add1a06191 83 sensor.SB(read_buffer,hostData1,1);
EiJay 8:7f7c9353bc05 84 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 85 break;
EiJay 5:92add1a06191 86 }
EiJay 5:92add1a06191 87 case 9: {
EiJay 5:92add1a06191 88 //wake up on change
EiJay 5:92add1a06191 89 sensor.SWOC(read_buffer,hostData1,1);
EiJay 8:7f7c9353bc05 90 printf("%i\n",read_buffer[0]);
EiJay 5:92add1a06191 91 break;
EiJay 5:92add1a06191 92 }
EiJay 4:dd534b0b54dd 93 }
EiJay 0:7bb832ad2fb8 94 }
EiJay 0:7bb832ad2fb8 95 }