Microchip® Advanced Software Framework

dsp_debug.h File Reference
#include "dsp.h"

Macros

#define dsp_debug_initialization(x)   dsp_debug_initialization__(__DATE__, __TIME__, x)
 This define permits to print the date and the time of the last compilation of the dsp_debug_initialization__ function. More...
 

Typedefs

typedef void(* dsp_debug_print_str_t )(char *)
 This type definition is a pointer on a function that permits to print a string of a device.
It is used to separate the debug module to a printer device module. More...
 

Functions

void dsp_debug_print_fct (char *str)
 This function is used to print a string through the peripheral used by the debugging module. More...
 
int dsp_debug_sprint_after_radix (char **out, unsigned int num, unsigned int den, int nb_digits)
 This functions permits to copy the digits after the radix of a division's result in the specified buffer. More...
 
Peripheral function

These function are used to make an abstraction of the driver used to control the debugging peripheral.

void dsp_debug_init (int fosc)
 This function permits to initialize the peripheral that is used to debug. It is automatically called by the dsp_debug_initialization__ function. More...
 
void dsp_debug_write_fct (char c)
 This function is used to print a character through the peripheral used by the debugging module. More...
 
char dsp_debug_read_fct ()
 This function is used to get a character through the peripheral used by the debugging module. More...
 
Initialization function

This function permits to initialize the debugging module.

Parameters
dateA string containing today's date.
timeA string containing the current time.
foscThe frequency of the oscillator.
Note
This function has to be called before using all the other functions.
It is highly recommended to use the define dsp_debug_initialization instead of using directly this function.
void dsp_debug_initialization__ (char *date, char *time, int fosc)
 
Q formatted number printing functions

These function permits to print a signed fixed point Q formatted number.

void dsp_debug_print (int nb_bits, int q, int n)
 Generic function to print all kind of Q formatted numbers. More...
 
int dsp_debug_sprint (char **out, int nb_bits, int q, int i)
 Generic function to print all kind of Q formatted numbers. More...
 
void dsp16_debug_print (dsp16_t n)
 This functions permits to print a dsp16_t typed number. More...
 
void dsp32_debug_print (dsp32_t n)
 This functions permits to print a dsp32_t typed number. More...
 
Complex number printing functions

These function permits to print a complex signed fixed point Q formatted number.

void dsp_debug_print_complex (int nb_bits, int q, int real, int imag)
 Generic function to print all kind of complex Q formatted numbers. More...
 
void dsp16_debug_print_complex (dsp16_complex_t *n)
 This functions permits to print a dsp16_complex_t typed number. More...
 
void dsp32_debug_print_complex (dsp32_complex_t *n)
 This functions permits to print a dsp32_complex_t typed number. More...
 
Vector printing functions

These function permits to print vectors.
All these functions print a vector the same way.

1 0.02556
2 -0.60125
...

For a real type vector.

1 0.02556 + -0.08965i
2 -0.65064 + 0.i
...

For a complex type vector.

void dsp16_debug_print_vect (dsp16_t *vect, int size)
 This functions permits to print a dsp16_t typed vector. More...
 
void dsp32_debug_print_vect (dsp32_t *vect, int size)
 This functions permits to print a dsp32_t typed vector. More...
 
void dsp16_debug_print_complex_vect (dsp16_complex_t *vect, int size)
 This functions permits to print a dsp16_complex_t typed vector. More...
 
void dsp32_debug_print_complex_vect (dsp32_complex_t *vect, int size)
 This functions permits to print a dsp32_complex_t typed vector. More...
 
Printf functions

These function permits to print any data on a printing device.
These functions work as the printf function, except that they include the fixed point Q formatted format notion. The following attributes are currently implemented:

  • s : The const char * argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating null byte ('\0'); if a precision is specified, no more than the number specified are written. If a precision is given, no null byte need be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating null byte.
  • d ,i : The int argument is converted to signed decimal notation. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros. The default precision is 1. When 0 is printed with an explicit precision 0, the output is empty.
  • o ,u ,x ,X : The unsigned int argument is converted to unsigned octal (o ), unsigned decimal (u ), or unsigned hexadecimal (x and X ) notation. The letters abcdef are used for x conversions; the letters ABCDEF are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros. The default precision is 1. When 0 is printed with an explicit precision 0, the output is empty.
  • c : The int argument is converted to an unsigned char, and the resulting character is written.
  • f : The fixed point argument is converted to decimal notation in the style [-]ddd.ddd, [THE FOLLOWING IS NOT IMPLEMENTED YET!] where the number of digits after the decimal-point character is equal to the precision specification. If the precision is missing, it is taken as 6; if the precision is explicitly zero, no decimal-point character appears. If a decimal point appears, at least one digit appears before it.
int dsp16_debug_printf (const char *format,...)
 This function is the printf version for 16-bit Q formatted signed numbers. More...
 
int dsp32_debug_printf (const char *format,...)
 This function is the printf version for 32-bit Q formatted signed numbers. More...
 
int dsp16_debug_sprintf (char *out, const char *format,...)
 This function is the sprintf version for 16-bit Q formatted signed numbers. More...
 
int dsp32_debug_sprintf (char *out, const char *format,...)
 This function is the sprintf version for 32-bit Q formatted signed numbers. More...
 
Reading functions

These function are used to receive data from the user.

void dsp_debug_read (char *str, int size, char end_char)
 This function is used to get a string through the peripheral used by the debugging module. More...
 
int dsp_debug_read_ui ()
 This function is used to get an unsigned integer through the peripheral used by the debugging module. More...
 
int dsp_debug_read_q (int a, int b)
 This function is used to read a Q formatted number. More...
 

typedef void(* dsp_debug_print_str_t)(char *)

This type definition is a pointer on a function that permits to print a string of a device.
It is used to separate the debug module to a printer device module.

void dsp_debug_initialization__ ( char *  date,
char *  time,
int  fosc 
)

References dsp_debug_init().

void dsp_debug_read ( char *  str,
int  size,
char  end_char 
)

This function is used to get a string through the peripheral used by the debugging module.

Parameters
strThe output buffer to store the string.
sizeThe size of the buffer.
end_charThe ending character.
Precondition
The dsp_debug_initialization__ function has to be called before using this function.

This function is used to get a string through the peripheral used by the debugging module.

References dsp_debug_read_fct().

int dsp_debug_read_q ( int  a,
int  b 
)

This function is used to read a Q formatted number.

Parameters
aThe length in byte of the integer part of the Q formatted number.
bThe length in byte of the decimal part of the Q formatted number.
Returns
The Q formatted number read.
Precondition
The dsp_debug_initialization__ function has to be called before using this function.

This function is used to read a Q formatted number.

References dsp_debug_parse_int(), dsp_debug_read_fct(), DSP_Q_MAX, and DSP_Q_MIN.

int dsp_debug_read_ui ( )

This function is used to get an unsigned integer through the peripheral used by the debugging module.

Returns
The number read.
Precondition
The dsp_debug_initialization__ function has to be called before using this function.

This function is used to get an unsigned integer through the peripheral used by the debugging module.

References dsp_debug_buffer, dsp_debug_parse_int(), and dsp_debug_read_fct().

Referenced by main().