Subversion Repositories svnkaklik

Rev

Rev 482 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
470 kaklik 1
#include "main.h"
2
#define LED_K1       PIN_A2      // anody segmentovek
3
#define LED_K2       PIN_A1
4
#include "1wire.c"
5
 
482 kaklik 6
 
472 kaklik 7
void main()
8
{
482 kaklik 9
//long duty;           // strida PWM
470 kaklik 10
int znak1;           // hodnota jednotek
11
int znak2;           // hodnota desitek
472 kaklik 12
int znak;            // zobrazovany znak
482 kaklik 13
int i, n, temp;            // i pro for
14
int8 temp1, temp2;
15
signed int16 temp3;
470 kaklik 16
 
482 kaklik 17
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
471 kaklik 18
   setup_adc(ADC_OFF);
19
   setup_spi(FALSE);
20
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
21
   setup_timer_1(T1_DISABLED);
22
   setup_timer_2(T2_DISABLED,0,1);
23
   setup_comparator(NC_NC_NC_NC);
24
   setup_vref(FALSE);
25
 
26
   while(TRUE)
27
   {
482 kaklik 28
     temp3 = make16(temp2, temp1);
29
     temp=(int) (temp3/16);
30
     znak2=(int) (temp/10);               //vydelit deseti a zaokrouhlit dolu = desitky
31
     znak1=temp-znak2*10;                 //jednotky rozdil teploty a desitek
32
   for (n=0;n<=2;n++)
33
   {
34
     for (i=0;i<=2;i++) {	               //cyklus zobrazeni udaje
35
         if (i==1) {
36
         output_low(LED_K2);		         //dva bloky pro sepnuti aktivniho segmentu na 1
37
          if (n==0){
38
            onewire_reset();
39
            onewire_write(0xCC);
40
            onewire_write(0x44);
41
           }
472 kaklik 42
         output_high(LED_K1);
43
         znak=znak1;
482 kaklik 44
 
472 kaklik 45
         }
482 kaklik 46
         if (i==2) {
472 kaklik 47
         output_low(LED_K1);
482 kaklik 48
          if (n==0){
49
            onewire_reset();
50
            onewire_write(0xCC);
51
            onewire_write(0xBE);
52
            temp1 = onewire_read();
53
            temp2 = onewire_read();         
54
            }
472 kaklik 55
         output_high(LED_K2);
56
         znak=znak2;
57
         }
482 kaklik 58
            if (temp>=85)
59
             {
60
             output_high(LED_K1);
61
             output_high(LED_K2);
62
             output_b(0b00001101);
63
             }
64
            else 
65
             {
66
             if (znak==1) output_b(0b11110010);	  //blok if pro rozeznani zobrazeneho znaku
67
             if (znak==2) output_b(0b01001000);
68
             if (znak==3) output_b(0b01100000);
69
             if (znak==4) output_b(0b00110010);
70
             if (znak==5) output_b(0b00100100);
71
             if (znak==6) output_b(0b00000100);
72
             if (znak==7) output_b(0b11110000);
73
             if (znak==8) output_b(0b00000000);
74
             if (znak==9) output_b(0b00100000);
75
             if (znak==0) output_b(0b10000000);
76
             }
77
         Delay_ms(6);
472 kaklik 78
     }
482 kaklik 79
 
80
    }
81
//     duty=104+(2,31*temp);                     // .000416/(16*(1/4000000)) ....PWM presne podle helpu
470 kaklik 82
//     set_pwm1_duty(duty);
83
   }
84
}