기능을 설정하고 정해진 일을 수행하도록 프로그램이 된 후 기계를 동작시킴
ROM(READ Only Memory)
: 읽기만 가능 (" 10,000개 단위로 읽어주세요 하고 공장에 보냄 ")
PROM(Programable Read Only Memory)
: 한 번만 프로그램 할 수 있음(" 한번 프로그램 할 수있음, 에러나면 버려야해")
EPROM(Erasable Programable Read Onlty Memory)
: 프로그램 한 것을 지울 수도 있게 됌
(" 지우는 데 2시간, 오늘은 EPROM 다써서 더 이상 일 못해")
EEPROM(Electrically Erasable Programable Read Only Memory
: 현재 사용하는 것
1996년 마트멜 사에서 개발
AVR은 프로그램을 삭제 및 저장에 용이
단순 제어 분야에서 사용
저렴함
C언어로 동장 가능
아두이노는 1핀 단위로 동작 했었다.
AVR128은 1핀 단위로 동작 가능 하지만 주로 포트(8핀) 단위로 동작한다.
#include <avr/io.h>
int main(void)
{
DDRA = 0b11111111;
//0b(2진수) 11111111 모두 출력으로 설정하겠다.
PORTA = 0b11111110
//DDRA이 모두 출력으로 사용한다 하였으니 출력으로 사용해야함
//1 -> 5V, 0 -> 0V
return 0;
}
DDRA : Data Direction Register
약자로 1이면 출력 0이면 입력,
데이터의 방향성을 지시하는 레지스터, PORTA를 사용하기 전에 설정해주어야 한다.
DDRA와 아두이노를 직관적으로 비교해보자.
PORTA
아두이노와 비교해보면 다음과 똑같은 의미이다.
PORTA에서 시뮬레이터에서 주의할 점은 '0'일때 불이 켜진다는 것
불은 위에서 부터 아래로, 작은 자리수부터 큰 자리수로 대응 된다는 것을 주의하자.
10진수 2진수 16진수 표현 유의
PORTA = 254 == 0xFE(F(1111)E(1110) == 0b11111110
Atmel Studio 7 / WIn SimulAvr