Kod: Markera allt
/* Introduktion */
#define ON 1
#define OFF 0
#define femtio PORTA.0
#define sextio PORTA.1
#define frekvens femtio,sextio
#define Hcount100Hz 0b00100111; // 0b0010011100010000=10000
#define Lcount100Hz 0b00010000;
#define Hcount120Hz 0b00100000; // 0b0010000010001101=8333
#define Lcount120Hz 0b10001101;
void main(void)
{
ANSEL = 0; // Clear ANSEL file registry
ANSEL.ANS2 = 1; // Configure AN2 as analog I/O
TRISA = 0b00000111; // Configure AN0, AN1 and AN2 as inputs, the rest as outputs.
// Bit TRISA<3> is a read only input pin, for MCLR (active low) input.
TRISB = 0x00; // Configure I/O, all available PORTB pins as outputs
TRISC = 0; // Configure I/O, all available PORTC pins as outputs
CCPR1H = 0; // Clear both Timer 1 holding registers
CCPR1L = 0;
TMR1L = 0; // Clear both Timer 1 holding registers
TMR1H = 0;
PIE1.CCP1IE = 1; // Enable CCP1 interrupt flag
PIR1.CCP1IF = 0; // Clear CCP1 interrupt flag
PIE2.OSFIE = 1; // Enable oscillator interrupt flag
OSCCON = 0b01100001; // Configure internal oscillator (HFINTOSC) to 4 MHz and to start oscillating.
T2CON = 0b00100001; // Set TMR2 prescaler 4, postscaler 5
ADCON0.ADFM = 0; // (ADFM=0) ADC "delay" look at ADRESH 8 most significant bits */
CCP1CON=0b00001011; // Configure CCP1CON to trigger a special event on TMR1=CCPR match
while(true)
{
if (Port A.0) while (I1);
/* Operation XOR */
else while (I2);
/* Operation XOR */
/* A/D conversion */
/* Delay */
} // while true (always)
} // main
