반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 딜레이
void Delay_us_Asm(unsigned int time_us)  /* time delay for us */
    register unsigned int i;
    
    for(i = 0; i < time_us; i++)   // 4 cycle +
    { 
        asm volatile(" PUSH  R0 ");  // 2 cycle +
        asm volatile(" POP   R0 ");  // 2 cycle +
        asm volatile(" PUSH  R0 ");  // 2 cycle +
        asm volatile(" POP   R0 ");  // 2 cycle +
        asm volatile(" PUSH  R0 ");  // 2 cycle +
        asm volatile(" POP   R0 ");  // 2 cycle = 16 cycle = 1 us for 16MHz
    }
}
 
void Delay_ms_Asm(unsigned int time_ms)  /* time delay for ms */
    register unsigned int i;
 
    for(i = 0; i < time_ms; i++)    
    { 
        Delay_us_Asm(250);
        Delay_us_Asm(250);
        Delay_us_Asm(250);
        Delay_us_Asm(250);
    }
}
cs


반응형

'개발모듈 > 펌웨어 모듈' 카테고리의 다른 글

- AVR Eeprom 읽고 쓰기  (0) 2020.02.24
- Smpte Out (16Mhz 200us 타이머사용)  (0) 2019.12.16
- Key Control 5  (0) 2019.12.11
- Data_Send 함수  (0) 2019.12.10
- Key Control 4  (0) 2019.12.10
Posted by 메가아재
,