안녕하세요.
8051을 배우고 있는 초보입니다.
소스 코드 작성 중 delay 함수 관련해서 문의드립니다.
avr 같은 경우는 delay_us, delay_ms를 IAR 컴파일러를 통해 만들어서 통제가 가능한데
keil 컴파일러는 처음 접하다보니 어떻게 소스를 만들어야 하는지 모르겠네요.
소스 만드는 방법과 그런 결과가 어떻게 나왔는지 설명 부탁드립니다.
AVR을 예를들어
void delay_us(time_us){
u8 i; for( i= 0; i < time_us; i++){ 4 cycle
asm("PUSH R0"); 2 cycle
asm({PUSH R0"); 2 cycle
.
.
.
}
}
이런식의 설명 부탁드립니다.
8051을 배우고 있는 초보입니다.
소스 코드 작성 중 delay 함수 관련해서 문의드립니다.
avr 같은 경우는 delay_us, delay_ms를 IAR 컴파일러를 통해 만들어서 통제가 가능한데
keil 컴파일러는 처음 접하다보니 어떻게 소스를 만들어야 하는지 모르겠네요.
소스 만드는 방법과 그런 결과가 어떻게 나왔는지 설명 부탁드립니다.
AVR을 예를들어
void delay_us(time_us){
u8 i; for( i= 0; i < time_us; i++){ 4 cycle
asm("PUSH R0"); 2 cycle
asm({PUSH R0"); 2 cycle
.
.
.
}
}
이런식의 설명 부탁드립니다.
/* 파일 이름 LED.C */
#include <WIN51.H> /* 포트 선택 어드레스 */
#define SELECT (*( unsigned char *)(0x2fC48)) /* LED 점등을 위한 시간 지연 함수.
외부에서 지연 상수 del을 받는다. */
void delay( int del )
{
while(del--); /* del이 제로가 될때까지 루프 */
} void main( void )
{
unsigned char led = 0xfe; /* led on 초기값 */ SELECT = 0x9e; /* led가 연결된 I/O 를 선택한다 그림 3-2 참조 */ do {
P1 = led; /* LED 점등 */
delay(30000); /* LED ON 지연 시간 */
led <<= 1; /* LED ON 상태를 왼쪽으로 1비트 이동 */
led |= 0xf1; /* 상위 4비트는 1111로 마스크.그림 3-2 참조*/
/* 그림 3-2에서 P13 까지 ON 되었는지 검사해서, P13까지 ON 되었으면
LED ON 초기 값을 저장한다.*/
if( led == 0xff ) led = 0xfe;
} while(1); /* 무한 루프 */
}
이렇게 되어있는데 void delay 가 딜레이문 아닌가요??