Subversion Repositories svnkaklik

Rev

Rev 471 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

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