?? main.c
字號(hào):
#include<avr/io.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<util/delay.h>
#include<avr/wdt.h>
#include<avr/interrupt.h>
#include"uart.h"
#include"DS2174.h"
extern uint8_t Tx_Data_Pos;
extern uint8_t Tx_Data_Len;
extern uint8_t Rx_Data_Pos;
extern uint8_t Rx_Data_Len;
Point Temp_Num;
extern uint8_t Send_Buf[16];
extern uint8_t Recv_Buf[16];
void Config_Mode(void);
void Test_Mode(void);
#define SPI_PORT PORTB
#define SPI_DDR DDRB
#define SS 4
#define MOSI 5
#define MISO 6
#define SCK 7
#define F_CPU 8000000UL
void spi_slave_init(void)
{
SPI_DDR=_BV(MISO);
SPCR=_BV(SPIE)|_BV(SPE)|_BV(DORD);
}
int main(void)
{
memset(Send_Buf,sizeof(Send_Buf),0);
memset(Recv_Buf,sizeof(Recv_Buf),0);
cli(); //global interrupt mask
Uart_Init(9600);
spi_slave_init();
wdt_disable();
sei();
_delay_ms(10);
fun: Uart_Recv(1);
while(!Is_Recv_Complete());
switch(Recv_Buf[0])
{
case 1:Config_Mode();
break;
case 2:Test_Mode();
break;
default :
break;
}
Send_Buf[0]=Temp_Num->NumResult[0];
Send_Buf[1]=Temp_Num->NumResult[1];
Send_Buf[2]=Temp_Num->NumResult[2];
Send_Buf[3]=Temp_Num->NumResult[3];
Send_Buf[4]=Temp_Num->NumResult[4];
Send_Buf[5]=Temp_Num->NumResult[5];
Send_Buf[6]=Temp_Num->ErrorResult[0];
Send_Buf[7]=Temp_Num->ErrorResult[1];
Send_Buf[8]=Temp_Num->ErrorResult[2];
Send_Buf[9]=Temp_Num->ErrorResult[3];
Send_Buf[10]=Temp_Num->ErrorResult[4];
Send_Buf[11]=Temp_Num->ErrorResult[5];
Uart_Send(12);
while(!Is_Send_Complete());
while(1)
{
cli();
if(bit_is_set(UCSRA,RXC))
{
Recv_Buf[0]=UDR;
if(Recv_Buf[0]==0xFF)
{
goto fun;
}
sei();
Result_Send_DS2174();
}
else
{
sei();
Result_Send_DS2174();
}
}
return 0;
}
void Config_Mode(void)
{
uint8_t data;
Uart_Recv(9);
while(!Is_Recv_Complete());
BER_Write_DS2174(CONTROLR1,Recv_Buf[0]);
BER_Write_DS2174(CONTROLR2,Recv_Buf[1]);
BER_Write_DS2174(CONTROLR3,Recv_Buf[2]);
BER_Write_DS2174(CONTROLR4,Recv_Buf[3]);
BER_Write_DS2174(TSR0,Recv_Buf[4]);
BER_Write_DS2174(TSR1,Recv_Buf[5]);
BER_Write_DS2174(TSR2,Recv_Buf[6]);
BER_Write_DS2174(TSR3,Recv_Buf[7]);
BER_Write_DS2174(TR,Recv_Buf[8]);
if((data=BER_Read_DS2174(CONTROLR1))&0x01)
{
data&=~_BV(TL);
BER_Write_DS2174(CONTROLR1,data);
_delay_ms(100);
data|=_BV(TL);
BER_Write_DS2174(CONTROLR1,data);
_delay_ms(50);
}
else
{
_delay_ms(100);
data|=_BV(TL);
BER_Write_DS2174(CONTROLR1,data);
_delay_ms(50);
}
Test_Mode();
}
void Test_Mode(void)
{
Temp_Num=BER_ResultNum_DS2174();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -