[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] efficiency of assigning bits
From: |
Ben Mann |
Subject: |
RE: [avr-gcc-list] efficiency of assigning bits |
Date: |
Mon, 14 Mar 2005 19:20:28 +0800 |
Hi Jamie
There has been neverending discussion on this.
Essentially, if you read the datasheet, you will see that cbi/sbi only works
on *some* ports, while read/modify/write works on all. The compiler will use
whatever is most efficient regardless of whether you use the sbi() macro.
Therefore using
some_port = sbi(my_bit);
is equivalent to
some_port = some_port | _BV(my_bit);
however the latter does not confuse anyone and is a better (and more
portable) higher-level representation of what is happening.
If you are concerned with counting clock cycles, usually inline or pure
assembly is a much better choice.
Regards
Ben Mann
-----Original Message-----
From: address@hidden
[mailto:address@hidden On Behalf Of Jamie
Morken
Sent: Monday, 14 March 2005 5:59 PM
To: Parthasaradhi Nayani
Cc: address@hidden
Subject: Re: [avr-gcc-list] efficiency of assigning bits
Hi,
----- Original Message -----
From: Parthasaradhi Nayani <address@hidden>
Date: Sunday, March 13, 2005 7:12 am
Subject: Re: [avr-gcc-list] efficiency of assigning bits
>
> Hello,
> To turn two bits off, the method I would adopt is
>
> PORTD &= 0B11101101;
>
> This is the fastest method.
What does that work out to in assembly? A cbi/sbi assembly instruction is 2
clock cycles. I still don't understand why these instructions would be
taken out of winavr, they obviously are useful for them to have been
included as opcodes in the AVR! :)
Is it possible to do inline assembly with cbi/sbi?
Something like this:
asm("sbi,x,y)"
--gives an error though
cheers,
Jamie
>
> The cbi and sbi instructions are removed in the latest version of
> winavr and can not be used. Moreover the two instructions take more
> time and more space compared to the above example.
>
> Nayani
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Make Yahoo! your home page
> http://www.yahoo.com/r/hs
>
_______________________________________________
AVR-GCC-list mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
- Re: [avr-gcc-list] efficiency of assigning bits, (continued)
Re: [avr-gcc-list] efficiency of assigning bits, Daniel O'Connor, 2005/03/13
Re: [avr-gcc-list] efficiency of assigning bits, Parthasaradhi Nayani, 2005/03/13
Re: [avr-gcc-list] efficiency of assigning bits, Parthasaradhi Nayani, 2005/03/13
Re: [avr-gcc-list] efficiency of assigning bits, Jamie Morken, 2005/03/14
Re: [avr-gcc-list] efficiency of assigning bits, E. Weddington, 2005/03/14
Re: [avr-gcc-list] efficiency of assigning bits, E. Weddington, 2005/03/14
Re: [avr-gcc-list] efficiency of assigning bits, E. Weddington, 2005/03/14
Re: [avr-gcc-list] efficiency of assigning bits, Jamie Morken, 2005/03/17