|
|
|
//
|
|
|
|
// Created by MightyPork on 2017/11/25.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef U_DOUT_H
|
|
|
|
#define U_DOUT_H
|
|
|
|
|
|
|
|
#include "unit.h"
|
|
|
|
|
|
|
|
extern const UnitDriver UNIT_DOUT;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Write pins (e.g. writing 0b10 if configured pins are PA5 and PA0 sets PA5=1,PA0=0)
|
|
|
|
*
|
|
|
|
* @param unit
|
|
|
|
* @param packed - packed pin states (aligned to right)
|
|
|
|
* @return success
|
|
|
|
*/
|
|
|
|
error_t UU_DO_Write(Unit *unit, uint16_t packed);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set pins (clear none)
|
|
|
|
*
|
|
|
|
* @param unit
|
|
|
|
* @param packed - packed pins, 1 if pin should be set
|
|
|
|
* @return success
|
|
|
|
*/
|
|
|
|
error_t UU_DO_Set(Unit *unit, uint16_t packed);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clear multiple pins
|
|
|
|
*
|
|
|
|
* @param unit
|
|
|
|
* @param packed - packed pins, 1 if pin should be cleared
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
error_t UU_DO_Clear(Unit *unit, uint16_t packed);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Toggle pins
|
|
|
|
*
|
|
|
|
* @param unit
|
|
|
|
* @param packed - packed pins, 1 if pin should be toggled
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
error_t UU_DO_Toggle(Unit *unit, uint16_t packed);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get number of configured pins
|
|
|
|
*
|
|
|
|
* @param unit
|
|
|
|
* @param count output, written with 0-16
|
|
|
|
* @return success
|
|
|
|
*/
|
|
|
|
error_t UU_DO_GetPinCount(Unit *unit, uint8_t *count);
|
|
|
|
|
|
|
|
#endif //U_DOUT_H
|