Subversion Repositories svnkaklik

Rev

Rev 149 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 149 Rev 150
1
#include ".\camerus.h"
1
#include ".\camerus.h"
2
 
2
 
3
#USE FAST_IO (C)
3
#USE FAST_IO (C)
4
 
4
 
-
 
5
// kroutitka
-
 
6
#define  CERVENA  1  // AN1
-
 
7
#define  CERNA    4  // AN4
-
 
8
#define  ZELENA   3  // AN3
-
 
9
#define  MODRA    0  // AN0
-
 
10
 
-
 
11
// I/O
5
#define LED    PIN_C0
12
#define LED    PIN_C0
6
#define HREF   PIN_C5
13
#define HREF   PIN_C5
7
#define PIX    PIN_C6
14
#define PIX    PIN_C6
8
#define SERVO  PIN_B7
15
#define SERVO  PIN_B7
9
 
16
 
10
void main()
17
void main()
11
{
18
{
12
   int8 cas;
19
   int8 cas;
-
 
20
   int16 offset;
13
 
21
 
14
   setup_adc_ports(ALL_ANALOG);
22
   setup_adc_ports(ALL_ANALOG);
15
   setup_adc(ADC_CLOCK_INTERNAL);
23
   setup_adc(ADC_CLOCK_INTERNAL);
16
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
24
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
17
   setup_timer_1(T1_DISABLED);
25
   setup_timer_1(T1_DISABLED);
18
   setup_timer_2(T2_DIV_BY_16,255,1);
26
   setup_timer_2(T2_DIV_BY_16,255,1);
19
   setup_ccp1(CCP_PWM); // RC1
27
   setup_ccp1(CCP_PWM); // RC1
20
   setup_ccp2(CCP_PWM); // RC2
28
   setup_ccp2(CCP_PWM); // RC2
21
   setup_comparator(NC_NC_NC_NC);
29
   setup_comparator(NC_NC_NC_NC);
22
   setup_vref(FALSE);
30
   setup_vref(FALSE);
23
 
31
 
24
   set_tris_c(0b11111000);
32
   set_tris_c(0b11111000);
25
 
33
 
26
   output_high(LED);
34
   output_high(LED);
27
 
35
 
28
   i2c_start();      // Reset
36
   i2c_start();      // Reset
29
   i2c_write(0xC0);
37
   i2c_write(0xC0);
30
   i2c_write(0x12);
38
   i2c_write(0x12);
31
   i2c_write(0x80 | 0x24);
39
   i2c_write(0x80 | 0x24);
32
   i2c_stop();
40
   i2c_stop();
33
 
41
 
34
   i2c_start();      // BW
42
   i2c_start();      // BW
35
   i2c_write(0xC0);
43
   i2c_write(0xC0);
36
   i2c_write(0x28);
44
   i2c_write(0x28);
37
   i2c_write(0b01000001);
45
   i2c_write(0b01000001);
38
   i2c_stop();
46
   i2c_stop();
39
 
47
 
40
   i2c_start();      // Contrast
48
   i2c_start();      // Contrast
41
   i2c_write(0xC0);
49
   i2c_write(0xC0);
42
   i2c_write(0x05);
50
   i2c_write(0x05);
43
   i2c_write(0xFF);
51
   i2c_write(0xFF);
44
   i2c_stop();
52
   i2c_stop();
45
 
53
 
46
   i2c_start();      // Brightness
54
   i2c_start();      // Brightness
47
   i2c_write(0xC0);
55
   i2c_write(0xC0);
48
   i2c_write(0x06);
56
   i2c_write(0x06);
49
   i2c_write(0x80);
57
   i2c_write(0x80);
50
   i2c_stop();
58
   i2c_stop();
51
 
59
 
52
/*
60
/*
53
   i2c_start();      // Band Filter
61
   i2c_start();      // Band Filter
54
   i2c_write(0xC0);
62
   i2c_write(0xC0);
55
   i2c_write(0x2D);
63
   i2c_write(0x2D);
56
   i2c_write(0x04 | 0x03);
64
   i2c_write(0x04 | 0x03);
57
   i2c_stop();
65
   i2c_stop();
58
 
66
 
59
   i2c_start();      // 4-bit, (CLK/4)
67
   i2c_start();      // 4-bit, (CLK/4)
60
   i2c_write(0xC0);
68
   i2c_write(0xC0);
61
   i2c_write(0x3E);
69
   i2c_write(0x3E);
62
   i2c_write(0x10 | 0x80);
70
   i2c_write(0x10 | 0x80);
63
   i2c_stop();
71
   i2c_stop();
64
*/
72
*/
65
   i2c_start();      // VSTRT
73
   i2c_start();      // VSTRT
66
   i2c_write(0xC0);
74
   i2c_write(0xC0);
67
   i2c_write(0x19);
75
   i2c_write(0x19);
68
   i2c_write(45);
76
   i2c_write(45);
69
   i2c_stop();
77
   i2c_stop();
70
 
78
 
71
   i2c_start();      // VEND
79
   i2c_start();      // VEND
72
   i2c_write(0xC0);
80
   i2c_write(0xC0);
73
   i2c_write(0x1A);
81
   i2c_write(0x1A);
74
   i2c_write(45);
82
   i2c_write(45);
75
   i2c_stop();
83
   i2c_stop();
76
 
84
 
77
   output_low(LED);
85
   output_low(LED);
-
 
86
   
-
 
87
   cas=128;
78
 
88
 
79
   while(true)
89
   while(true)
80
   {
90
   {
81
      while(!input(HREF));
91
      while(!input(HREF));
82
      set_timer0(0);
92
      set_timer0(0);
83
      while(input(HREF))
93
      while(input(HREF))
84
      {
94
      {
85
        if(!input(PIX))
95
        if(!input(PIX))
86
        {
96
        {
87
          cas=get_timer0();
97
          cas=get_timer0();
88
          break;
98
          break;
89
        }
99
        }
90
      };
100
      };
-
 
101
 
-
 
102
      cas=255-cas;
-
 
103
      
-
 
104
      set_adc_channel(MODRA);
-
 
105
      Delay_ms(1);
-
 
106
      offset=read_adc();
91
      output_high(SERVO);
107
      output_high(SERVO);
92
      delay_us(1000);
108
      delay_us(900);
-
 
109
      delay_us(offset);
93
      delay_us(cas);
110
      delay_us(cas);
94
      delay_us(cas);
111
      delay_us(cas);
95
      delay_us(cas);
112
      delay_us(cas);
96
      output_LOW(SERVO);     
113
      output_LOW(SERVO);
97
      set_pwm1_duty(cas);
114
      set_pwm1_duty(cas);
98
      set_pwm2_duty(255-cas);
115
      set_pwm2_duty(255-cas);
99
   };
116
   };
100
}
117
}