Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <p24fj128ga010.h>
- _CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & FWDTEN_OFF)
- _CONFIG2(FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_HS & FNOSC_PRI)
- #define SCALE 308L
- /* numer którym dostajemy się do czujnika temperatury */
- #define TSENS 4
- #define AINPUTS 0xffcf
- void ADCinit(int amask)
- {
- AD1PCFG = amask;
- AD1CON1 = 0x00e0;
- AD1CSSL = 0;
- AD1CON2 = 0;
- AD1CON3 = 0x1f02;
- AD1CON1bits.ADON = 1;
- }
- int readADC(int ch)
- {
- AD1CHS = ch;
- AD1CON1bits.SAMP = 1;
- while (!AD1CON1bits.DONE);
- return ADC1BUF0;
- }
- int main(void)
- {
- TRISA = 0xFF00;
- TRISD = 0xFFFF;
- unsigned long x=0,i,czas=1;
- unsigned char display = 0;
- int temp;
- unsigned int szybkosc = 100L;
- unsigned long kontrolna= 250;
- PORTA = 0x0000;
- ADCinit(AINPUTS); /*inicjalizacja konwertera AD*/
- while (1) {
- Nop();
- for (i = szybkosc * SCALE; i > 0; i--) Nop();
- temp = readADC(TSENS);
- if(x==0)
- {
- if(temp>kontrolna)
- {
- if(czas<8)
- {
- for (i = szybkosc * SCALE; i > 0; i--) Nop();
- temp = readADC(TSENS);
- display = 1;
- PORTA = (unsigned int)display;
- for (i = szybkosc * SCALE; i > 0; i--) Nop();
- display = 0;
- PORTA = (unsigned int)display;
- czas++;
- if(PORTDbits.RD13 == 0)
- {
- display=0;
- PORTA=(unsigned int) display;
- x=1;
- }
- if(PORTDbits.RD6 == 0)
- {
- kontrolna=kontrolna+10;
- }
- }
- if(czas>=8)
- {
- display=255;
- PORTA=(unsigned int) display;
- if(PORTDbits.RD13 == 0)
- {
- display=0;
- PORTA=(unsigned int) display;
- x=1;
- }
- if(PORTDbits.RD6 == 0)
- {
- kontrolna=kontrolna+10;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement