사용자 도구

사이트 도구

English

cubloc:udelay:index

Udelay

Udelay 지연시간

지연시간 : 지연시간

설명

아주 작은 단위의 시간을 지연시키고자 할 때 사용하는 명령으로, 기본 70~80마이크로 초의 시간에 1 당 8~9마이크로 초를 더 지연시킵니다. 예를 들어 Udelay 10이라고 했을 경우, 80 + 80정도인160마이크로 초를 지연시킵니다. (Udelay 0 일 경우는 80마이크로 초).

이 명령어는 실행 시 LADDER가 동시에 실행된다면, LADDER의 실행 시간에 따라 지연시간이 영향을 받게 됩니다. 또한 이 명령 수행 시 BASIC인터럽트의 수행이 가능하므로, BASIC 인터럽트 발생시 지연시간 역시 영향을 받게 됩니다.

Delay 시간에 영향이 없도록 하고 싶다면, 레더실행과 전체 인터럽트를 중지시켜야합니다.

   Set Ladder Off    '레더중지
   Set Onglobal Off  '인터럽트 전체 중지 

사용예

     Do
        High 8        ' 8번 포트를 On
        Udelay 10     ' 160 마이크로 초 대기
        Low 8         ' 8번 포트를 Off
        Wait 500
     Loop  
 

위 예는 매번 정확한 160밀리초 High펄스를 출력할 수 없습니다. 다음과 같이 바꾸면 매번 정확한 160밀리초의 High신호가 출력됩니다.

    Do
         Set Ladder Off  '매번 정확한 160밀리초 High신호를 내보내려면 레더와 인터럽트를 잠시 중단시켜야합니다.
         Set Onglobal Off
 
         High 8        ' 8번 포트를 On
         Udelay 10     ' 160 마이크로 초 대기
         Low 8         ' 8번 포트를 Off
 
         Set Ladder On
         Set Onglobal On  '다시 시작 
 
        Wait 500
     Loop

명령어 목록으로 가기

cubloc/udelay/index.txt · 마지막으로 수정됨: 2020/08/19 00:42 저자 Comfile Technology