Microchip DsPIC30F4012

This is a sample code showing a minimal configuration of a DsPIC30F4012 to get on RE0 a high level (logical 1) of a duration of one cycle at 20MIPS from an external crystal of 5MHz. The aim is to validate a simple design by verifying :

  • The MPU is well powered,
  • Its main oscillator is working and the PLL is well configured.

To do that, one file have to be added to a blank project in MPLABX using C30 or XC16 compilers :

#include <p30fxxxx.h>;


int main(void) {
    OSCCONbits.POST = 0b01; // Datasheet page 7-14
    TRISE = 0; // Port E en sortie
    LATE = 0; // Initialisation du port E à 0

    while(1) {
        LATEbits.LATE0 = 1;
        LATEbits.LATE0 = 0;

    return 0;