📄 ma_io.c
字号:
/*--- Port G ---*/
ClrBit( DDRG, BitMask );
break;
default:
/*--- Handle user code on function exit ---*/
// EXIT_MA_SETPORTIN_IO;
/*--- Illegal port ---*/
return MA_ERROR;
}
/*--- Handle user code on function exit ---*/
// EXIT_MA_SETPORTIN_IO;
return MA_OK;
} /* MA_SetPortIn_IO */
S8 MA_SetPortOut_IO( U8 Port, U8 BitMask )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Reprograms selected I/O pins as output pins.
**
** Parameters:
** Port The port to reprogram (MA_PORTA - MA_PORTG)
** BitMask Set a bit to program the corresponding pin to output
**
** Returns:
** MA_ERROR If an illegal port was given.
** MA_OK Otherwise.
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
// ENTER_MA_SETPORTOUT_IO;
/*--- Set selected pins as output pins ---*/
switch( Port )
{
case MA_PORTA:
/*--- Port A ---*/
SetBit( DDRA, BitMask );
break;
case MA_PORTB:
/*--- Port B ---*/
SetBit( DDRB, BitMask );
break;
case MA_PORTC:
/*--- Port C ---*/
SetBit( DDRC, BitMask );
break;
case MA_PORTD:
/*--- Port D ---*/
SetBit( DDRD, BitMask );
break;
case MA_PORTE:
/*--- Port E ---*/
SetBit( DDRE, BitMask );
break;
case MA_PORTF:
/*--- Port F ---*/
SetBit( DDRF, BitMask );
break;
case MA_PORTG:
/*--- Port G ---*/
SetBit( DDRG, BitMask );
break;
default:
/*--- Handle user code on function exit ---*/
// EXIT_MA_SETPORTOUT_IO;
/*--- Illegal port ---*/
return MA_ERROR;
}
/*--- Handle user code on function exit ---*/
// EXIT_MA_SETPORTOUT_IO;
return MA_OK;
} /* MA_SetPortOut_IO */
S8 MA_ReadPort_IO( U8 Port )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Reads data from the selected I/O port. Each port pin in the read
** port will be mapped to the corresponding bit in the return value.
**
** Parameters:
** Port The port to reprogram (MA_PORTA - MA_PORTG)
**
** Returns:
** MA_ERROR If an illegal port was given
** The read data otherwise.
**
**---------------------------------------------------------------------------
*/
{
U8 Data;
/*--- Handle user code on function entry ---*/
// ENTER_MA_READPORT_IO;
/*--- Read port ---*/
switch( Port )
{
case MA_PORTA:
/*--- Port A ---*/
Data = PINA;
break;
case MA_PORTB:
/*--- Port B ---*/
Data = PINB;
break;
case MA_PORTC:
/*--- Port C ---*/
Data = PINC;
break;
case MA_PORTD:
/*--- Port D ---*/
Data = PIND;
break;
case MA_PORTE:
/*--- Port E ---*/
Data = PINE;
break;
case MA_PORTF:
/*--- Port F ---*/
Data = PINF;
break;
case MA_PORTG:
/*--- Port G ---*/
Data = PING;
break;
default:
/*--- Handle user code on function exit ---*/
// EXIT_MA_READPORT_IO;
/*--- Illegal port ---*/
return MA_ERROR;
}
/*--- Handle user code on function exit ---*/
// EXIT_MA_READPORT_IO;
/*--- Return read port value ---*/
return Data;
} /* MA_ReadPort_IO */
S8 MA_WritePort_IO( U8 Port, U8 Value, U8 BitMask )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Writes data to the selected I/O port. Each bit in the selected
** port which has a corresponding bit set in the bitmask, will
** output the bit value that are defined in the 'Value' parameter.
**
** Parameters:
** Port The port to reprogram (MA_PORTA - MA_PORTG)
** Value The data to write
** BitMask Bitmask which selects the bits in the port to change
**
** Returns:
** MA_ERROR If an illegal port was given
** MA_OK Otherwise
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
// ENTER_MA_WRITEPORT_IO;
/*--- Write port ---*/
switch( Port )
{
case MA_PORTA:
/*--- Port A ---*/
PORTA &= Value | ~BitMask;
PORTA |= Value & BitMask;
break;
case MA_PORTB:
/*--- Port B ---*/
PORTB &= Value | ~BitMask;
PORTB |= Value & BitMask;
break;
case MA_PORTC:
/*--- Port C ---*/
PORTC &= Value | ~BitMask;
PORTC |= Value & BitMask;
break;
case MA_PORTD:
/*--- Port D ---*/
PORTD &= Value | ~BitMask;
PORTD |= Value & BitMask;
break;
case MA_PORTE:
/*--- Port E ---*/
PORTE &= Value | ~BitMask;
PORTE |= Value & BitMask;
break;
case MA_PORTF:
/*--- Port F ---*/
PORTF &= Value | ~BitMask;
PORTF |= Value & BitMask;
break;
case MA_PORTG:
/*--- Port G ---*/
PORTG &= Value | ~BitMask;
PORTG |= Value & BitMask;
break;
default:
/*--- Handle user code on function exit ---*/
// EXIT_MA_WRITEPORT_IO;
/*--- Illegal port ---*/
return MA_ERROR;
}
/*--- Handle user code on function exit ---*/
// EXIT_MA_WRITEPORT_IO;
return MA_OK;
} /* MA_WritePort_IO */
/*
**===========================================================================
** 5. INTERNAL FUNCTIONS (declared in Section 3.5)
**===========================================================================
*/
/*
**===========================================================================
** END OF FILE
**===========================================================================
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -