Cau.
Ja mam PIC 24FJ64GA002 urobil som v predmete spravу chуbu.
Kod je presne rovnak ako na spominanom webu.
[code]#define CLOCK 16
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF
& COE_OFF & ICS_PGx1 & FWDTEN_OFF)
_CONFIG2(IESO_OFF & FNOSC_FRCPLL & FCKSM_CSDCMD
& OSCIOFNC_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_NONE)
void delay_us(int usec);
void delay_ms(int msec);
unsigned long ADCValue;
int main(void)
{
CLKDIV = 0;
AD1PCFG = 0xFFEF; // AN4(RB2)
TRISA = 0xFFFE; // RA0
TRISB = 0xFFFF;
T3CON=0b1000000000110000;
PR3 = 3124; // 50000÷((1/16)×256)-1 = 3124
AD1CON1 = 0x8044; // AD1CON1:A/D
AD1CON2 = 0x0400; // AD1CON2:A/D
AD1CON3 = 0x1F05; // AD1CON3:A/D
AD1CSSL = 0x0010; // AD1CSSL:A/D
AD1CHS = 0x0000; // AD1CHS:A/D
IEC0bits.AD1IE = 1; // A/D
while(1)
{
delay_ms(ADCValue);
// LED
LATAbits.LATA0 = !LATAbits.LATA0;
}
return 0;
}
void attribute((interrupt,auto_psv)) _ADC1Interrupt(void)
{
IFS0bits.AD1IF = 0;
ADCValue = ADC1BUF0;
}
void delay_us(int usec)
{
usec=(int)(CLOCK*usec)/10;
while(usec)
{
asm(“NOP”);
asm(“NOP”);
asm(“NOP”);
asm(“NOP”);
asm(“NOP”);
asm(“NOP”);
usec–;
}
}
void delay_ms(int msec)
{
int i;
for(i = 0; i < msec; i++)
{
delay_us(1000);
}
}[/code]