PxRegisterWrite()

Write a value to a SFR register.

APPLIES TO

1.0.0

SYNOPSIS
PxError_t PxRegisterWrite (volatile PxULong_t *addr, PxULong_t val);
ARGUMENTS
addr

Address of the desired register to write

val

Value to write to the register

RETURN VALUES
  • PXROS error code

ERROR CODES

PXERR_ACCESS_RIGHT

The task has not the right to access peripheral registers

PXERR_PROT_ILL_REGION

addr is not within additional protection region

DESCRIPTION

PxRegisterWrite sets the content of the peripheral register addr to val if the calling task has write access right to this special function register. It should only be used from tasks (not from handlers).

The peripheral register addr must be covered in the additional protection region table passed in the element ts_protect_region of PxTaskSpec_t during PxTaskCreate.

PxRegisterWrite_Hnd is the corresponding handler function. It should only be used from handlers running in a task’s context.

IMPLEMENTATION GUIDELINES
Before call
  • addr has to be a valid pointer to a special function register (V).

After call
  • The function returns PXERR_NOERROR if the register could be written. Any other return value describes an error, which has to be interpreted (C).

Best Practice
  • The peripheral register addr must be covered in the additional protection region table passed in the element ts_protect_region of PxTaskSpec_t during PxTaskCreate.

USAGE
#include "pxdef.h"

PxError_t error = PxRegisterWrite(addr, val);

if (error != PXERR_NOERROR) {
    // Report error
}