你用的是什么芯片
#include "header.h" /***************��������*************/ #define len 39 #define width 30 #define area 10 #define thick 2 #define Ultrasonic_In_Water 340 #define flow_meter_constant 1 uint8_t modbus_addr=0x50; //uint8_t modbus_addr=0x50; uint8_t modbue_addr1=0x51; uint8_t read_data[14]; uint8_t UART1RecvBuf[13]; //�����жϻ����� uint8_t Uart_SendData[8]; uint8_t send_data[10] = {0}; uint8_t flunt_data[16]={0}; //Flunt �������� uint8_t send_num; uint8_t buf[39]= {0}; uint8_t Flag_Timer = 0,t1=1,t2=2; //��ʱʱ���־ uint8_t Flag = 0,Flag_flunt; //���ڽ����жϱ�־ uint32_t tt1,tt2; uint8_t Flash_[10]={0,8,5,7,3}; void Power_Setup(void) //��Դ��ʼ������ { P1OUT |= (BIT6+BIT2+BIT3); P5OUT |= BIT0; } /*void Timer_Init(void) //��������ģʽ��������0XFFFF�����ж� { //TAIFG &= ~ BIT0; //��ʱ���жϱ�־λ��0 //TAIE = TASSEL0; //�����ʱ���ж� TACTL |= TASSEL_1 + ID_3; //SMCLK��ʱ��Դ��8��Ƶ����������ģʽ��������0XFFFF�����ж� TACCR0 = 1000; // Flag_Timer = 1; }*/ uint8_t speed(uint8_t T1,uint8_t T2) //��Һ�����ٺ��� { ulong speed = 0; int8_t value; value = T1-T2; if(value<0) value = 0-value; speed = value*Ultrasonic_In_Water*Ultrasonic_In_Water/(2*len); //temp = (T1-T2)/(T1 * T2); //speed = temp * speed; return speed; } uint8_t flunt_calculate(uint8_t value) { uint8_t flunt; flunt = flow_meter_constant*value*area; return flunt; } void Uart_Read(uint8_t* data,uint8_t num) { uint8_t i=0; uint16_t crc=0; uint8_t crc_l,crc_h; unsigned long spi_data = 0; if(data[0]== modbus_addr && (num == 8 || num== data[6]+9 ) ) //���ڵ�ַ�ж� { if(data[1]== 0x10) //����д����,Ԥ�� { crc=Crc16(data,data[6]+7); crc_l=crc; crc_h=crc>>8; if((data[data[6]+7]==crc_l) && (data[12]==crc_h)) //CRCУ�� { if(data[2]==0) { spi_data=01; //ȡ���ݸ�ֵ��spi_data spi_data=spi_data | data[7]; spi_data=(spi_data<<8) | data[8]; spi_data=(spi_data<<8) | data[9]; spi_data=(spi_data<<8) |data[10]; } else if((data[2]==1) & (data[3]==1)) //Ԥ��дTDC1000 { } else if((data[2]==2) & (data[3]==1)) //Ԥ��дTDC7200 { } //����λ�����ͱ��� for(i=0;i<8;i++) { send_data[i]=data[i]; } crc=Crc16(send_data,6); send_data[6]=crc&0xff; send_data[7]=(crc>>8)&0xff; send_num=8; Uart_Send(send_data,send_num); } } else if(data[1]==0x03) //���������� { crc=Crc16(data,6); crc_l=crc; crc_h=crc>>8; if((data[6]==crc_l) && (data[7]==crc_h)) //CRCУ�� { send_data[0]=data[0]; send_data[1]=data[1]; send_data[2]=0x4; if(data[2]==0) //Ԥ�� { //spi_data = //ͨ��SPI�����ݸ�ֵ��spi_data /*send_data[6]=spi_data & 0xff; send_data[5]=(spi_data>>8) &0xff; send_data[4]=(spi_data>>16) &0xff; send_data[3]=0x0;*/ } else if((data[2]==1) & (data[3]==1)) //Ԥ�� { } else if((data[2]==2) & (data[3]==1)) //��Flash �ϴ�������Ϣ { /*Flash�����ݵ����飬����UART_Send��������*/ /* Flash_ReadByte();*/ //spi_data = //spi_data = flunt_data[data[5]]; Flag_flunt = 1; spi_data = flunt_data[0]; send_data[6]=spi_data & 0xff; send_data[5]=(spi_data>>8) &0xff; send_data[4]=(spi_data>>16) &0xff; send_data[3]=0x0; } crc=Crc16(send_data,7); send_data[7]=(crc) & 0x00ff; send_data[8]=(crc>>8) & 0x00ff; send_num = 9; //Uart_Send(send_data,send_num); } } } } int main( void ) { while(1) { // Stop watchdog timer to prevent time out reset uint8_t i =0,num; uint8_t flunt_speed,flunt; uint8_t INT_Flag = 0; uint8_t Flash_data[64]={0}; //WDTCTL = WDTPW + WDTHOLD; WDT_Init(); Clock_Init(); Board_Init(); //�˿ڳ�ʼ�� SPI_Init(); TDC_Init(); //TDC1000,TDC7200��ʼ�� TDC_SPISetup(); TDC1000_Reg_Init(); TDC7200_Reg_Init(); capture_init(); for(i=0;i<10;i++) { Flash_[i] = TDC7200_SPIRead(i); } TDC1000_ENABLE_PxDIR |=TDC1000_ENABLE_PIN; TDC1000_En; TDC7200_SPIWrite(0,0x01); TDC7200_ENABLE_PxDIR |=TDC7200_ENABLE_PIN; TDC7200_En; delay_ms(10); HV_PWR_EN1_PxDIR |= HV_PWR_EN1_PIN; HV_PWR_EN2_PxDIR |= HV_PWR_EN2_PIN; HV_POWER1_OFF; HV_POWER2_OFF; HV_POWER1_ON; HV_POWER2_ON; delay_ms(10); t1 = TDC7200_SPIRead(0x02); t2 = TDC7200_SPIRead(0x03); if(Flag == 1) { tt1 = TDC7200_SPILongReadReg(0x10); tt2 = TDC7200_SPILongReadReg(0x12); } tt1 = TDC7200_SPILongReadReg(0x10); tt2 = TDC7200_SPILongReadReg(0x1A); _EINT(); //���ж� //while(1); } // Uart_Init(); // RS485_CTR0; /* while(1) { t1 = TDC1000_SPIRead(0x01); t2 = TDC7200_SPIRead(0x01); } */ // { //if(Flag == 1) // { // Flag =0; /*for(i=0;i<10;i++) { t1 = TDC7200_SPIRead(i); Flash_[i] =t1; Uart_SendByte(t1); }*/ // Uart_SendByte(0x02); //} //delay_us(10000); // t1 = TDC7200_SPIRead(0x02); // t2 = TDC7200_SPIRead(0x0); //_NOP(); //Uart_Send(Flash_,10); // } /* while(1) { delay_ms(10); //t1 = TDC7200_SPIRead(0x01); //t2 = TDC7200_SPIRead(0x02); Uart_SendByte(t1); Uart_SendByte(t2); } _DINT();*/ /* while(1) { Uart_Read(UART1RecvBuf,8); //��������Э����� INT_Flag = TDC7200_SPIRead(02); //Uart_Read(UART1RecvBuf,); if(Flag_flunt) //��λ��Ҫ��������ݣ�����־λ��1�� { //ͨ���жϱ�־λ�������һ�β�õ�������Ϣ�ϴ� Flag_flunt = 0; for(i=0;i<8;i++) { Uart_SendData[i] = send_data[i]; } Uart_Send(Uart_SendData,8); } if(INT_Flag == 1) //�жϲ����������һ�η��͡�����ʱ��Ļ��� { Flag_Timer = 0; t1 = TDC7200_SPIRead(0x10); //��ʱ�� t2 = TDC7200_SPIRead(0x1A); flunt_speed = speed(t1,t2); //����Һ������ flunt = flunt_calculate(flunt_speed); //�������� for(i=0;i<16;i++) //��������Ϣ�ݴ浽���� { if((flunt_data[i]!=0)&&(flunt_data[i+1]==0)) { num=i; flunt_data[num+1]=flunt; } else if(flunt_data[i]!=0) //flunt��������������������ϴ�ͬʱд��Flash { for(i=0;i<64;i++) { //Flash_data[i]= Flash_Read(); } Flash_RecordClear(); //���Flash for(i=0;i<24;i++) //д���ݵ�Flash { Flash_Write(Flash_data[i]); } Uart_Send(Flash_data,24); //����Flash���� } } } if(TDC_ERROR_PIN) //TDC1000���������� { //uchar Msg[6] = {'E','r','r','o','r','!'}; //Uart_Send(Msg,6); } _DINT(); }*/ // return 0; } #pragma vector=TIMERA0_VECTOR //����CCA0�ж� __interrupt void TACCR0_ISR() { //Flag =1; //switch(TAIV) // { // case 1: if(CCTL0 & CM_0) Flag =1; //} } /*#pragma vector = TIMERA0_VECTOR __interrupt void Timer_A(void) { TACTL |= TASSEL_1 + ID_3; //SMCLK��ʱ��Դ��8��Ƶ����������ģʽ��������0XFFFF�����ж� TACCR0 = 1000; //��װ��ֵ Flag_Timer = 1; }*/ /*#pragma vector=USART0RX_VECTOR __interrupt void SPI0_rx (void) { while ((IFG1 & URXIFG0) == 0); // USART0 TX buffer ready? Uart_SendByte(12); }*/ /*#pragma vector=UART0RX_VECTOR __interrupt void UART0_RX_ISR(void) { Flag =1; // RS485_CTR1; Flag= RXBUF0; Uart_SendByte(Flag); //Uart_SendByte(send_num); RS485_CTR0; uint8_t data_num =0,i; while(!(IFG2 & UTXIFG1)); if(data_num <14) { read_data[data_num]=RXBUF1; //�ѽ��յ����ݴ�ŵ����ջ����� data_num++; } if(read_data[0]== modbus_addr) data_num++; if(read_data[0]== modbus_addr && (((read_data[1]==03) && (data_num == 8) ) || ((read_data[1]==0x10) && (data_num== 13 )))) { __disable_interrupt(); for(i=0;i<13;i++) { UART1RecvBuf[i] = read_data[i]; //�ѻ��������ݴ�ŵ��������� } //Uart_read(read_data,data_num); __enable_interrupt(); data_num=0; for(uint8_t i=0;i<=12;i++) read_data[i]=0; } else if (read_data[0]!= modbus_addr|| data_num==13) { data_num=0; for(uint8_t i=0;i<=12; i++) read_data[i]=0; } }*/