| 2742 | 
        kaklik | 
        1 | 
        #include ".\main.h" | 
      
      
         | 
         | 
        2 | 
        //#include <LCD.C> | 
      
      
         | 
         | 
        3 | 
          | 
      
      
         | 
         | 
        4 | 
        #define LED1 PIN_C6  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5 | 
      
      
         | 
         | 
        5 | 
        #define LED2 PIN_C5  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5 | 
      
      
         | 
         | 
        6 | 
        #define LED3 PIN_C4  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5 | 
      
      
         | 
         | 
        7 | 
        #define LED4 PIN_D3  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5 | 
      
      
         | 
         | 
        8 | 
          | 
      
      
         | 
         | 
        9 | 
          | 
      
      
         | 
         | 
        10 | 
        #int_EXT | 
      
      
         | 
         | 
        11 | 
        void EXT_isr(void) | 
      
      
         | 
         | 
        12 | 
        { | 
      
      
         | 
         | 
        13 | 
           output_toggle(LED3); | 
      
      
         | 
         | 
        14 | 
        } | 
      
      
         | 
         | 
        15 | 
          | 
      
      
         | 
         | 
        16 | 
        //#define LCD_TYPE 1 | 
      
      
         | 
         | 
        17 | 
        //#include <lcd.c> | 
      
      
         | 
         | 
        18 | 
        void main() | 
      
      
         | 
         | 
        19 | 
        { | 
      
      
         | 
         | 
        20 | 
        unsigned int setpoint; | 
      
      
         | 
         | 
        21 | 
        unsigned int napeti;    | 
      
      
         | 
         | 
        22 | 
        unsigned int16 plneni=0; | 
      
      
         | 
         | 
        23 | 
          | 
      
      
         | 
         | 
        24 | 
        /*   lcd_init(); | 
      
      
         | 
         | 
        25 | 
          | 
      
      
         | 
         | 
        26 | 
           lcd_putc("\fReady...\n"); | 
      
      
         | 
         | 
        27 | 
          | 
      
      
         | 
         | 
        28 | 
           while (TRUE) { | 
      
      
         | 
         | 
        29 | 
              k=kbd_getc(); | 
      
      
         | 
         | 
        30 | 
              if(k!=0) | 
      
      
         | 
         | 
        31 | 
                if(k=='*') | 
      
      
         | 
         | 
        32 | 
                  lcd_putc('\f'); | 
      
      
         | 
         | 
        33 | 
                else | 
      
      
         | 
         | 
        34 | 
                  lcd_putc(k); | 
      
      
         | 
         | 
        35 | 
           } | 
      
      
         | 
         | 
        36 | 
        */ | 
      
      
         | 
         | 
        37 | 
          | 
      
      
         | 
         | 
        38 | 
           setup_adc_ports(sAN0|VSS_VDD); | 
      
      
         | 
         | 
        39 | 
           setup_adc(ADC_CLOCK_DIV_32); | 
      
      
         | 
         | 
        40 | 
           setup_spi(SPI_SS_DISABLED); | 
      
      
         | 
         | 
        41 | 
           setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1); | 
      
      
         | 
         | 
        42 | 
           setup_timer_1(T1_DISABLED); | 
      
      
         | 
         | 
        43 | 
           setup_timer_2(T2_DIV_BY_1,255,1); | 
      
      
         | 
         | 
        44 | 
           setup_ccp1(CCP_PWM); | 
      
      
         | 
         | 
        45 | 
           setup_ccp2(CCP_PWM); | 
      
      
         | 
         | 
        46 | 
           setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard | 
      
      
         | 
         | 
        47 | 
           setup_oscillator(OSC_8MHZ); | 
      
      
         | 
         | 
        48 | 
          | 
      
      
         | 
         | 
        49 | 
           set_pwm1_duty(0); | 
      
      
         | 
         | 
        50 | 
           set_pwm2_duty(0); | 
      
      
         | 
         | 
        51 | 
          | 
      
      
         | 
         | 
        52 | 
          | 
      
      
         | 
         | 
        53 | 
           output_high(LED1); | 
      
      
         | 
         | 
        54 | 
           output_high(LED2); | 
      
      
         | 
         | 
        55 | 
           output_high(LED3); | 
      
      
         | 
         | 
        56 | 
           output_high(LED4); | 
      
      
         | 
         | 
        57 | 
          | 
      
      
         | 
         | 
        58 | 
           ext_int_edge( L_TO_H );   // Sets up EXT | 
      
      
         | 
         | 
        59 | 
           enable_interrupts(INT_EXT); | 
      
      
         | 
         | 
        60 | 
           enable_interrupts(GLOBAL); | 
      
      
         | 
         | 
        61 | 
          | 
      
      
         | 
         | 
        62 | 
           //   lcd_init(); | 
      
      
         | 
         | 
        63 | 
          | 
      
      
         | 
         | 
        64 | 
        setpoint = 43;    | 
      
      
         | 
         | 
        65 | 
          | 
      
      
         | 
         | 
        66 | 
           while(true) | 
      
      
         | 
         | 
        67 | 
           { | 
      
      
         | 
         | 
        68 | 
              set_adc_channel(1); | 
      
      
         | 
         | 
        69 | 
              delay_us(100); | 
      
      
         | 
         | 
        70 | 
              napeti = read_adc(); | 
      
      
         | 
         | 
        71 | 
          | 
      
      
         | 
         | 
        72 | 
              if (napeti <= setpoint)  | 
      
      
         | 
         | 
        73 | 
              { | 
      
      
         | 
         | 
        74 | 
                 if (plneni < 300) plneni++; | 
      
      
         | 
         | 
        75 | 
                 output_low(LED2); | 
      
      
         | 
         | 
        76 | 
              } | 
      
      
         | 
         | 
        77 | 
              else | 
      
      
         | 
         | 
        78 | 
              { | 
      
      
         | 
         | 
        79 | 
                 if (plneni > 0) plneni--; | 
      
      
         | 
         | 
        80 | 
                 output_high(LED2); | 
      
      
         | 
         | 
        81 | 
              } | 
      
      
         | 
         | 
        82 | 
          | 
      
      
         | 
         | 
        83 | 
                 set_pwm1_duty(plneni); | 
      
      
         | 
         | 
        84 | 
                 set_pwm2_duty(1023-plneni); | 
      
      
         | 
         | 
        85 | 
          | 
      
      
         | 
         | 
        86 | 
              output_toggle(LED1); | 
      
      
         | 
         | 
        87 | 
              delay_ms(10); | 
      
      
         | 
         | 
        88 | 
            } | 
      
      
         | 
         | 
        89 | 
          | 
      
      
         | 
         | 
        90 | 
        } |