.,

Dependents:   esclavo_maestro

Committer:
alejo5214416
Date:
Mon Jul 30 03:53:00 2018 +0000
Revision:
3:770d884b04c4
Parent:
2:4fd30af0937d
Child:
4:1dd37cb61e2f
conteo ok, escritura ok, reset ok, lectura ok. 29-7-18

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alejo5214416 0:7c54b267cbd3 1 // eeprom.cpp file
alejo5214416 0:7c54b267cbd3 2 #include "eeprom.h"
alejo5214416 0:7c54b267cbd3 3
alejo5214416 0:7c54b267cbd3 4
alejo5214416 0:7c54b267cbd3 5
alejo5214416 0:7c54b267cbd3 6 void freq(uint32_t frec)
alejo5214416 0:7c54b267cbd3 7 {
alejo5214416 0:7c54b267cbd3 8 i2c.frequency(frec);
alejo5214416 0:7c54b267cbd3 9 }
alejo5214416 0:7c54b267cbd3 10
alejo5214416 0:7c54b267cbd3 11 int write_data(uint8_t eepr_addr, uint16_t address, uint8_t *ptr_string)
alejo5214416 0:7c54b267cbd3 12 {
alejo5214416 3:770d884b04c4 13 wait_ms(4);
alejo5214416 0:7c54b267cbd3 14 i2c.start();
alejo5214416 0:7c54b267cbd3 15 int ack=i2c.write(eepr_addr<<1);
alejo5214416 0:7c54b267cbd3 16 if(ack==1) {
alejo5214416 0:7c54b267cbd3 17 i2c.write(address<<8);
alejo5214416 0:7c54b267cbd3 18 i2c.write(address);
alejo5214416 0:7c54b267cbd3 19 int i=0;
alejo5214416 0:7c54b267cbd3 20 while(ptr_string[i]!=NULL) {
alejo5214416 0:7c54b267cbd3 21 i2c.write(ptr_string[i]);
alejo5214416 0:7c54b267cbd3 22 i++;
alejo5214416 0:7c54b267cbd3 23 }
alejo5214416 0:7c54b267cbd3 24 i2c.stop();
alejo5214416 0:7c54b267cbd3 25 return 1;//success
alejo5214416 0:7c54b267cbd3 26 } else if(ack==0) {
alejo5214416 3:770d884b04c4 27 return 0;//NACK
alejo5214416 0:7c54b267cbd3 28 } else if(ack==2) {
alejo5214416 3:770d884b04c4 29 return 2;//TIMEOUT
alejo5214416 3:770d884b04c4 30 }
alejo5214416 3:770d884b04c4 31 return -1;
alejo5214416 0:7c54b267cbd3 32 }
alejo5214416 0:7c54b267cbd3 33
alejo5214416 0:7c54b267cbd3 34
alejo5214416 0:7c54b267cbd3 35 uint8_t data_read(uint8_t eepr_addr, uint16_t address_read)
alejo5214416 0:7c54b267cbd3 36 {
alejo5214416 3:770d884b04c4 37 wait_ms(4);
alejo5214416 1:837719ffa1dc 38 uint8_t read;
alejo5214416 0:7c54b267cbd3 39 i2c.start();
alejo5214416 0:7c54b267cbd3 40 int ack=i2c.write(eepr_addr<<1);
alejo5214416 3:770d884b04c4 41 pc.printf("ack= %d \n",ack);
alejo5214416 0:7c54b267cbd3 42 if(ack==1) {
alejo5214416 0:7c54b267cbd3 43 i2c.write(address_read<<8);
alejo5214416 0:7c54b267cbd3 44 i2c.write(address_read);
alejo5214416 0:7c54b267cbd3 45 i2c.start();
alejo5214416 0:7c54b267cbd3 46 i2c.write(eepr_addr<<1|0x01);
alejo5214416 1:837719ffa1dc 47 read=i2c.read(0);
alejo5214416 0:7c54b267cbd3 48 i2c.stop();
alejo5214416 1:837719ffa1dc 49 return read;
alejo5214416 0:7c54b267cbd3 50 }
alejo5214416 1:837719ffa1dc 51 return -1;
alejo5214416 0:7c54b267cbd3 52 }