[an error occurred while processing this directive]
|
char mytimer;
char foo;
//
#pragma vector=0x18
__irq __arm void IRQ_ISR_Handler (void)
{
mytimer++;
}
//
void delay (char ticks)
{
foo=mytimer;
foo+=ticks;
while (foo < mytimer);
}
//
int main()
{
delay (1);
/////
}139 void delay (char ticks)
140 {
141 foo=mytimer;
142 foo+=ticks;
\ ??delay:
\ 00000000 ........ LDR R1,??DataTable1 ;; mytimer
\ 00000004 0020D1E5 LDRB R2,[R1, #+0]
\ 00000008 020080E0 ADD R0,R0,R2
\ 0000000C 0100C1E5 STRB R0,[R1, #+1]
\ 00000010 000CA0E1 MOV R0,R0, LSL #+24
\ 00000014 200C52E1 CMP R2,R0, LSR #+24
\ 00000018 1EFF2F91 BXLS LR ;; return
143 while (foo < mytimer);
\ ??delay_1:
\ 0000001C FEFFFFEA B ??delay_1
БУ-ГА-ГА
144
145 }