#include<p18f452.h>
#include<delays.h>
#include<spi.h>
#include<usart.h>
#include<stdio.h>

#pragma config OSC=HSPLL,  PWRT=ON
#pragma config BOR=ON, BORV=42, WDT=OFF
#pragma config STVR=OFF, LVP=OFF, DEBUG=OFF
#pragma config CP0=OFF, CP1=OFF, CP2=OFF, CP3=OFF, CPB=OFF
#pragma config CPD=OFF, WRT0=OFF, WRT1=OFF, WRT2=OFF, WRT3=OFF
#pragma config EBTR1=OFF, EBTR2=OFF, EBTR3=OFF, EBTRB=OFF

int data1 = 0;
int data2 = 0;
int data3 = 0;
int data4 = 0;
int data5 = 0;

void SendRcvSPI(void);

void main(void)
{
char cmnd;
TRISC = 0x90;
LATCbits.LATC2 = 1;
OpenSPI(SPI_FOSC_16, MODE_01, SMPMID);
OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF &
USART_ASYNCH_MODE & USART_EIGHT_BIT &
USART_CONT_RX & USART_BRGH_HIGH, 129);

while(1)
{
SendRcvSPI();
Delay10KTCYx(500);
Delay10KTCYx(500);
data3 = data1 << 8;
data4 = data3 + data2;
data4 = data4 >> 3;
data5 = data4 / 4;
printf("Teplota = %d °C",data5);
     }
}

void SendRcvSPI(void){
LATCbits.LATC2 = 0;
SSPBUF = 0xff;
while(!SSPSTATbits.BF);
data1 = SSPBUF;
SSPBUF = 0xff;
while(SSPSTATbits.BF);
data2 = SSPBUF;
LATCbits.LATC2 = 1;
return( data1 );
}
