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];
}