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
- Committer:
- EiJay
- Date:
- 2014-10-29
- Revision:
- 17:0dee2d58c357
- Parent:
- 16:62feeff507d5
- Child:
- 18:1fddc3e5fffe
File content as of revision 17:0dee2d58c357:
/*ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛ°°°°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°°°°ÛÛÛ °°ÛÛÛ ÛÛÛ °°° °ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ°ÛÛÛ °°° ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°°ÛÛÛ° ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °ÛÛÛ °°° °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °°°°°°°°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °°ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° °°ÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ °°ÛÛÛÛÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛ °°ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ °°°°°°°°° °°°° °°°°° °°°°°° °°°°° °°°°° °°°°°ÛÛÛ °°°°°°°°° °°°°° °°°°°° °°°° °°°°° °°°°°° ÛÛÛ °ÛÛÛ °°ÛÛÛÛÛÛ °°°°°°*/ //TODO: /* 1. include I am alive - to check if connecting w/ the mbed was succesfull 2. include a watch dog system for unconditional errors --> auto reset */ #include "mbed.h" #include "MLX90393.h" int main() { //mBed indicators DigitalOut a1(p21); DigitalOut a0(p22); //PC-communication Serial pc (USBTX, USBRX); pc.baud(9600); //variables int hostData1,hostData2,hostData3, content_buffer[63]; unsigned int dataInteger0, dataInteger1, dataInteger2; char read_buffer[11], hostCommand; //Chip communication (SPI) /*SPI spi(p5, p6, p7); spi.format(MLX90393::spi_bits,MLX90393::spi_mode); spi.frequency(100000000); MLX90393 sensor(p8,&spi); */ //Chip communication (I2C) a1=0; a0=0; I2C i2c(p9, p10); i2c.frequency(75000); MLX90393 sensor(MLX90393::i2c_address,&i2c); //if you remove this line the program will fail //also make sure that you always send the status back to the host hostCommand = 0; while(1) { pc.scanf(" %i, %i, %i, %i", &hostCommand, &hostData1, &hostData2, &hostData3); switch(hostCommand) { case 0: { //read eeprom (implemented CS) sensor.RR(read_buffer,hostData1,hostData2); printf("%i\n",(read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2]); break; } case 1: { //read eeprom full (implemeted CS) for (int i = 0; i<63; i++) { sensor.RR(read_buffer,i,hostData1); content_buffer[i] = (read_buffer[0]*65536)+(read_buffer[1]*256) + read_buffer[2]; } for (int i = 0; i<63; i++) { printf("%i\n",content_buffer[i]); } break; } case 2: { //Write register sensor.WR(read_buffer,hostData1,hostData2,hostData3); break; } case 3: { break; } case 4: { //reset (Implemeted) sensor.RT(read_buffer,hostData1); printf("%i\n",read_buffer[0]); break; } case 5: { //exit (implemented in cs) sensor.EX(read_buffer,hostData1); printf("%i\n",read_buffer[0]); break; } case 6: { //single measurement (implemented) sensor.SM(read_buffer,hostData1,hostData2); printf("%i\n",read_buffer[0]); break; } case 7: { //read measurement (implemented cs) sensor.RM(read_buffer,hostData1,hostData2); dataInteger0 = (read_buffer[0]<<24)+ (read_buffer[1]<<16)+(read_buffer[2]<<8)+read_buffer[3]; dataInteger1 = (read_buffer[4]<<24)+ (read_buffer[5]<<16)+(read_buffer[6]<<8)+read_buffer[7]; dataInteger2 = (read_buffer[8]<<16)+ (read_buffer[9]<<8)+read_buffer[10]; printf("%u,%u,%u\n",dataInteger0,dataInteger1,dataInteger2); break; } case 8: { //burst (implemented CS) sensor.SB(read_buffer,hostData1,hostData2); printf("%i\n",read_buffer[0]); break; } case 9: { //wake up on change (Implemented in cs) sensor.SWOC(read_buffer,hostData1,hostData2); printf("%i\n",read_buffer[0]); break; } case 10: { //memory recall sensor.HR(read_buffer,hostData1); printf("%i\n",read_buffer[0]); break; } case 11: { //memory store sensor.HS(read_buffer,hostData1); printf("%i\n",read_buffer[0]); break; } } } }