Personligen är jag mycket imponerad! Speciellt i synergi med peripheral pin select där man kan mappa om samtliga digitala in och utgångar.
Bilden ovan genererar följande kod
Kod: Markera allt
void PWM4_Start_rear_pwm_10(void)
{
// Set the PWM to the options selected in the MPLAB® Code Configurator.
// PWM4POL active_hi; PWM4EN enabled;
PWM4CON = 0x80;
// PWM4DCH 255;
PWM4DCH = 0xFF;
// PWM4DCL 48;
PWM4DCL = 0x30;
// Selecting Timer6
CCPTMRSbits.P4TSEL = 0x80;
}
Och när man definierar en digital port skapas en stor mängd macron som man kan använda om man vill.
Här är för utgången Front_Inductor_Feed .
Kod: Markera allt
#define Front_Inductor_Feed_TRIS TRISA2
#define Front_Inductor_Feed_LAT LATA2
#define Front_Inductor_Feed_PORT RA2
#define Front_Inductor_Feed_WPU WPUA2
#define Front_Inductor_Feed_ANS ANSA2
#define Front_Inductor_Feed_SetHigh() do { LATA2 = 1; } while(0)
#define Front_Inductor_Feed_SetLow() do { LATA2 = 0; } while(0)
#define Front_Inductor_Feed_Toggle() do { LATA2 = ~LATA2; } while(0)
#define Front_Inductor_Feed_GetValue() RA2
#define Front_Inductor_Feed_SetDigitalInput() do { TRISA2 = 1; } while(0)
#define Front_Inductor_Feed_SetDigitalOutput() do { TRISA2 = 0; } while(0)
#define Front_Inductor_Feed_SetPullup() do { WPUA2 = 1; } while(0)
#define Front_Inductor_Feed_ResetPullup() do { WPUA2 = 0; } while(0)
#define Front_Inductor_Feed_SetAnalogMode() do { ANSA2 = 1; } while(0)
#define Front_Inductor_Feed_SetDigitalMode() do { ANSA2 = 0; } while(0)
