.,

Dependents:   esclavo_maestro

Committer:
alejo5214416
Date:
Tue Jul 31 22:54:23 2018 +0000
Revision:
6:09a5710f6b7c
Parent:
5:790c023a3fe2
Escritura, ordenamiento, lectura, ok antes de creacion de union

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 6:09a5710f6b7c 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 6:09a5710f6b7c 19 for(int i =0; i<4 ;i++) {
alejo5214416 0:7c54b267cbd3 20 i2c.write(ptr_string[i]);
alejo5214416 0:7c54b267cbd3 21 }
alejo5214416 0:7c54b267cbd3 22 i2c.stop();
alejo5214416 0:7c54b267cbd3 23 return 1;//success
alejo5214416 0:7c54b267cbd3 24 } else if(ack==0) {
alejo5214416 3:770d884b04c4 25 return 0;//NACK
alejo5214416 0:7c54b267cbd3 26 } else if(ack==2) {
alejo5214416 3:770d884b04c4 27 return 2;//TIMEOUT
alejo5214416 3:770d884b04c4 28 }
alejo5214416 3:770d884b04c4 29 return -1;
alejo5214416 0:7c54b267cbd3 30 }
alejo5214416 0:7c54b267cbd3 31
alejo5214416 0:7c54b267cbd3 32
alejo5214416 0:7c54b267cbd3 33 uint8_t data_read(uint8_t eepr_addr, uint16_t address_read)
alejo5214416 0:7c54b267cbd3 34 {
alejo5214416 6:09a5710f6b7c 35 wait_ms(5);
alejo5214416 1:837719ffa1dc 36 uint8_t read;
alejo5214416 0:7c54b267cbd3 37 i2c.start();
alejo5214416 0:7c54b267cbd3 38 int ack=i2c.write(eepr_addr<<1);
alejo5214416 4:1dd37cb61e2f 39 //pc.printf("ack= %d \n",ack);
alejo5214416 0:7c54b267cbd3 40 if(ack==1) {
alejo5214416 0:7c54b267cbd3 41 i2c.write(address_read<<8);
alejo5214416 0:7c54b267cbd3 42 i2c.write(address_read);
alejo5214416 0:7c54b267cbd3 43 i2c.start();
alejo5214416 0:7c54b267cbd3 44 i2c.write(eepr_addr<<1|0x01);
alejo5214416 1:837719ffa1dc 45 read=i2c.read(0);
alejo5214416 0:7c54b267cbd3 46 i2c.stop();
alejo5214416 1:837719ffa1dc 47 return read;
alejo5214416 0:7c54b267cbd3 48 }
alejo5214416 1:837719ffa1dc 49 return -1;
alejo5214416 0:7c54b267cbd3 50 }