728x90

vmlab 시뮬레이터

- VMLAB 통합 개발환경은 무료이나 컴파일러 추가 설치 필요 

 -> GCC 기반 WinAVR 필요

- 원래 받을수 있는 사이트가 사라져선지 다운받을수가 없더라 대신 찾아서 블로그에다가 올려놨다.

https://throwexception.tistory.com/150

 

1. 새 프로젝트 생성

 

프로젝트 생성창

1.1 프로젝트 폴더 설정

1.2 타겟보드 설정

- ATmega128 사용하므로 선택

 

1.3 툴체인 경로 선택

1.4 소스 코드 파일 생성

- add this로 파일 추가하자

 

1.5 프로젝트 생성 완료

- hex 파일과 .prj 파일이 열림

- hex 파일 -> c 프로그래밍

- prj 파일 -> 회로도 정의

 

 

2. 코드 작성

 

3. 빌드

* 윈도우 10에서 빌드 중 오류 발생시

처음 WMLAB에서 코드 빌드하면 이런 에러가 나오는데 잠깐 구글링하다보니

 

winavr은 2010년에 나온게 가장 마지막 버전인데 지금은 2020년이고 윈도우 10에서 쓰면 이런 에러가 발생할수 있다고 한다.

https://www.avrfreaks.net/forum/winavr-error-new-computer

 

다행이 다른분이 비슷한 에러를 해결하는 방법을 올린데로 해보니 해결되더라

 

winavr/utils/bin 위치에

아래의 msys-1.0.dll을 덮어 씌워주면 해결된다

msys-1.0.dll
0.69MB

 

 

https://m.blog.naver.com/PostView.nhn?blogId=newbongman&logNo=221224568952&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

 

msys를 옮긴후 re-build를 해주면 성공

 

 

 

 

컨트롤 패널

 

 

코드 실행하기

- 신호등 클릭

IO 포트 보기

- view 의 IO 포트에 들어오면 각 핀별로 레지스터를 볼수 있다.

 

 

 

LED 회로 정의하기

- VCC -> 다이오드 -> 핀 형태로 정의

LED 회로도

- 프로젝트 파일에 아래 처럼 작성하면 위 LED 회로가 구현된다.

 

LED 블링크

1. 코드 작성

2. 회로도 설계 후

- 위 코드를 빌드 -> 실행 -> IO 포트 확인하면

 

0.2초 간격으로 PC0에 연결한 D1 LED가 깜빡깜박하는모습을 볼수있다

 

#include <avr/io.h>	// 생략/winavr/include/avr/io.h
#include <util/delay.h> // 생략/winavr/include/util/delay.h

int main(void)
{
	DDRC=0xFF;
    PORTC=0xFF;
    
    while(1)
    {
    	PORTC=0xFE;
        _delay_ms(200);;
        PORTC=0xFF;
        _delay_ms(200);
    }
    return 1;
}

 

1. 초기화 시점에 DDRC 레지스터와 PORTC 레지스터 전체 비트를 1로 설정 -> 전위차 x -> D1 ~ D8 LED가 꺼진다

 

2. 코드가 무한 루프를 돌면서 PORTC 레지스터 0번 비트를 0이 되면 -> 전위차 발생 -> 불켜짐 

 

 

LED 시프트하기

300x250

+ Recent posts