filt_test.c - test an extern low-pass RC filter effectiveness by generating a pulse train that is read by another port

Low-pass RC Filter test. RB2 generates a pulse train that is read by RB3, the external RC filter is assumed to be on the RB3 input.

 
#include "pic24_all.h"
 
 

Use RB2 as the test output (TOUT).

#define CONFIG_TOUT() CONFIG_RB2_AS_DIG_OUTPUT()
#define TOUT (_LATB2)
 

Use RB3 as the RC filter test intput (TIN).

#define CONFIG_TIN()  CONFIG_RB3_AS_DIG_INPUT();
#define TIN (_RB3)
 

Define the pulse width of TOUT in ms.

#define TPW  (1)

int main(void) {
  uint8_t u8_oldvalueTIN;

  configBasic(HELLO_MSG);

TOUT drives TIN. Have a value ready when it’s enabled.

  TOUT = 1;
  CONFIG_TIN();
  CONFIG_TOUT();

Wait for output to stablize because of filter.

  DELAY_MS(10);
  u8_oldvalueTIN = TIN;

  while (1) {
    TOUT = !TOUT;
    DELAY_MS(TPW);
    if (u8_oldvalueTIN != TIN) {
      u8_oldvalueTIN = TIN;
      outString("*");
    }
  }
}