보통은 I2C EEPROM을 많이 이용하는데 어쩌다보니 SPI로 설계해 버렸다.

그로 인해서 시간을 조금 허비? 했다.


SPI Write를 하는데 1 PAGE만 쓰기가 가능하고 이후 데이터를 오리무중이다..

정말 쓰기가 잘못 된건지 반대로 읽기가 안되는건지 종일 고민했다.


AT25040B 의 경우 아이러니 하게도 WREN 명령을 1 PAGE Write 할때마다 줘야한다. 이게 포인트...



void SPI_Flash_WriteArray(uint16_t address, uint8_t *data, uint8_t len) { uint16_t addr = address; uint8_t i = 0; while( i < len ) { SPI_Flash_WriteEnable();    // <== 이놈이 문제였음. EEPROM_CS_LOW(); SPI_SendByte(WRITE); // 명령선택 //SPI_SendByte((addr & 0xFF00) >> 8); // 상위어드레스를 쓸 경우 SPI_SendByte(addr & 0xFF); // 하위어드레스 for(; i < len;) { SPI_SendByte(data[i++]); // 쓸 데이터 1 Byte씩 보내기 if(++addr % PAGE_SIZE == 0) { break; } } EEPROM_CS_HIGH(); delay_ms(10);    // 칩마다 틀리지만 쓰기를 실행하는데 5ms 필요하다. } }


Posted by +깡통+
2015. 10. 15. 10:48

7년 만에 다시 방문한 대관령 양떼목장.

그곳에 양몰이 개라고 소개했던 그 개가 그대로 있더라.

허허~ 이제 늙었을텐데 라는 생각에 주변에 나뭇가지를 가지고 와 던져주니~

이 녀석 아직도 잘 받아주더라 ㅎㅎㅎ


그땐 통쥬가 엄마 뱃속에 있을 때였고~

지금은 통쥬2까지 개를 가지고 놀다니~

이젠 뭐 놀랄일도 아니지만 세월이 참 빠르다는 생각을 또 한번 했다. 


Posted by +깡통+

도구->옵션->디렉토리 에서 각각 컴파일에서 참조할 폴더를 지정하는 방법.


또는 StdAfx.h 파일에다가 참조할 헤더파일과 라이브러리를 지정하는 방법.

아시겠지만 DLL 참조시 lib 파일이 함께 필요합니다.

DLL 파일은 EXE 파일이 실행될때 필요 한 것일뿐이고 Lib 파일은 컴파일시 링크때 필요한 파일 입니다.



#pragma comment(lib, "./Others/Libs/xxx.lib")

#pragma comment(lib, "./Others/Libs/xxx2.lib")



위 코드는 VC6.0, VC9.0 (2008) 에서 적용했습니다.


Posted by +깡통+