David Summers / Mbed 2 deprecated MS5611

Dependencies:   mbed

main.cpp

Committer:
summers
Date:
2018-03-14
Revision:
1:3295382ddc81
Parent:
0:9146d1e52be0
Child:
2:b6a0d4ba24a1

File content as of revision 1:3295382ddc81:

#include "mbed.h"
#include "main.h"

Serial pc(SERIAL_TX, SERIAL_RX, 115200); // tx, rx
//DigitalOut led(LED_RED);
//SPI spi(PTC6,PTC7,PTD1,PTC0);
//SPI spi(PTC6,PTC7,PTD1); // my prefered, but mixed
SPI spi(PTC6,PTC7,PTC5); // PTC5 - the LED
//SPI spi(PTD2,PTD3,PTD1);
DigitalOut cs(PTC0);

int main()
{
    int PROM[8];
    cs.write(1); // disable all SPI
    pc.printf("Hello World! 0\r\n");
    MS5611_init(PROM);
    for (int i=0; i<8; i++) {
        pc.printf("Prom(%i): %x\r\n",i,PROM[i]);
    }
}

void MS5611_init(int *PROM)
{
    spi.format(8,0); // 8 bit mode 0 - this is default anyway but good to code.
    spi.frequency(1000000); // 1MHz is this the minimum?
    cs.write(0); // Enable the MS5611 intercae
    pc.printf("Reset result - expect fe : %x\r\n",spi.write(0x1E)); // reset the device
    wait_ms(3); // give time for ROM to reload 2.8ms by the spec
    for (int i=0; i<8; i++) {
        pc.printf("s: %x r: %x ",0xA0|(i<<1),spi.write(0xA0|(i<<1)));
        register uint8_t promh=spi.write(0x00);
        register uint8_t proml=spi.write(0x00);
        PROM[i]=((promh<<8)|(proml));
        pc.printf("%i: Code=%x : Reply=%x\r\n",i,0xA0|(i<<1),PROM[i]);
        wait(1);
    }
    cs.write(1); // and disable the interace
}



void MS5611(long *D1, long *D2)
{
    //  cs.write(0);
    spi.format(8,0);
    spi.frequency(1000000);
}