Цитата(AVR @ May 15 2006, 00:55)

Как передать адрес порта ввода-вывода в функцию в IAR-EW 4.11A?
Как записать и счиать ввнутри функции по этому адресу?
Например так:
Код
void SetupBit(unsigned char* X, unsigned char Y, unsigned char Z)
{
unsigned char* P_port=X;
if(Z==IN0)
{
*P_port&=~(1<<Y);
*(P_port-1)&=~(1<<Y);
}
else if(Z==IN1)
{
*P_port|=(1<<Y);
*(P_port-1)&=~(1<<Y);
}
else if(Z==OUT0)
{
*P_port&=~(1<<Y);
*(P_port-1)|=(1<<Y);
}
else if(Z==OUT1)
{
*P_port|=(1<<Y);
*(P_port-1)|=(1<<Y);
}
}
Обращение к функции:
Код
#define IN0 0
#define IN1 1
#define OUT0 3
#define OUT1 4
void main(void)
{
SetupBit((unsigned char*)&PORTB,PB2,OUT1);
}