Maybe I am digging myself in, but I am trying to port a working piece of code from ATmega328 (i.e. from regular Arduino) to ATtiny85 on a breadboard (so far). The code is has pieces that are time critical, and for best performance on digital IO pin, I was using DigitalFastWrite library, but I am having a hard time trying to figure out how to modify it for ATtiny85, so I thought of taking the route of directly accessing DDRB, PORTB, PINB. I was merrily taking the sbi() route when I came accross avr-gcc documentation which lists it as an obosolete macro.
This is a part which I am grappling to understand...
Back in a time when AVR-GCC and avr-libc could not handle IO port access in the direct assignment form as they are handled now, all IO port access had to be done through specific macros that eventually resulted in inline assembly instructions performing the desired li.
These macros became obsolete, as reading and writing IO ports can be done by simply using the IO port name in an expression, and all bit manipulation (including those on IO ports) can be done using generic C bit manipulation operators.
... i.e., what is this new way of reading/writing IO ports by simply using IO port name in an expression ? If someone could share and example, it'd be really very useful.