6 |
kaklik |
1 |
#include "D:\KAKLIK\programy\PIC_C\mereni\mys\PIC16F88\mys.h"
|
|
|
2 |
|
|
|
3 |
#define LCD_RS PIN_B3 // rizeni registru LCD displeje
|
|
|
4 |
#define LCD_E PIN_B0 // enable LCD displeje
|
|
|
5 |
#define LCD_DATA_LSB PIN_A0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
|
|
|
6 |
#include "C:\library\CCS\lcd.c"
|
|
|
7 |
|
|
|
8 |
#include "C:\library\kaklik\CCS\mys_chip_SPI.c" // modul umoznujici komunikaci s cidlem v mysi
|
|
|
9 |
|
|
|
10 |
void main()
|
|
|
11 |
{
|
|
|
12 |
unsigned int8 hodnota;
|
|
|
13 |
signed int16 x=0,y=0;
|
|
|
14 |
signed int8 xd,yd;
|
|
|
15 |
|
|
|
16 |
setup_adc_ports(NO_ANALOGS|VSS_VDD);
|
|
|
17 |
setup_adc(ADC_OFF);
|
|
|
18 |
setup_spi(SPI_MASTER|SPI_H_TO_L|SPI_XMIT_L_TO_H|SPI_CLK_DIV_64);
|
|
|
19 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
|
|
|
20 |
setup_timer_1(T1_DISABLED);
|
|
|
21 |
setup_timer_2(T2_DISABLED,0,1);
|
|
|
22 |
setup_comparator(NC_NC_NC_NC);
|
|
|
23 |
setup_vref(FALSE);
|
|
|
24 |
|
|
|
25 |
chip_write(OPERATION_MODE);
|
|
|
26 |
chip_write(0x00); // vypne sleep mode
|
|
|
27 |
|
|
|
28 |
chip_write(CONFIGURATION);
|
|
|
29 |
chip_write(0b00000110); // nastavi rozliseni na 600cpi
|
|
|
30 |
|
|
|
31 |
lcd_init();
|
|
|
32 |
Delay_ms(200);
|
|
|
33 |
|
|
|
34 |
While(true)
|
|
|
35 |
{
|
|
|
36 |
LCD_gotoxy(1,1);
|
|
|
37 |
printf(lcd_putc,"status: %X", hodnota);
|
|
|
38 |
delay_ms(20);
|
|
|
39 |
|
|
|
40 |
LCD_gotoxy(1,2);
|
|
|
41 |
printf(lcd_putc,"X=%ld Y=%ld", x, y);
|
|
|
42 |
delay_ms(20);
|
|
|
43 |
|
|
|
44 |
hodnota=chip_read(MOTION_STATUS);
|
|
|
45 |
|
|
|
46 |
xd=chip_read(DELTA_X); //precte z cidla zmenu polohy
|
|
|
47 |
yd=chip_read(DELTA_Y);
|
|
|
48 |
|
|
|
49 |
x+=xd;
|
|
|
50 |
y+=yd;
|
|
|
51 |
}
|
|
|
52 |
}
|