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를 옮긴후 re-build를 해주면 성공
컨트롤 패널
코드 실행하기
- 신호등 클릭
IO 포트 보기
- view 의 IO 포트에 들어오면 각 핀별로 레지스터를 볼수 있다.
LED 회로 정의하기
- VCC -> 다이오드 -> 핀 형태로 정의
- 프로젝트 파일에 아래 처럼 작성하면 위 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 시프트하기
'로봇 > 전기전자&메카' 카테고리의 다른 글
마이크로프로세서 메카트로닉스 제어 - 5 릴레이 제어 이론과 실습 (0) | 2020.05.12 |
---|---|
마이크로프로세서 메카트로닉스 제어 - 4 LED 제어 (0) | 2020.05.12 |
vmlab 다운로드 (0) | 2020.05.12 |
마이크로프로세서 메카트로닉스 제어 - 2 개발 환경 구축 (0) | 2020.05.12 |
마이크로프로세서 메카트로닉스 제어 - 1 AVR계열 ATmega128 개요 (0) | 2020.05.11 |