/************************************************ * Port definitions for ATtiny, ATmega families ************************************************/ template // //*************************** class PortImplementation : public NativePortBase { //************************ // DataT x = (DataT)-1; // replaced // 0b1111'1111 template static inline void SetBitwise () { if(mask == 0) return; if(value & mask) reg::Or (value & mask); SetBitwise (); } // !! RECURSION !! template static inline void ClearBitwise() { if(mask == 0) return; if(value & mask) reg::And(~(value & mask)); ClearBitwise(); } // !! RECURSION !! //template < DataT value, DataT mask> static inline void SetBitwiseIn() { if(mask == 0) return; if(value & mask) in::Or (value & mask); SetBitwiseIn< value, DataT(mask << 1)>(); } // !! RECURSION !! //template < DataT value, DataT mask> static inline void SetBitwise () { if(mask == 0) return; if(value & mask) out::Or (value & mask); SetBitwise < value, DataT(mask << 1)>(); } // !! RECURSION !! //template < DataT value, DataT mask> static inline void ClearBitwise() { if(mask == 0) return; if(value & mask) out::And(~(value & mask)); ClearBitwise< value, DataT(mask << 1)>(); } // !! RECURSION !! ...