자동제어실험 (결과레포트) - External Interrupt 이용한 Step motor 제어
- 최초 등록일
- 2012.11.25
- 최종 저작일
- 2010.06
- 6페이지/ 한컴오피스
- 가격 1,500원
소개글
자동제어실험 (결과레포트)
- External Interrupt 이용한 Step motor 제어
목차
1. 학번
2. 실험제목
3. 실험목적
4. 실험과정
5. 실험결과
(1) 모터가 무한히 돌다가 외부인터럽트가 걸리면 회전방향을 바꾸는 프로그램
(2) 외부인터럽트가 걸릴때마다 속도가 줄어들다가 5번 인터럽트가 걸리면 모터가 멈추는 프로그램
6. 결과분석 및 토의
(1) 모터가 무한히 돌다가 외부인터럽트가 걸리면 회전방향을 바꾸는 프로그램
(2) 외부인터럽트가 걸릴때마다 속도가 줄어들다가 5번 인터럽트가 걸리면 모터가 멈추는 프로그램
본문내용
1. 학번 : 0000000000 이름 : ㅇㅇㅇ 실험조 : B-2
2. 실험제목 : External Interrupt 이용한 Step motor 제어
3. 실험목적
1. 외부 인터럽트의 개념을 이해해보자.
2. 외부 인터럽트를 이용해서 스텝모터를 제어해보자.
4. 실험과정
1. 외부인터럽트 개념을 이해한다.
2. 외부인터럽트 프로그램을 작성한다.
3. 스텝모터를 회전시키는 프로그램을 작성한다.
4. 외부인터럽트와 스텝모터를 회전시키는 프로그램을 조합한다.
5. 모터가 무한히 돌다가 외부인터럽트가 걸리면 회전방향을 바꾸는 프로그램을 작성한다.
6. 외부인터럽트가 걸릴때마다 속도가 줄어들다가 5번 인터럽트가 걸리면 모터가 멈추는 프로그램을 작성한다.
<중 략>
void turn_interrupt(void) // 모터 회전 함수
{
u08 i;
while(1){ // 모터가 계속 돌도록 무한루프를 설정해준다.
if(stop==0){ // 시계방향으로만 모터를 회전시킨다.
ready++; // 1step마다 ready의 값을 1씩올려서 45°이하 일 때 즉 ready<25일때는 방향을 바꾸지 않 도록 한다.
i++;
outp (phase[i%4], PORTB); //모터로 상을 출력한다.
delay(d_delay); // 딜레이함수에 인터럽트에서 증가된 d_delay값 을 입력하고 호출한다.
if(d_delay==12000){ //5번 돌고 탈출을 정지해야함으로 만약 증 가한 d_delay값이 7000(초기값)+5000(증가값)
=12000일때 프로그램을 종료한다.
break;}
}
참고 자료
없음