.,

Dependents:   esclavo_maestro

Committer:
alejo5214416
Date:
Fri Jul 27 02:49:15 2018 +0000
Revision:
1:837719ffa1dc
Parent:
0:7c54b267cbd3
Child:
2:4fd30af0937d
; maestro esclavo

Who changed what in which revision?

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