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 potencjometru */
- #define TVOLT 5
- #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)
- {
- unsigned long i;
- unsigned char display=0;
- int volt;
- int speed=500;
- //maksymalna wartoĹ?Ä? jakÄ? moĹźna odczytaÄ? to ok 1123. na jej
- //podstawie przeskalujemy wynik
- int maxOdczyt = 1123;
- //inicjalizacja
- PORTA = 0x0000;
- TRISA=0xFF00;
- TRISD=0xFFFF;
- ADCinit(AINPUTS); //inicjalizacja konwertera AD
- while (1) {
- Nop();
- PORTA=(unsigned int) display;
- for (i = speed * SCALE; i > 0; i--) Nop();
- display=display+1;
- volt = readADC(TVOLT); //Odczytanie potencjometru
- //display=volt;
- if(volt > 100) speed = 100;
- if(volt > 200) speed = 500;
- if(volt > 300) speed = 1000;
- if(volt > 400) speed = 1500;
- if(volt > 500) speed = 2000;
- if (volt <= 10) volt=500;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement