我可以将 IO 端口作为参数传递给函数吗?
Can I pass an IO port as a parameter to a function?
我尝试制作一个函数,使用 IO 寄存器参数 (AVR 32 PORTA) 来操作它。但它不起作用。
/*my function */
U8_t set_bits( U8_t port, U8_t mask)
{
port |= mask;
return port ;
}
/*call of function*/
PORTA=set_bits(PORTA , 0xF0);
好吧...它有效,但您需要 return port
。目前它是一个参数 (passed by value)。使用:
void set_bits(volatile uint8_t *port, uint8_t mask)
{
*port |= mask;
}
并调用:
uint8_t port;
set_bits( &port, mask);
或者您可以 return 端口:
uint8_t set_bits(uint8_t port, uint8_t mask)
{
port |= mask;
return port;
}
并调用:
uint8_t port;
port= set_bits(port, mask);
我尝试制作一个函数,使用 IO 寄存器参数 (AVR 32 PORTA) 来操作它。但它不起作用。
/*my function */
U8_t set_bits( U8_t port, U8_t mask)
{
port |= mask;
return port ;
}
/*call of function*/
PORTA=set_bits(PORTA , 0xF0);
好吧...它有效,但您需要 return port
。目前它是一个参数 (passed by value)。使用:
void set_bits(volatile uint8_t *port, uint8_t mask)
{
*port |= mask;
}
并调用:
uint8_t port;
set_bits( &port, mask);
或者您可以 return 端口:
uint8_t set_bits(uint8_t port, uint8_t mask)
{
port |= mask;
return port;
}
并调用:
uint8_t port;
port= set_bits(port, mask);