int main()
{
file://AT91F_DBGU_Printk("\n\rBasicBoot Successfull: Enter main()\n\r");
file://wait_for_time(2);
__asm
{
MOV R0,#0x00020000
MOV R1,#0xfffff400
MOV R2,#0x0
MOV R3,#0xFFFFF434
STR R0,[R1],#0x10
STR R0,[R1],#0x20
loop:
STR R0,[R1] file://将PIOA17置高电平
MOV R4,#0x1
STR R0,[R3] file://将PIOA17置低电平
B loop
}
while (1);
}
上面是一段很简单的程序,周期改变PIOA17端口的电平状态,生成一个脉冲信号.采用ATMEL的ARM9芯片,参数设定芯片内部频率为180MHZ.但是实验时我们在PIOA17脚测得的高电平持续时间为240ns,将语句MOV R4,#0X01移去后测得高电平持续时间为120ns.难道180MHZ的速度一条指令要用时120ns?
请大家帮忙出出主意,问题可能出在哪里呢?
[em11]