#include //PIC16F690 #define CE RC3 #define _XTAL_FREQ 10000000; __CONFIG( HS & WDTDIS & PWRTDIS & MCLRDIS &UNPROTECT & BORDIS & IESODIS & FCMDIS); unsigned char REC=0; ////////////////////////// void delay10(void){ int i; for(i=0;i<1666;i++){} } void WriteSPI(int x) { CE=1; SSPEN=1; SSPBUF=(unsigned char) x; while (BF==0) {;} REC=SSPBUF;//hodnoty H_byte,L_byte SSPEN=0; CE=0; } ///////////////INIT SPI PIC16F690 void init_spi(void){ CKP=0; CKE=1; SMP=1; WCOL=0; SSPOV=0; SSPM0=0; SSPM1=1; SSPM2=0; SSPM3=0; SSPEN=1; } ///////////////init DS1722 void INIT_DS(void){ CE=1; SSPBUF=0x80;//addr while (BF==0) {;} SSPBUF=0xE1;//nastaveni while (BF==0) {;} CE=0; }; ///////////////////////////// int main(void){ unsigned char data; ANSEL=0; ANSELH=0; TRISA=0b00000000; TRISB=0b00011000; TRISC=0b00000000; PORTA=0; PORTB=0; PORTC=0; CE=0; init_spi(); delay10(); INIT_DS(); delay10(); while(1){ WriteSPI(0x00);//nastaveni WriteSPI(0x01);//H_byte WriteSPI(0x02);//L_byte } }