SPI Programming Manual (G06.24+, H06.03+, J06.03+)

SPI Programming Examples
SPI Programming Manual427506-006
E-57
Example E-12: A Simple SPI Server in C
/* Start Data list only if (ZSPI_TKN_MAXRESP is not = 0 */
if (max_resp)
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_DATALIST))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_DATALIST, false);
return;
}
/* Put return code token in response buffer */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_RETCODE, (char *) &p_err_num))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_RETCODE, false);
return;
}
/* Put error list token */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_ERRLIST))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_ERRLIST, false);
return;
}
memcpy (&l_err_def.z_ssid, &my_ssid, 12);
l_err_def.z_error = p_err_num; /* Error number from validate_tokens */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_ERROR, (char *) &l_err_def))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_ERROR, false);
return;
/* Put endlist token for end of response (End list of Error list) */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_ENDLIST))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_ENDLIST, false);
return;
}
/* Put endlist token for end of response (End list of Data list) */
if (max_resp)
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_ENDLIST))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_ENDLIST, false);
return;
}
} /* End of error_response procedure */
#pragma PAGE "PROC initialization"
Example E-12. C File: A Simple SPI Server (page 3 of 12)