AVR - jak pristoupit k jednotlivym pinum, ne k celemu portu?
Moderátor: Moderátoři
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.
Pokud něco chcete a neodpovídám,pošlete SZ ![Smile :)](./images/smilies/icon_smile.gif)
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, ESP8266, STM32, ESP32...)
Peťus
![Smile :)](./images/smilies/icon_smile.gif)
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, ESP8266, STM32, ESP32...)
Peťus
Sprav to takto:
alebo 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;
}
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];
}
Výsledok logického predpokladu je niekedy nezmysel... bacha na to! ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)