개발모듈/펌웨어 모듈
- Delay 함수 어셈블리어 16Mhz
메가아재
2019. 12. 16. 09:47
반응형
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 |
반응형