Blame | Last modification | View Log | Download
// Prijimac#include "main.h"#include "..\common.h"#DEFINE LCD_RS PIN_B1 // rizeni registru LCD displeje#DEFINE LCD_E PIN_B0 // enable LCD displeje#DEFINE LCD_DATA_LSB PIN_B2 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)#INCLUDE "MYLCD.C"#DEFINE PRIJIMAC PIN_A3 // pin na ktery je pripojen prijimac#DEFINE SERVO_X PIN_A2 // pin na ktery je pripojeno servo#DEFINE SERVO_Y PIN_B0#INCLUDE "prijimac.c"int8 x,y,tlacitka;int8 xc,yc; // pocitadla aktualizace x a yint e1,e2,e3,e4; // pocitadla chyb - ladicivoid main(){lcd_init(); // zinicializuj LCD displaydelay_ms(5);printf(lcd_putc,"Ahoj...");delay_ms(300);x = 0;y = 0;xc = 0;yc = 0;e1 = 0;e2 = 0;e3 = 0;e4 = 0;while (true){int8 kanal, data;if (prijmi_ramec(&kanal,&data))e1++;else{switch (kanal) // rozeskoc se podle adresy osy{case OSA_X:{x=data;xc++;break;};case OSA_Y:{y=data;yc++;break;};case TLs:{tlacitka=data;break;};};// ladici vypisylcd_gotoxy(1,1); // vytiskni X a Yprintf(lcd_putc,"X%2U %3U%3U%3U ", x, xc, e1, e2);lcd_gotoxy(1,2);printf(lcd_putc,"Y%2U %3U%3U%3U ", y, yc, e3, tlacitka);// ovladani servoutput_high(SERVO_X);delay_ms(1);for (data=x; data--; data>0)delay_us(65);output_low(SERVO_X);output_high(SERVO_Y);delay_ms(1);for (data=y; data--; data>0)delay_us(65);output_low(SERVO_Y);for (data=30-x-y; data--; data>0)delay_us(65);// Vystupy tlacitek// if (bit_test(tlacitka,1)) output_high(pin_A2); else output_low(pin_A2);output_bit(PIN_A2,bit_test(tlacitka,1));}}}