본문 바로가기

교육/ATmega2560

ATmega2560 증/감 인터럽트와 EEPROM사용하기

우리가 안썼던 인터럽트를 사용할 것이다.
INT 5번과 INT 4번을 사용하여 인터럽트를 줄거기 때문에 PE5(7번),PE4(6번)에 푸쉬버튼을 연결하면됨



INT5/4번을 INit해주고 이전값을 보존하기 위해서  EICRB = EICRB | 이렇게 or을 걸어준다. 

  • 처음에 EICRB 를 or걸어주지 않고 사용했는데 무한루프에 빠져서 인터럽트를 빠져나오지 못했당 ㅠㅠ





백터테이블을 보고 백터를 걸어주고 백터는 smart.c에서 선언하여 사용한다.



주석을 확인하구 이렇게 소스를 완성시켜 AVR을 컴파일시켜주면 
푸쉬버튼을 눌렀을 때 char LCD에 001~060까지 증가 or 감소가 되어 찍힌다!



최솟값이 1이기 때문에 001에서 감소버튼을 한번 더 눌러도 001이 나왔다.






EEPROM

AVR의 왼쪽 굵은선(BUS)를 통해 위로가면 EEPROM이 보임. ( BUS로 연결 됨)
-> FLASH와 SRAM은 AVR과 붙어있다. (BUS로 연결된게 아님)


EEPROM메모리는 장치가 따로 떨어져 있는 메모리다. 
CPU(AVR)에 직접 붙은게 아니고 장치처럼 움직인다. 그렇기 때문에 포인터로 가르킬 수 없다.
BUS를 통하여 연결하여야 한다. FLASH와 SRAM과는 다른 방식의 메모리..

  • 주소로 접근할 수 없고 장치이기 때문에 레지스터로 접근하여야 한다.
  • 포인터로 주소를 가리킬 수 없다.
  • 반대로 flash와 sram은 AVR에 있는 메모리이기 때문에 포인터로 주소를 가리킬 수 있다.



  • ↓소스코드