Min iom128.h gør (vha nogle makroer i iomakro.h) at jeg kan skrive
 
 PORTB_Bit7 = 1;
 
 Hvis du har en anden version af compilerern skal du måske skrive
 PORTB_PORTB7 = 1. Kig i din headerfil.
 
 For de interesserede / til inspiration for præprocessorinteresserede:
 
 
 ***************************************************************************/
  * SFR_B(AVR,   0x1F)
  * Expands to:
  * __io union {
  *             unsigned char AVR;                 // The sfrb as 1 byte
  *             struct {                           // The sfrb as 8 bits
  *                     unsigned char AVR_Bit0:1,
  *                                   AVR_Bit1:1,
  *                                   AVR_Bit2:1,
  *                                   AVR_Bit3:1,
  *                                   AVR_Bit4:1,
  *                                   AVR_Bit5:1,
  *                                   AVR_Bit6:1,
  *                                   AVR_Bit7:1;
  *                    };
  *            } @ 0x1F;
  * Examples of how to use the expanded result:
  * AVR |= (1<<5);
  * or like this:
  * AVR_Bit5 = 1;
 
 ***************************************************************************/
 
 Her er makroerne, ( der skal læses bagfra, fordi de bruger hinanden)
 
 #define __BYTEBITS(_NAME,_A,_B,_C,_D,_E,_F,_G,_H) \
 unsigned char _NAME ## _ ## _A:1, \
               _NAME ## _ ## _B:1, \
               _NAME ## _ ## _C:1, \
               _NAME ## _ ## _D:1, \
               _NAME ## _ ## _E:1, \
               _NAME ## _ ## _F:1, \
               _NAME ## _ ## _G:1, \
               _NAME ## _ ## _H:1;
 
 #define SFR_B_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
     __io union { \
       unsigned char   _NAME;           /* The sfrb as 1 byte */ \
       struct {                        /* The sfrb as 8 bits */ \
         __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H) \
       };  \
     } @ _ADDR;
 
 #define SFR_B(_NAME, _ADDR) SFR_B_BITS(_NAME, _ADDR, \
                                     Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)
 
 
 "Jens Rauff" <jensrauff hos tiscali punktum dk> skrev i en meddelelse
 news:41c0631f$0$239$edfadb0f@dread12.news.tele.dk...
 > Hej ?
 >
 > Er der nogen der ved, om det kan lade sige gøre at skrive (altså noget
 > compiler-bart) der kan sætte en port ben høj/lav?
 >
 > Jeg har tidligere brugt CodeVisionAVR hvor følgende har kunne lade sig
 gøre:
 >
 > PORTB.1 = 0; //sætter Port B bit 1 lav
 >
 > I WinAVR er det så vidt jeg kan se nødvendigt at AND'e eller OR'e med hele
 > portens værdi:
 >
 > PORTB |= 1<<2; //sætter Port B bit 1 høj
 >
 > Er det virkelig nødvendigt at skrive det således i WinAVR?
 >
 > Mvh Jens Rauff
 >
 >
 
 
  
            
             |