[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-chat] when is loop_until_bit_is_set/clear required after settin
From: |
Ormund Williams |
Subject: |
Re: [avr-chat] when is loop_until_bit_is_set/clear required after setting a bit? |
Date: |
Wed, 07 Sep 2016 20:21:02 -0400 |
On Wed, 2016-09-07 at 14:19 -0800, Britton Kerin wrote:
> I remember reading somewhere in avr libc docs to do e.g. this:
>
> PCIFR = _BV (some_bit)
> loop_until_bit_is_clear (PCIFR, some_bit);
>
> This may be a bad example becuase of the odd write-one-to-clear
> semantics. That isn't the point here, I don't remember which
> registers this advice applied to. And I can't find it now.
>
>
> The only thing I could find in the datasheet that related to this was
> in section 13.2.4 of ATMega328P datasheet, where it says that you
> have to wait a cycle after assigning an output pin value before
> reading it back in.
>
> Are there other cases where loop_until_* or a nop is required?
>
The only thing I can think of is writing to the EEPROM. You can also
use that function to block waiting for a flag to be set by a timer,
interrupt or other peripheral.
__
Ormund