Stránka 2 z 2

Napsal: 16 bře 2012, 16:48
od petus
Když používáš CodeVision a jeho kompilátor, tak umí přistupovat bitově, ale ve výsledku to dělá stejně jako AVRStudio, tj. že maskuje porty.

Napsal: 19 bře 2012, 12:30
od Jenda_KL
MiroH píše:Pretoze AVR nemaju na porty bitovy pristup.
SBI PORTB,PB0
CBI PORTB,PB0
toto je jaký přístup?

Napsal: 19 bře 2012, 14:12
od sqad
Sprav to takto:

Kód: Vybrat vše

typedef union
{
   unsigned char Byte;
   struct
   {
      unsigned int bit_0 :1;
      unsigned int bit_1 :1;
      unsigned int bit_2 :1;
      unsigned int bit_3 :1;
      unsigned int bit_4 :1;
      unsigned int bit_5 :1;
      unsigned int bit_6 :1;
      unsigned int bit_7 :1;
   }Bits;
}ByteField;


volatile ByteField pokus;


void main(void)
{
   pokus.Byte = 255;
   pokus.Bits.bit_6 = 0;
}


alebo takto:

Kód: Vybrat vše

unsigned char bit[8];

void main(void)
{
   unsigned char k, m=1;

   for(k=0;k<=7;k++)
   {
      bit[k] = m;
      m <<= 1;
   }

   PORTB |= bit[5];
   PORTB &= ~bit[5];
}