Hexiware Ammeter Code using MCP3201 ADC

Committer:
agaikwad
Date:
Wed Mar 22 00:57:10 2017 +0000
Revision:
0:dbba16496f3e
Hexiware Ammeter code using MCP3201_ADC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agaikwad 0:dbba16496f3e 1 #include "mbed.h"
agaikwad 0:dbba16496f3e 2
agaikwad 0:dbba16496f3e 3 //#define ADC_SCALE_VALUE 24/4096
agaikwad 0:dbba16496f3e 4
agaikwad 0:dbba16496f3e 5 SPI spi(PTC6,PTC7,PTC5); // (MOSI MISO CLK)setup SPI interface on pins PTC5,PTC6,PTC7
agaikwad 0:dbba16496f3e 6
agaikwad 0:dbba16496f3e 7 DigitalOut cs1(PTC4);
agaikwad 0:dbba16496f3e 8
agaikwad 0:dbba16496f3e 9 Serial pc(USBTX, USBRX);
agaikwad 0:dbba16496f3e 10
agaikwad 0:dbba16496f3e 11
agaikwad 0:dbba16496f3e 12
agaikwad 0:dbba16496f3e 13 int main()
agaikwad 0:dbba16496f3e 14 {
agaikwad 0:dbba16496f3e 15 spi.format(8,0);
agaikwad 0:dbba16496f3e 16 spi.frequency(1000000);
agaikwad 0:dbba16496f3e 17 pc.printf("Analog read test from spi.\n");
agaikwad 0:dbba16496f3e 18 while (true)
agaikwad 0:dbba16496f3e 19 {
agaikwad 0:dbba16496f3e 20
agaikwad 0:dbba16496f3e 21 cs1=0;
agaikwad 0:dbba16496f3e 22 //spi.write();
agaikwad 0:dbba16496f3e 23 //pc.printf("%d\r\n",k);
agaikwad 0:dbba16496f3e 24 int high_byte = spi.write(0);
agaikwad 0:dbba16496f3e 25 int low_byte = spi.write(0);
agaikwad 0:dbba16496f3e 26 cs1=1;
agaikwad 0:dbba16496f3e 27 float x = ((high_byte & 0x1f) << 7) | ((low_byte >> 1));
agaikwad 0:dbba16496f3e 28
agaikwad 0:dbba16496f3e 29 float r= (float)((x*1)/4096); // show value in volts.
agaikwad 0:dbba16496f3e 30
agaikwad 0:dbba16496f3e 31 pc.printf("AD channel value: %f Amps\r\n", r-0.5);
agaikwad 0:dbba16496f3e 32 pc.printf("Analog Value: %.2f\n\r",x);
agaikwad 0:dbba16496f3e 33 wait_ms(500);
agaikwad 0:dbba16496f3e 34 }
agaikwad 0:dbba16496f3e 35
agaikwad 0:dbba16496f3e 36
agaikwad 0:dbba16496f3e 37 }
agaikwad 0:dbba16496f3e 38
agaikwad 0:dbba16496f3e 39