.,
eeprom.cpp@1:837719ffa1dc, 2018-07-27 (annotated)
- 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?
User | Revision | Line number | New 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 |