| 470 | kaklik | 1 | #include "main.h"
 | 
        
           |  |  | 2 |   | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 | #define LED_K1       PIN_A2      // anody segmentovek
 | 
        
           |  |  | 5 | #define LED_K2       PIN_A1
 | 
        
           |  |  | 6 | //#define LED_D1       PIN_A1      // katody segmentovek ///ted uz nepotreba
 | 
        
           |  |  | 7 | //#define LED_D2       PIN_A2
 | 
        
           |  |  | 8 | //#define LED_D3       PIN_A3
 | 
        
           |  |  | 9 | //#define LED_D4       PIN_A4
 | 
        
           |  |  | 10 | //#define LED_D5       PIN_A5
 | 
        
           |  |  | 11 | //#define LED_D6       PIN_A6
 | 
        
           |  |  | 12 | //#define LED_D7       PIN_A7
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 | #include "1wire.c"
 | 
        
           |  |  | 15 | #include "ds1820.c"
 | 
        
           |  |  | 16 |   | 
        
           | 471 | kaklik | 17 | int temp;            // zaokrouhlena teplota
 | 
        
           |  |  | 18 |   | 
        
           |  |  | 19 | #int_RTCC
 | 
        
           |  |  | 20 | RTCC_isr()
 | 
        
           | 470 | kaklik | 21 | {
 | 
        
           | 471 | kaklik | 22 | int znak;            // zobrazovany znak
 | 
        
           |  |  | 23 | int i;               // i pro for
 | 
        
           | 470 | kaklik | 24 | int znak1;           // hodnota jednotek
 | 
        
           |  |  | 25 | int znak2;           // hodnota desitek
 | 
        
           |  |  | 26 |   | 
        
           |  |  | 27 |      if (temp<10)
 | 
        
           |  |  | 28 |      {         //pro teploty 0-10°C
 | 
        
           |  |  | 29 |        znak1=temp;
 | 
        
           |  |  | 30 |        znak2=0;
 | 
        
           |  |  | 31 |      }
 | 
        
           |  |  | 32 |      else
 | 
        
           |  |  | 33 |      {
 | 
        
           |  |  | 34 |        znak2=(int) (temp/10);               //vydelit deseti a zaokrouhlit dolu = desitky
 | 
        
           |  |  | 35 |        znak1=temp-znak2*10;     //jednotky rozdil teploty a desitek
 | 
        
           |  |  | 36 |      }
 | 
        
           |  |  | 37 |   | 
        
           |  |  | 38 |          output_low(LED_K2);		  //dva bloky pro sepnuti aktivniho segmentu na 1
 | 
        
           |  |  | 39 |          output_high(LED_K1);
 | 
        
           | 471 | kaklik | 40 |          if (znak1==1) output_b(0b11110011);	  //blok if pro rozeznani zobrazeneho znaku
 | 
        
           |  |  | 41 |          if (znak1==2) output_b(0b01001001);
 | 
        
           |  |  | 42 |          if (znak1==3) output_b(0b01100001);
 | 
        
           |  |  | 43 |          if (znak1==4) output_b(0b00110011);
 | 
        
           |  |  | 44 |          if (znak1==5) output_b(0b00100101);
 | 
        
           |  |  | 45 |          if (znak1==6) output_b(0b00000101);
 | 
        
           |  |  | 46 |          if (znak1==7) output_b(0b11110001);
 | 
        
           |  |  | 47 |          if (znak1==8) output_b(0b00000001);
 | 
        
           |  |  | 48 |          if (znak1==9) output_b(0b00100001);
 | 
        
           |  |  | 49 |          if (znak1==0) output_b(0b10000001);
 | 
        
           | 470 | kaklik | 50 |          output_low(LED_K1);
 | 
        
           |  |  | 51 |          output_high(LED_K2);
 | 
        
           | 471 | kaklik | 52 |          if (znak2==1) output_b(0b11110011);	  //blok if pro rozeznani zobrazeneho znaku
 | 
        
           |  |  | 53 |          if (znak2==2) output_b(0b01001001);
 | 
        
           |  |  | 54 |          if (znak2==3) output_b(0b01100001);
 | 
        
           |  |  | 55 |          if (znak2==4) output_b(0b00110011);
 | 
        
           |  |  | 56 |          if (znak2==5) output_b(0b00100101);
 | 
        
           |  |  | 57 |          if (znak2==6) output_b(0b00000101);
 | 
        
           |  |  | 58 |          if (znak2==7) output_b(0b11110001);
 | 
        
           |  |  | 59 |          if (znak2==8) output_b(0b00000001);
 | 
        
           |  |  | 60 |          if (znak2==9) output_b(0b00100001);
 | 
        
           |  |  | 61 |          if (znak2==0) output_b(0b10000001);
 | 
        
           |  |  | 62 |   | 
        
           |  |  | 63 | }
 | 
        
           | 470 | kaklik | 64 |   | 
        
           | 471 | kaklik | 65 | void main()
 | 
        
           |  |  | 66 | {
 | 
        
           |  |  | 67 | long duty;           // strida PWM
 | 
        
           |  |  | 68 |   | 
        
           |  |  | 69 |   | 
        
           |  |  | 70 |    setup_adc_ports(NO_ANALOGS|VSS_VDD);   // parametry
 | 
        
           |  |  | 71 |    setup_adc(ADC_OFF);
 | 
        
           |  |  | 72 |    setup_spi(FALSE);
 | 
        
           |  |  | 73 |    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
 | 
        
           |  |  | 74 |    setup_timer_1(T1_DISABLED);
 | 
        
           |  |  | 75 |    setup_timer_2(T2_DISABLED,0,1);
 | 
        
           |  |  | 76 |    setup_comparator(NC_NC_NC_NC);
 | 
        
           |  |  | 77 |    setup_vref(FALSE);
 | 
        
           |  |  | 78 |    setup_oscillator(False);
 | 
        
           |  |  | 79 |    enable_interrupts(INT_RTCC);
 | 
        
           |  |  | 80 |    enable_interrupts(GLOBAL);
 | 
        
           |  |  | 81 |   | 
        
           |  |  | 82 |    while(TRUE)
 | 
        
           |  |  | 83 |    {
 | 
        
           |  |  | 84 |      temp = 19;
 | 
        
           |  |  | 85 |   | 
        
           |  |  | 86 |   | 
        
           |  |  | 87 |   | 
        
           |  |  | 88 |   | 
        
           | 470 | kaklik | 89 | //     duty=104+(2,31*temperature); // .000416/(16*(1/4000000)) ....PWM presne podle helpu
 | 
        
           |  |  | 90 | //     set_pwm1_duty(duty);
 | 
        
           |  |  | 91 |    }
 | 
        
           |  |  | 92 |   | 
        
           |  |  | 93 |   | 
        
           |  |  | 94 |   | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 | }
 |