Forum: Test test format code


von Mitleserin (a.b.) (Gast)


Lesenswert?

[code struct CLASS_NAME { 
\
    using DataT = DATA_TYPE; 
\
                                                                           \
    static volatile DataT*  Addr()     {return &REG_NAME 
;} \
                                                                           \
    static DataT Get       ()          {return  REG_NAME 
;} \
    static void  Set       (auto value){        REG_NAME  = 
DataT(value);} \
    static void  Or        (auto value){        REG_NAME |= 
DataT(value);} \
                                                                           \
    static void  And       (auto value){        REG_NAME &= 
DataT(value);} \
    static void  Xor       (auto value){        REG_NAME ^= 
DataT(value);} \
                                                                           \
    static void  AndOr     (auto andMask, 
\
                            auto orMask ) {     REG_NAME  = 
\
                                              ( REG_NAME  & DataT( 
andMask)\
                                                          | 
DataT(orMask);}\
    static void  ClrSet    (auto andMask, 
\
                            auto orMask ) {     REG_NAME  = 
\
                                              ( REG_NAME  & 
DataT(~andMask)\
                                                          | 
DataT(orMask);}\
                                                                           \
    static bool  BitIsSet  (auto mask) {return (REG_NAME & 
DataT(mask));}  \
    static bool  BitIsClear(auto mask) {return!(REG_NAME & 
DataT(mask));}  \
  };[/code]

Beitrag #6759012 wurde von einem Moderator gelöscht.
von Al. K. (alterknacker)


Lesenswert?

ja,so ist es

von A. B. (Firma: ab) (bus_eng)


Lesenswert?

1
 
2
template<>
3
struct TimerRegs<3> { ...                             // ATmega1284
4
5
   enum class tmode : DataT  {
6
 // ****************
7
      wgm0                         = 1 << WGM10,      // waveform0 gen. mode TCCRA | bit0
8
      wgm1                         = 1 << WGM11,      // waveform0 gen. mode TCCRA | bit1
9
   // ----------------------------------------------- // --------------------------------
10
      wgm2                         = 1 << WGM12,      // waveform0 gen. mode TCCRB | bit3
11
      wgm3                         = 1 << WGM13,      // waveform0 gen. mode TCCRB | bit4
12
   // ----------------------------------------------- //---------------------------------
13
      Normal                       = 0,
14
      PwmPhaseCorrect8Bit          =                wgm0,
15
      PwmPhaseCorrect9Bit          =           wgm1,
16
      PwmPhaseCorrect10Bit         =           wgm1|wgm0,
17
      ClearOnCompareOCRA           =      wgm2,
18
      PwmFast8Bit                  =      wgm2|     wgm0,
19
      PwmFast9Bit                  =      wgm2|wgm1,
20
      PwmFast10Bit                 =      wgm2|wgm1|wgm0,
21
      PwmPhaseAndFreqCorrectToICR  = wgm3,
22
      PwmPhaseAndFreqCorrectToOCRA = wgm3|          wgm0,
23
      PwmPhaseCorrectToICR         = wgm3|     wgm1,
24
      PwmPhaseCorrectToOCRA        = wgm3|     wgm1|wgm0,
25
      ClearOnCompareICR            = wgm3|wgm2,
26
   // Reserved                     = wgm3|wgm2|     wgm0,
27
      PwmFastToICR                 = wgm3|wgm2|wgm1,
28
      PwmFastToOCRA                = wgm3|wgm2|wgm1|wgm0,
29
 // ------------------------------------------------------
30
      clearmask_cca                =           wgm1|wgm0,
31
 // ------------------------------------------------------
32
      clearmask_ccb                = wgm3|wgm2
33
    };
34
  ...
35
  } //.TimerRegs
36
37
// enum class - bitmask operators
38
// **********************************************|
39
   template<> struct std::enable_bitmask_operators <Mcucpp::Timers::TimerRegs<3>::tmode>  
40
   { static constexpr bool enable = true; };

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.