139 lines
2.8 KiB
C
139 lines
2.8 KiB
C
|
/*
|
|||
|
* Copyright (c) 2011 ITE Tech. Inc. All Rights Reserved.
|
|||
|
*/
|
|||
|
/**
|
|||
|
* @author Jim Tan
|
|||
|
* @version 1.0
|
|||
|
*/
|
|||
|
|
|||
|
#include "H/Function_Init.H"
|
|||
|
|
|||
|
#define STANDAED_K 0.069849
|
|||
|
#define Maxsize 3
|
|||
|
/**************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define Max_Weight 300000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ g
|
|||
|
#define Sensitivity 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mv/v
|
|||
|
#define Ex_U 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ,adcĬ<63><C4AC>ѡ<EFBFBD><D1A1><EFBFBD>ڲ<EFBFBD>vccΪ<63><CEAA><EFBFBD><EFBFBD> v
|
|||
|
#define ADC_PGA 128 //ADCоƬ<D0BE>˷ű<CBB7><C5B1><EFBFBD>
|
|||
|
#define ADC_MAX_NUM 7FFFFF //ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
STANDAED_K = (Ex_U/2/ADC_PGA/ADC_MAX_NUM) /(Sensitivity*Ex_U)*Max_Weight //Ϊ<>˱<EFBFBD><CBB1>⾫<EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
***************************************************************/
|
|||
|
|
|||
|
bit Key0_flag = 0;//ȫ<>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Function_Init.H,<2C><><EFBFBD>︳<EFBFBD><EFB8B3>ֵ
|
|||
|
bit Key1_flag = 0;
|
|||
|
|
|||
|
/////////////<2F><>ֵ<EFBFBD>˲<EFBFBD>3
|
|||
|
long Bubble_Sort_3(long* Data)
|
|||
|
{
|
|||
|
uchar i,j;
|
|||
|
long temp;
|
|||
|
for(i=0;i<2;i++)
|
|||
|
{
|
|||
|
for(j=0;j<2-i;j++)
|
|||
|
{
|
|||
|
if(Data[j]>Data[j+1])
|
|||
|
{
|
|||
|
temp = Data[j];
|
|||
|
Data[j] = Data[j+1];
|
|||
|
Data[j+1] = temp;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return Data[1];
|
|||
|
}
|
|||
|
|
|||
|
void main(void)
|
|||
|
{
|
|||
|
//////////////<2F>ò<EFBFBD><C3B2>ִ<EFBFBD><D6B4><EFBFBD>Ϊ<EFBFBD>ɼ<EFBFBD>ADC<44><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼֵ ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|||
|
// long read_buff[4];
|
|||
|
//
|
|||
|
// IO_Init();
|
|||
|
// Uart_Test();
|
|||
|
//
|
|||
|
// CS1237_Init_all();//ADC<44><43>ʼ<EFBFBD><CABC>
|
|||
|
// Delay_ms(300);//<2F>ȴ<EFBFBD>ADCоƬ<D0BE><C6AC>λ
|
|||
|
// CS1237_Config_all();//ADC<44><43><EFBFBD><EFBFBD>
|
|||
|
//
|
|||
|
// while(1)
|
|||
|
// {
|
|||
|
// for(i=0;i<4;i++)
|
|||
|
// {
|
|||
|
// send_buff[i] = zero_buff[i];
|
|||
|
// }
|
|||
|
// UART_SendAll(send_buff);
|
|||
|
// }
|
|||
|
|
|||
|
//////////////<2F>ò<EFBFBD><C3B2>ִ<EFBFBD><D6B4><EFBFBD>Ϊ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>۲<EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
|
|||
|
long send_buff[4];
|
|||
|
long zero_buff[4];
|
|||
|
long data_buff[4];
|
|||
|
long queue[4][3];
|
|||
|
int queue_p;
|
|||
|
float k = STANDAED_K; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
long uart_buff[4]=0;
|
|||
|
// uchar function_ret = 0;
|
|||
|
// long zero_sort[9];
|
|||
|
uchar i,j;
|
|||
|
uchar a = 20; //һ<><D2BB><EFBFBD>˲<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-100<30><30>ԽСԽƽ<D4BD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD> <20><><EFBFBD><EFBFBD>Ϊ50 1s<31>Ϳ<EFBFBD><CDBF>Խӽ<D4BD><D3BD><EFBFBD>ǧ<EFBFBD><C7A7>֮999 <20><><EFBFBD><EFBFBD>Ϊ20<32><30>Ҫ<EFBFBD>ȴ<EFBFBD>3s<33><73><EFBFBD>Ҳ<EFBFBD><D2B2>ܽӽ<DCBD>ǧ<EFBFBD><C7A7>֮999
|
|||
|
|
|||
|
IO_Init(); //IO<49><4F>ʼ<EFBFBD><CABC>,<2C>Ƚ<EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>δʹ<CEB4><CAB9><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD>ó<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Uart_Test(); //<2F><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
Timer_Test(); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
|
|||
|
CS1237_Init_all();//ADC<44><43>ʼ<EFBFBD><CABC>
|
|||
|
|
|||
|
Delay_ms(300);//<2F>ȴ<EFBFBD>ADCоƬ<D0BE><C6AC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|||
|
CS1237_Config_all();//ADC<44><43><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
zero_buff[i] = Read_CS1237_all(i);
|
|||
|
send_buff[i] = zero_buff[i];
|
|||
|
}
|
|||
|
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
for(j=0;j<Maxsize;j++)
|
|||
|
{
|
|||
|
queue[i][j] = Read_CS1237_all(i);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
while(1)
|
|||
|
{
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
queue[i][queue_p] = Read_CS1237_all(i);
|
|||
|
data_buff[i] = Bubble_Sort_3(queue[i]);
|
|||
|
}
|
|||
|
queue_p = (queue_p+1)%3;
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
send_buff[i] = ((100-a)*send_buff[i] + a*data_buff[i])/100; //һ<><D2BB><EFBFBD>˲<EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
if(Key0_flag)//ȥƤ<C8A5><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3s
|
|||
|
{
|
|||
|
Key0_flag=0;
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
zero_buff[i] = send_buff[i];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
for(i=0;i<4;i++)
|
|||
|
{
|
|||
|
uart_buff[i] =(send_buff[i]-zero_buff[i])*k;
|
|||
|
UART_Send_VOFA(uart_buff[i]);
|
|||
|
if(i<3)
|
|||
|
UART_SendByte(44);//','<27><><EFBFBD>ŷָ<C5B7>
|
|||
|
}
|
|||
|
UART_SendByte(10);//'\r'<27>ӻس<D3BB><D8B3><EFBFBD>
|
|||
|
UART_SendByte(13);//'\n'<27>ӻ<EFBFBD><D3BB>з<EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|