본문 바로가기
코스웨어/15년 스마트컨트롤러

[중간프로젝트발표] 윤재희 - Door Lock

by 알 수 없는 사용자 2015. 8. 27.
728x90
반응형

<PPT>


Door Lock.ppt


<발표 사진>




<동영상>





<Q & A>


Q: 전체프로젝트에 걸린 시간?

A: 기본적인 Door Lock 기능에는 3일, 부가 기능 및 디버그까지 합쳐서 2주일


Q: EEPROM 사용방법?

A: 기본적인 레지스터 세팅과 함께 물리적인 주소와 데이터 값을 같이 삽입하여야 한다.  

** EEPROM 레지스터에 관한 설명은 첨부된 데이터 시트 34쪽(PDF 페이지수)부터 나와있습니다.


Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf


void Write_EEPR(unsigned int Address, unsigned char cData)
{
  while(0 != (EECR & (1<<EEPE)));

  EEAR = Address | EECR;
  EEDR = cData | EECR;
  EECR = EECR | (1<<EEMPE);
  EECR = EECR | (1<<EEPE);  
}

char Read_EEPR(unsigned int Address)
{
  while(0 != (EECR & (1<<EEPE)));

  EEAR = Address;
    
  EECR = EECR | (1<<EERE); //| (0 << EEPM0) | (0 << EEPM1); //EERE == 0
  
  return EEDR;
}
void EEPR_Init()
{
  int iCnt;
  int iAdd = EEPR_HEAD;
  for(iCnt = 0; iCnt < 4; ++iCnt, ++iAdd)
  {
    Write_EEPR(iAdd, 0);
  }  
}

void EEPR_Set()
{
  int iCnt;
  int iAdd = EEPR_HEAD;
  for(iCnt = 0; iCnt < 4; ++iCnt, ++iAdd)
  {
    Write_EEPR(iAdd, PSWD[iCnt]);
  }
}
void EEPR_Read()
{  
  int iCnt = 0;
  int iAdd = EEPR_HEAD;
  
  for(iCnt = 0; iCnt < 4; ++iCnt, ++iAdd)
  {
    PSWD[iCnt] = Read_EEPR(iAdd);
  }    
}




728x90