#include "mbed.h" Serial pc(USBTX, USBRX); SPI spi(p5, p6, p7); // mosi, miso, sclk int adcsel=0; int main() { spi.format(8,1); spi.frequency(750000); pc.baud(115200); wait_ms(112); //55ms:NG 56ms:OK spi.write(0x06);//reset wait_us(32); //15us:NG 16us:OK spi.write(0x43);// write register 00h-03h spi.write(0x81);// AIN0-GND GAIN:1 PGA:off spi.write(0x80);// 330sps nomalmode single temp:off burn:off spi.write(0xc0);// ref:AVDD spi.write(0x02);// DOUT/DRDY spi.write(0x08);// START while(1){ int rch0,rch1,rch2; if (!(LPC_GPIO0->FIOPIN & (1UL << 8))) {//pin6 input spi.write(0x10); // Data Read Command rch0 = spi.write(0xff); // NOP:ffh rch1 = spi.write(0xff); rch2 = spi.write(0xff); if(rch0>0x7f){ rch0-=0x80; }else{ rch0+=0x80; } // pc.printf("%02X%02X%02X%d\n", rch0, rch1, rch2,adcsel); pc.printf("%02X%02X%02X%d\r\r\r\r\r\r\n", rch0, rch1, rch2,adcsel); spi.write(0x40); // write register 00h switch(adcsel){ case 0: spi.write(0x91); // AIN1-GND GAIN:1 PGA:off adcsel=1; break; case 1: spi.write(0xa1); // AIN2-GND GAIN:1 PGA:off adcsel=2; break; case 2: spi.write(0x81); // AIN0-GND GAIN:1 PGA:off adcsel=0; break; } spi.write(0x08); //start } } }