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-08-08
- Revision:
- 11:529d80511757
- Parent:
- 10:59582af3b94a
- Child:
- 12:2fc3e1efa646
File content as of revision 11:529d80511757:
/*ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛ°°°°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°°°°ÛÛÛ °°ÛÛÛ ÛÛÛ °°° °ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ°ÛÛÛ °°° ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°°ÛÛÛ° ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °ÛÛÛ °°° °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °°°°°°°°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °°ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ°ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ°°° °°ÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ °°ÛÛÛÛÛÛÛ °°ÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛ °°ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ °°°°°°°°° °°°° °°°°° °°°°°° °°°°° °°°°° °°°°°ÛÛÛ °°°°°°°°° °°°°° °°°°°° °°°° °°°°° °°°°°° ÛÛÛ °ÛÛÛ °°ÛÛÛÛÛÛ °°°°°°*/ #include "mbed.h" #include "MLX90393.h" int main() { //mBed indicators DigitalOut myled(LED1); //PC-communication Serial pc (USBTX, USBRX); pc.baud(9600); char hostCommand; int hostData1; int hostData2; int hostData3; //Chip communication SPI spi(p5, p6, p7); spi.format(MLX90393::spi_bits,MLX90393::spi_mode); spi.frequency(1000000); MLX90393 sensor(p26,&spi); //variables char read_buffer[11]; int content_buffer[63]; unsigned int dataInteger0; unsigned int dataInteger1; unsigned int dataInteger2; //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 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 for (int i = 0; i<63; i++) { sensor.RR(read_buffer,i,1); 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 sensor.RT(read_buffer,hostData1); printf("%i\n",read_buffer[0]); break; } case 5: { //exit sensor.EX(read_buffer,1); printf("%i\n",read_buffer[0]); break; } case 6: { //single measurement sensor.SM(read_buffer,hostData1,hostData2); printf("%i\n",read_buffer[0]); break; } case 7: { //read measurement //incl i f(ddry is not set loop until it's set) 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 sensor.SB(read_buffer,hostData1,hostData2); printf("%i\n",read_buffer[0]); break; } case 9: { //wake up on change sensor.SWOC(read_buffer,hostData1,1); printf("%i\n",read_buffer[0]); break; } } } }