A ferroelectric random access memory or F-RAM is nonvolatile and performs reads and writes similar to a RAM.
FM24V10.h@0:e4b7a2f63736, 2015-02-03 (annotated)
- Committer:
- yangcq88517
- Date:
- Tue Feb 03 19:56:43 2015 +0000
- Revision:
- 0:e4b7a2f63736
- Child:
- 1:b9f6d029c760
FM24V10
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yangcq88517 | 0:e4b7a2f63736 | 1 | #ifndef UK_AC_HERTS_SMARTLAB_FM24V10 |
yangcq88517 | 0:e4b7a2f63736 | 2 | #define UK_AC_HERTS_SMARTLAB_FM24V10 |
yangcq88517 | 0:e4b7a2f63736 | 3 | |
yangcq88517 | 0:e4b7a2f63736 | 4 | #include "mbed.h" |
yangcq88517 | 0:e4b7a2f63736 | 5 | |
yangcq88517 | 0:e4b7a2f63736 | 6 | class FM24V10 |
yangcq88517 | 0:e4b7a2f63736 | 7 | { |
yangcq88517 | 0:e4b7a2f63736 | 8 | public : |
yangcq88517 | 0:e4b7a2f63736 | 9 | enum SPEED_MODE { |
yangcq88517 | 0:e4b7a2f63736 | 10 | STANDARD,FULL,FAST,HIGH |
yangcq88517 | 0:e4b7a2f63736 | 11 | }; |
yangcq88517 | 0:e4b7a2f63736 | 12 | |
yangcq88517 | 0:e4b7a2f63736 | 13 | FM24V10(PinName sda, PinName scl, bool A1, bool A2); |
yangcq88517 | 0:e4b7a2f63736 | 14 | |
yangcq88517 | 0:e4b7a2f63736 | 15 | FM24V10(PinName sda, PinName scl, bool A1, bool A2, SPEED_MODE speed); |
yangcq88517 | 0:e4b7a2f63736 | 16 | |
yangcq88517 | 0:e4b7a2f63736 | 17 | void WriteShort(int position, int value, bool Hs_mode); |
yangcq88517 | 0:e4b7a2f63736 | 18 | |
yangcq88517 | 0:e4b7a2f63736 | 19 | void WriteShort(int position, int * value, int size, bool Hs_mode); |
yangcq88517 | 0:e4b7a2f63736 | 20 | |
yangcq88517 | 0:e4b7a2f63736 | 21 | void ReadShort(int position, int * value, int size, bool Hs_mode); |
yangcq88517 | 0:e4b7a2f63736 | 22 | |
yangcq88517 | 0:e4b7a2f63736 | 23 | int ReadShort(int position, bool Hs_mode); |
yangcq88517 | 0:e4b7a2f63736 | 24 | |
yangcq88517 | 0:e4b7a2f63736 | 25 | private : |
yangcq88517 | 0:e4b7a2f63736 | 26 | static const int HS_COMMAND = 0x09; |
yangcq88517 | 0:e4b7a2f63736 | 27 | |
yangcq88517 | 0:e4b7a2f63736 | 28 | static const int FREQUENCY_STANDARD = 100000; |
yangcq88517 | 0:e4b7a2f63736 | 29 | static const int FREQUENCY_FULL = 400000; |
yangcq88517 | 0:e4b7a2f63736 | 30 | static const int FREQUENCY_FAST = 1000000; |
yangcq88517 | 0:e4b7a2f63736 | 31 | static const int FREQUENCY_HIGH = 3200000; |
yangcq88517 | 0:e4b7a2f63736 | 32 | |
yangcq88517 | 0:e4b7a2f63736 | 33 | I2C _i2c_bus; |
yangcq88517 | 0:e4b7a2f63736 | 34 | int _speed; |
yangcq88517 | 0:e4b7a2f63736 | 35 | int _addr; |
yangcq88517 | 0:e4b7a2f63736 | 36 | |
yangcq88517 | 0:e4b7a2f63736 | 37 | int result; |
yangcq88517 | 0:e4b7a2f63736 | 38 | |
yangcq88517 | 0:e4b7a2f63736 | 39 | void Init(bool A1, bool A2); |
yangcq88517 | 0:e4b7a2f63736 | 40 | |
yangcq88517 | 0:e4b7a2f63736 | 41 | void GetSlaveAddress(int position); |
yangcq88517 | 0:e4b7a2f63736 | 42 | |
yangcq88517 | 0:e4b7a2f63736 | 43 | void StartHS(); |
yangcq88517 | 0:e4b7a2f63736 | 44 | |
yangcq88517 | 0:e4b7a2f63736 | 45 | void StopHS(); |
yangcq88517 | 0:e4b7a2f63736 | 46 | }; |
yangcq88517 | 0:e4b7a2f63736 | 47 | |
yangcq88517 | 0:e4b7a2f63736 | 48 | #endif |