Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
6 kaklik 1
// Prijimac
2
 
3
#include "main.h"
4
#include "..\common.h"
5
 
6
#DEFINE  LCD_RS         PIN_B1      // rizeni registru LCD displeje
7
#DEFINE  LCD_E          PIN_B0      // enable LCD displeje
8
#DEFINE  LCD_DATA_LSB   PIN_B2      // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
9
#INCLUDE "MYLCD.C"
10
 
11
#DEFINE  PRIJIMAC       PIN_A3      // pin na ktery je pripojen prijimac
12
#DEFINE  SERVO_X        PIN_A2      // pin na ktery je pripojeno servo
13
#DEFINE  SERVO_Y        PIN_B0
14
#INCLUDE "prijimac.c"
15
 
16
 
17
 
18
int8     x,y,tlacitka;
19
int8     xc,yc;          // pocitadla aktualizace x a y
20
int      e1,e2,e3,e4;    // pocitadla chyb - ladici
21
 
22
void main()
23
{
24
   lcd_init();                  // zinicializuj LCD display
25
   delay_ms(5);
26
   printf(lcd_putc,"Ahoj...");
27
   delay_ms(300);
28
 
29
   x  = 0;
30
   y  = 0;
31
   xc = 0;
32
   yc = 0;
33
   e1 = 0;
34
   e2 = 0;
35
   e3 = 0;
36
   e4 = 0;
37
 
38
 while (true)
39
 {
40
   int8 kanal, data;
41
 
42
   if (prijmi_ramec(&kanal,&data))
43
   e1++;
44
   else
45
   {
46
      switch (kanal)            // rozeskoc se podle adresy osy
47
      {
48
      case OSA_X:
49
         {
50
            x=data;
51
            xc++;
52
            break;
53
         };
54
      case OSA_Y:
55
         {
56
            y=data;
57
            yc++;
58
            break;
59
         };
60
      case TLs:
61
         {
62
            tlacitka=data;
63
            break;
64
         };
65
      };
66
 
67
 
68
      // ladici vypisy
69
 
70
      lcd_gotoxy(1,1);                       // vytiskni X a Y
71
      printf(lcd_putc,"X%2U %3U%3U%3U  ", x, xc, e1, e2);
72
      lcd_gotoxy(1,2);
73
      printf(lcd_putc,"Y%2U %3U%3U%3U  ", y, yc, e3, tlacitka);
74
 
75
      // ovladani serv
76
      output_high(SERVO_X);
77
      delay_ms(1);
78
      for (data=x; data--; data>0)
79
         delay_us(65);
80
      output_low(SERVO_X);
81
 
82
      output_high(SERVO_Y);
83
      delay_ms(1);
84
      for (data=y; data--; data>0)
85
         delay_us(65);
86
      output_low(SERVO_Y);
87
 
88
      for (data=30-x-y; data--; data>0)
89
         delay_us(65);
90
 
91
      // Vystupy tlacitek
92
 
93
//      if (bit_test(tlacitka,1)) output_high(pin_A2); else output_low(pin_A2);
94
      output_bit(PIN_A2,bit_test(tlacitka,1));
95
    }
96
 }
97
}
98
 
99