On Tue, 15 May 2007 14:51:26 -0400, Joerg Wunsch <[EMAIL PROTECTED]>
wrote:
Thus you need a NOP between an OUT and an IN if the IN's result
depends on the previous OUT operation, as the sampling for the PINx
(of the *next* instruction!) happens before the POUTx change.
I always thought that was required because of the internal synchronization
delay,
to get the asynchronous PINx synchronized to CLKio. I did not realize
it was more a side effect of the Fetch/Execute state machine.
then does apply to the way the I bit is internally updated: the next
instruction is simply already decoded by that time, and will thus be
executed without any chance of an interrupt to fire.
It is not really documented anywhere
Unfortunate.
but Marek once mentioned they
somehow got confirmation from Atmel about that sequence being safe in
the early days of AVR-GCC.
Good to know, but would still like to see the behaviour officially
documented
by Atmel.
_______________________________________________
AVR-libc-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev