반응형
Microchip PIC16F15354 마이컴을 보니 HEF기능이 있다.
데이터 시트에 표시되어 있다.
총 128 워드를 사용할 수 있다.
EEPROM보다는 작지만 플래시 메모리에 비해 많은 지우고 쓰기 횟수가 제공된다.
읽고 쓰는 법은 Microchip사의 AN1673에서 확인 가능하다. ( 아래 링크 확인 )
http://ww1.microchip.com/downloads/en/AppNotes/00001673A.pdf
XC 컴파일러에서 사용하는 함수는 다음과 같다.
물론 플래시 영역이니 지우고 나서 써야한다.
unsigned FLASH_read (unsigned address);
unsigned FLASH_readConfig (unsigned address);
void FLASH_readBlock (unsigned* buffer, unsigned address, char count);
void FLASH_write (unsigned address, unsigned data, byte latch);
void FLASH_erase (unsigned address);
char HEFLASH_writeBlock (char radd, char* buffer, char count);
char HEFLASH_readBlock (char* buffer, char radd, char count);
char HEFLASH_readByte (char radd, char offset);
사용하는 방법은 예제이다.
typedef struct{
unsigned ID ; // 2 bytes
char Name[20]; // 20 bytes
long Amount; // 4 bytes
} Record; // 26 bytes total
Record data = {0x1234, "HE Flash", 42};
// 쓰기
r = HEFLASH_writeBlock(1,(void*)&data, sizeof(data));
// 읽기
r = HEFLASH_readBlock((void*)&data, 1, sizeof(data));
정상적인 사용을 위해서는
플래시 뒤쪽 128워드를 컴파일러가 사용하지 못하도록 해야한다.
링커의 설정에 아래와 같이 정의되어 있어야 한다.
--ROM=default,-1f80-1fff
또 한가지
플래시 쓰기 금지가 설정되어 있으면 안된다.
CONFIG2의 WRT<1:0>의 값이 '11'로 되어 있거나 '10','10'으로 되어 있어야 한다.
시리얼로 명령을 쓰고, 재부팅, 시리얼로 읽기로 시험해 보면 되겠다.
이상.
반응형
'Microchip PIC' 카테고리의 다른 글
MPLAB X IDE 단축키 정리 (0) | 2021.12.27 |
---|---|
[C언어] unused parameter 'xxx' 해결방법 (0) | 2021.12.07 |
[개발제품소개] BLE, 로드셀, 모바일폰 통신, 저소모전력 설계 (0) | 2021.02.08 |
[열전대 온도센서] MCP9600 사용하기 (0) | 2020.12.15 |
[로드셀] HX711 사용하기 (0) | 2020.12.11 |
댓글