7 years ago.

I want to modify this program to save and read and int value and display it?

#include "mbed.h"
#include "wire.h"
 
#define BLE_Nano
//#define nRF_51822
 
 
#ifdef nRF_51822
#define SCL         28
#define SDA         29
#endif
 
#ifdef BLE_Nano
#define SCL         7  
#define SDA         6
#endif
 
#define DEV_ADDR    0xA0
 
Serial pc(USBTX, USBRX);
TwoWire Wire = TwoWire(NRF_TWI0);
 
void AT24C512_WriteBytes(uint16_t addr, uint8_t *pbuf, uint16_t length)
{
    Wire.beginTransmission(DEV_ADDR);
    Wire.write( (uint8_t)addr>>8 );
    Wire.write( (uint8_t)addr );
    Wire.write(pbuf, length);
    Wire.endTransmission();
}
 
void AT24C512_ReadBytes(uint16_t addr, uint8_t *pbuf, uint16_t length)
{
    Wire.beginTransmission(DEV_ADDR);
    Wire.write( (uint8_t)addr>>8 );
    Wire.write( (uint8_t)addr );    
    Wire.endTransmission();
       
    Wire.requestFrom(DEV_ADDR+1, length);
    while( Wire.available() > 0 )
    {
        *pbuf = Wire.read();
        pbuf++;
    }
}
 
 
static uint8_t wt_data[10] = {'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'};
static uint8_t rd_data[10];
 
static uint16_t index;
 
int main(void)
{
    pc.baud(9600);
    wait(5);
    //Wire.begin();
    Wire.begin(SCL, SDA, TWI_FREQUENCY_100K);
    pc.printf("IIC Demo Start \r\n");
    
    AT24C512_WriteBytes(0, wt_data, 10);
    wait(0.1);
    
    while(1)
    {
        AT24C512_ReadBytes(0, rd_data, 10);     
        pc.printf("Read data from AT24C512 \r\n");
        for(index=0; index<10; index++)
        {
            pc.putc(rd_data[index]);
            rd_data[index] = 0x00;
        }
        pc.printf("\r\n");
        wait(1);
    }
}

if I print rd_data I get a 9 digit number 536211280

posted by jayendra mishra 07 Apr 2017
Be the first to answer this question.