⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ma_io.c

📁 avr Rtos 255 Task avr Rtos 255 Task
💻 C
📖 第 1 页 / 共 2 页
字号:
        /*--- 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 + -