修改小延时直接用nop,单节点

This commit is contained in:
2025-11-18 14:47:55 +08:00
parent 4ed261893e
commit 4f4a1635ab
3 changed files with 167 additions and 153 deletions

8
User.c
View File

@@ -1,4 +1,4 @@
#include "MAIN.H" #include "MAIN.H"-
#include "RTC.H" #include "RTC.H"
#include "temperature.H" #include "temperature.H"
#include <string.h> #include <string.h>
@@ -380,13 +380,13 @@ void CanRXTX(void)
} }
GetTemp();//1s<31>ɼ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> GetTemp();//1s<31>ɼ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
UnSwSample_1.bit_data.emergency_stop_switch = STOP_PIN; UnSwSample_1.bit_data.emergency_stop_switch = 0;
UnSwSample_1.bit_data.High_voltage_switch = ~WAKE_UP_PIN; UnSwSample_1.bit_data.High_voltage_switch = 1;
UnSwSample_1.bit_data.CH03 = flg_wake_ecu; UnSwSample_1.bit_data.CH03 = flg_wake_ecu;
if(1 == flg_KGF)//<2F>ȴ<EFBFBD>KGF<47><46><EFBFBD>Ѻ<EFBFBD><D1BA>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if(1 == flg_KGF)//<2F>ȴ<EFBFBD>KGF<47><46><EFBFBD>Ѻ<EFBFBD><D1BA>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{ {
// canSendTo(DF_SwTxTemp,(ubyte *)&UnSwSample_1.arr[0]); //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ɼ<EFBFBD> canSendTo(DF_SwTxTemp,(ubyte *)&UnSwSample_1.arr[0]); //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ɼ<EFBFBD>
} }
} }

View File

@@ -89,12 +89,12 @@ unsigned char read_bit(void)
P3_DIR = P3_DIR | 0x20; // load direction register <20>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬ P3_DIR = P3_DIR | 0x20; // load direction register <20>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬
DQ = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> DQ = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD>
Delay_us(1); // <20><><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 3us DELAY_3US(); // <20><><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 3us
DQ = 1; // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> DQ <20><><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ = 1; // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> DQ <20><><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SFR_PAGE(_pp0, noSST); // switch to page 0 SFR_PAGE(_pp0, noSST); // switch to page 0
P3_DIR = P3_DIR & 0xDF;// load direction register P3_DIR = P3_DIR & 0xDF;// load direction register
Delay_us(3); // <20>ȴ<EFBFBD> 10us ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD> DELAY_10US(); // <20>ȴ<EFBFBD> 10us ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>
res = DQ; res = DQ;
Delay_us(27); // ʱ<><CAB1>ĩβ <20>ȴ<EFBFBD> Delay_us(27); // ʱ<><CAB1>ĩβ <20>ȴ<EFBFBD>
@@ -109,11 +109,11 @@ void write_bit(char bitval)
P3_DIR = P3_DIR | 0x20; // load direction register <20>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬ P3_DIR = P3_DIR | 0x20; // load direction register <20>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬
DQ = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> DQ = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD>
Delay_us(2); // <20><><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5us DELAY_3US(); // <20><><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5us
if(bitval == 1) DQ =1; // <20><><EFBFBD><EFBFBD> д 1<><31><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> if(bitval == 1) DQ =1; // <20><><EFBFBD><EFBFBD> д 1<><31><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD>
Delay_us(25); // <20><><EFBFBD><EFBFBD> д 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> 60 us Delay_us(30); // <20><><EFBFBD><EFBFBD> д 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DQ <20><><EFBFBD><EFBFBD> 60 us
DQ = 1; // <20>ͷ<EFBFBD> DQ <20><><EFBFBD><EFBFBD> DQ = 1; // <20>ͷ<EFBFBD> DQ <20><><EFBFBD><EFBFBD>
Delay_us(5); // <20><>д 0<><30><EFBFBD>ָ<EFBFBD> ʱ<><CAB1> 10us DELAY_10US(); // <20><>д 0<><30><EFBFBD>ָ<EFBFBD> ʱ<><CAB1> 10us
} }
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
@@ -268,63 +268,35 @@ BOOL ConvertTemp(void)
* @param iTemp<6D><70><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>16λ<36>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * @param iTemp<6D><70><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>16λ<36>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <20><>״̬ * @retval <20><>״̬
*/ */
//BOOL ReadTempWaiting(uword *iTemp) BOOL ReadTempWaiting(uword *iTemp)
//{ {
// ubyte scrb[sizeof(M601_SCRATCHPAD_READ)]; ubyte scrb[sizeof(M601_SCRATCHPAD_READ)];
// M601_SCRATCHPAD_READ *scr = (M601_SCRATCHPAD_READ *) scrb; M601_SCRATCHPAD_READ *scr = (M601_SCRATCHPAD_READ *) scrb;
// /*<2A><>9<EFBFBD><39><EFBFBD>ֽڡ<D6BD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ǰ8<C7B0><38><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>--CRC<52><43>*/ /*<2A><>9<EFBFBD><39><EFBFBD>ֽڡ<D6BD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ǰ8<C7B0><38><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>--CRC<52><43>*/
// if(M601_ReadScratchpad_SkipRom(scrb) == FALSE) if(M601_ReadScratchpad_SkipRom(scrb) == FALSE)
// { {
// UnSwSample_1.bit_data.temperature[1] = 1; UnSwSample_1.bit_data.temperature[1] = 1;
// return FALSE; /*<2A><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʧ<EFBFBD><CAA7>*/ return FALSE; /*<2A><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʧ<EFBFBD><CAA7>*/
// } }
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>ǰ8<C7B0><38><EFBFBD>ֽڵ<D6BD>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յĵ<D5B5>9<EFBFBD><39>CRC<52>ֽڱȽϡ<C8BD>*/ /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>ǰ8<C7B0><38><EFBFBD>ֽڵ<D6BD>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յĵ<D5B5>9<EFBFBD><39>CRC<52>ֽڱȽϡ<C8BD>*/
// UnSwSample_1.bit_data.temperature[1] = scrb[8]; UnSwSample_1.bit_data.temperature[1] = scrb[8];
// if(scrb[8] != MY_OW_CRC8(scrb, 8)) // if(scrb[8] != MY_OW_CRC8(scrb, 8))
// { // {
// return FALSE; /*CRC<52><43>֤δͨ<CEB4><CDA8>*/ // return FALSE; /*CRC<52><43>֤δͨ<CEB4><CDA8>*/
// } // }
//// UnSwSample_1.bit_data.temperature[1] = *iTemp; // UnSwSample_1.bit_data.temperature[1] = *iTemp;
// /*<2A><><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽںϳ<DABA>Ϊ16λ<36>֡<EFBFBD>*/ /*<2A><><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽںϳ<DABA>Ϊ16λ<36>֡<EFBFBD>*/
// *iTemp = ((uword)(scr->T_msb) << 8) | scr->T_lsb; *iTemp = ((uword)(scr->T_msb) << 8) | scr->T_lsb;
//
// return TRUE; return TRUE;
//} }
/**
* @brief <20><><EFBFBD><EFBFBD><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param <20><>
* @retval ״̬
*/
//BOOL GetTemp(void)
//{
// static uword intTemp = 0;//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Լ<EFBFBD><D4BC>
// float fTemp;
// int signedInt_f_tem = 0;
////---------------------------------------
// intTemp = 0;
// if(ConvertTemp() == FALSE) return FALSE;
// Delay_us(6000);
// ReadTempWaiting(&intTemp);
// signedInt_f_tem = (int)intTemp;
//
// fTemp = ( (float)(signedInt_f_tem)/256.0 ) + 40.0;
//
//
//// fTemp = M601_OutputtoTemp(signedInt_f_tem);
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// signedInt_f_tem = (int)(fTemp*10);
//// <20><EFBFBD> <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// UnSwSample_1.bit_data.temperature[0] = signedInt_f_tem;
// return TRUE;
//}
/**----------------------------------------------------------------------- /**-----------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>bit<69><74><EFBFBD><EFBFBD>ȡ˳<C8A1>򣺵<EFBFBD>λ-><3E><>λ<EFBFBD><CEBB> * @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>bit<69><74><EFBFBD><EFBFBD>ȡ˳<C8A1>򣺵<EFBFBD>λ-><3E><>λ<EFBFBD><CEBB>
* @param <20><> * @param <20><>
@@ -460,26 +432,58 @@ BOOL M601_ReadScratchpad(unsigned char* scr, unsigned char j)
* @param j <20><>search<63><68><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB>оƬ<D0BE><C6AC>j<EFBFBD><6A>ֵ0 * @param j <20><>search<63><68><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB>оƬ<D0BE><C6AC>j<EFBFBD><6A>ֵ0
* @retval <20><>״̬ * @retval <20><>״̬
*/ */
BOOL ReadTempWaiting(unsigned short* iTemp, unsigned char j) //BOOL ReadTempWaiting(unsigned short* iTemp, unsigned char j)
{ //{
unsigned char scrb[sizeof(M601_SCRATCHPAD_READ)]; // unsigned char scrb[sizeof(M601_SCRATCHPAD_READ)];
M601_SCRATCHPAD_READ* scr = (M601_SCRATCHPAD_READ*)scrb; // M601_SCRATCHPAD_READ* scr = (M601_SCRATCHPAD_READ*)scrb;
/*<2A><>9<EFBFBD><39><EFBFBD>ֽڡ<D6BD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ǰ8<C7B0><38><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>--CRC<52><43>*/ // /*<2A><>9<EFBFBD><39><EFBFBD>ֽڡ<D6BD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ǰ8<C7B0><38><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>--CRC<52><43>*/
if (M601_ReadScratchpad(scrb, j) == 0) // if (M601_ReadScratchpad(scrb, j) == 0)
{ // {
return FALSE; /*<2A><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʧ<EFBFBD><CAA7>*/ // return FALSE; /*<2A><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʧ<EFBFBD><CAA7>*/
} // }
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>ǰ8<C7B0><38><EFBFBD>ֽڵ<D6BD>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յĵ<D5B5>9<EFBFBD><39>CRC<52>ֽڱȽϡ<C8BD>*/ // /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>ǰ8<C7B0><38><EFBFBD>ֽڵ<D6BD>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յĵ<D5B5>9<EFBFBD><39>CRC<52>ֽڱȽϡ<C8BD>*/
if (scrb[8] != MY_OW_CRC8(scrb, 8)) // if (scrb[8] != MY_OW_CRC8(scrb, 8))
{ // {
return FALSE; /*CRC<52><43>֤δͨ<CEB4><CDA8>*/ // return FALSE; /*CRC<52><43>֤δͨ<CEB4><CDA8>*/
} // }
/*<2A><><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽںϳ<DABA>Ϊ16λ<36>֡<EFBFBD>*/ // /*<2A><><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽںϳ<DABA>Ϊ16λ<36>֡<EFBFBD>*/
*iTemp = (unsigned short)scr->T_msb << 8 | scr->T_lsb; // *iTemp = (unsigned short)scr->T_msb << 8 | scr->T_lsb;
// return TRUE;
//}
/**
* @brief <20><><EFBFBD><EFBFBD><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param <20><>
* @retval ״̬
*/
BOOL GetTemp(void)
{
static uword intTemp = 0;//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Լ<EFBFBD><D4BC>
float fTemp;
int signedInt_f_tem = 0;
//---------------------------------------
// intTemp = 0;
if(ConvertTemp() == FALSE) return FALSE;
Delay_us(6500);
ReadTempWaiting(&intTemp);
signedInt_f_tem = (int)intTemp;
fTemp = ( (float)(signedInt_f_tem)/256.0 ) + 40.0;
// fTemp = M601_OutputtoTemp(signedInt_f_tem);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
signedInt_f_tem = (int)(fTemp*10);
// <20><EFBFBD> <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UnSwSample_1.bit_data.temperature[0] = signedInt_f_tem;
return TRUE; return TRUE;
} }
/** /**
@@ -487,32 +491,32 @@ BOOL ReadTempWaiting(unsigned short* iTemp, unsigned char j)
* @param <20><> * @param <20><>
* @retval ״̬ * @retval ״̬
*/ */
BOOL GetTemp(void) //BOOL GetTemp(void)
{ //{
float fTemp; // float fTemp;
static unsigned int iTemp[MAXNUM]; // static unsigned int iTemp[MAXNUM];
int i; // int i;
int signedInt_f_tem = 0; // int signedInt_f_tem = 0;
//---------------------------------------------------- ////----------------------------------------------------
// memset(romid, 0, sizeof(romid));//<2F><><EFBFBD><EFBFBD> //// memset(romid, 0, sizeof(romid));//<2F><><EFBFBD><EFBFBD>
//
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬһ<C6AC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ // /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬһ<C6AC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
if(ConvertTemp() == FALSE) return FALSE; // if(ConvertTemp() == FALSE) return FALSE;
Delay_us(6500); // Delay_us(6500);
//
for (i = 0; i < RomNum; i++) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ // for (i = 0; i < RomNum; i++) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ
{ // {
iTemp[i] = 0; // iTemp[i] = 0;
/*<2A><><EFBFBD><EFBFBD>*/ // /*<2A><><EFBFBD><EFBFBD>*/
ReadTempWaiting(&iTemp[i], i); // ReadTempWaiting(&iTemp[i], i);
fTemp = M601_OutputtoTemp((int)iTemp[i]); //<2F><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD> // fTemp = M601_OutputtoTemp((int)iTemp[i]); //<2F><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
signedInt_f_tem = (int)(fTemp*10); // signedInt_f_tem = (int)(fTemp*10);
// <20><EFBFBD> <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // // <20><EFBFBD> <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UnSwSample_1.bit_data.temperature[1] = (unsigned int)signedInt_f_tem; // UnSwSample_1.bit_data.temperature[i] = (unsigned int)signedInt_f_tem;
} // }
return TRUE; // return TRUE;
} //}

View File

@@ -4,6 +4,16 @@
#include "MAIN.H" #include "MAIN.H"
#define DELAY_3US() _nop_(); _nop_(); _nop_()
#define DELAY_5US() _nop_(); _nop_(); _nop_(); _nop_(); _nop_()
#define DELAY_10US() _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); \
_nop_(); _nop_(); _nop_(); _nop_(); _nop_()
#define DQ P3_5 #define DQ P3_5
///*Bit definition of config register*/ ///*Bit definition of config register*/
@@ -26,7 +36,7 @@
#define CFG_Repeatbility_High 0x02 #define CFG_Repeatbility_High 0x02
#define MAXNUM 5 /*<EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ #define MAXNUM 5 /*总线级联最大芯片数量*/
typedef enum { typedef enum {
FALSE = 0, FALSE = 0,
@@ -38,7 +48,7 @@ typedef struct
{ {
char Tha_set_lsb; char Tha_set_lsb;
char Tla_set_lsb; char Tla_set_lsb;
ubyte Cfg; /*ϵͳ<EFBFBD><EFBFBD><EFBFBD>üĴ<EFBFBD><EFBFBD><EFBFBD>, RW*/ ubyte Cfg; /*系统配置寄存器, RW*/
} M601_SCRATCHPAD_WRITE; } M601_SCRATCHPAD_WRITE;
@@ -64,14 +74,14 @@ typedef enum
/*SRAM scratchpad*/ /*SRAM scratchpad*/
typedef struct typedef struct
{ {
ubyte T_lsb; /*The LSB of <EFBFBD>¶Ƚ<EFBFBD><EFBFBD><EFBFBD>, RO*/ ubyte T_lsb; /*The LSB of 温度结果, RO*/
ubyte T_msb; /*The MSB of <EFBFBD>¶Ƚ<EFBFBD><EFBFBD><EFBFBD>, RO*/ ubyte T_msb; /*The MSB of 温度结果, RO*/
ubyte C1_lsb; /*The LSB of <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>C1, RO*/ ubyte C1_lsb; /*The LSB of 电容通道C1, RO*/
ubyte C1_msb; /*The MSB of <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>C1, Ro*/ ubyte C1_msb; /*The MSB of 电容通道C1, Ro*/
ubyte Tha_set_lsb; ubyte Tha_set_lsb;
ubyte Tla_set_lsb; ubyte Tla_set_lsb;
ubyte Cfg; /*ϵͳ<EFBFBD><EFBFBD><EFBFBD>üĴ<EFBFBD><EFBFBD><EFBFBD>, RW*/ ubyte Cfg; /*系统配置寄存器, RW*/
ubyte Status; /*ϵͳ״̬<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>, RO*/ ubyte Status; /*系统状态寄存器, RO*/
ubyte crc_scr; /*CRC for byte0-7, RO*/ ubyte crc_scr; /*CRC for byte0-7, RO*/
} M601_SCRATCHPAD_READ; } M601_SCRATCHPAD_READ;
@@ -79,64 +89,64 @@ typedef struct
//20250116 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶Ȳɼ<EFBFBD><EFBFBD>ֽ<EFBFBD> //20250116 增加温度采集字节
typedef struct _StrSwSample typedef struct _StrSwSample
{ {
unsigned int emergency_stop_switch : 1; // ͨ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> unsigned int emergency_stop_switch : 1; // 通道1急停开关
unsigned int High_voltage_switch : 1; // ͨ<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> unsigned int High_voltage_switch : 1; // 通道2高压开关
unsigned int CH03 : 1; // ͨ<EFBFBD><EFBFBD>3 unsigned int CH03 : 1; // 通道3
unsigned int CH04 : 1; // ͨ<EFBFBD><EFBFBD>4 unsigned int CH04 : 1; // 通道4
unsigned int CH05 : 1; // ͨ<EFBFBD><EFBFBD>5 unsigned int CH05 : 1; // 通道5
unsigned int CH06 : 1; // ͨ<EFBFBD><EFBFBD>6 unsigned int CH06 : 1; // 通道6
unsigned int CH07 : 1; // ͨ<EFBFBD><EFBFBD>7 unsigned int CH07 : 1; // 通道7
unsigned int CH08 : 1; // ͨ<EFBFBD><EFBFBD>8 unsigned int CH08 : 1; // 通道8
unsigned int CH09 : 1; // ͨ<EFBFBD><EFBFBD>9 unsigned int CH09 : 1; // 通道9
unsigned int CH10 : 1; // ͨ<EFBFBD><EFBFBD>10 unsigned int CH10 : 1; // 通道10
unsigned int CH11 : 1; // ͨ<EFBFBD><EFBFBD>11 unsigned int CH11 : 1; // 通道11
unsigned int CH12 : 1; // ͨ<EFBFBD><EFBFBD>12 unsigned int CH12 : 1; // 通道12
unsigned int CH13 : 1; // ͨ<EFBFBD><EFBFBD>13 unsigned int CH13 : 1; // 通道13
unsigned int CH14 : 1; // ͨ<EFBFBD><EFBFBD>14 unsigned int CH14 : 1; // 通道14
unsigned int CH15 : 1; // ͨ<EFBFBD><EFBFBD>15 unsigned int CH15 : 1; // 通道15
unsigned int CH16 : 1; // ͨ<EFBFBD><EFBFBD>16 unsigned int CH16 : 1; // 通道16
unsigned int CH17 : 1; // ͨ<EFBFBD><EFBFBD>17 unsigned int CH17 : 1; // 通道17
unsigned int CH18 : 1; // ͨ<EFBFBD><EFBFBD>18 unsigned int CH18 : 1; // 通道18
unsigned int CH19 : 1; // ͨ<EFBFBD><EFBFBD>19 unsigned int CH19 : 1; // 通道19
unsigned int CH20 : 1; // ͨ<EFBFBD><EFBFBD>20 unsigned int CH20 : 1; // 通道20
unsigned int CH21 : 1; // ͨ<EFBFBD><EFBFBD>21 unsigned int CH21 : 1; // 通道21
unsigned int CH22 : 1; // ͨ<EFBFBD><EFBFBD>22 unsigned int CH22 : 1; // 通道22
unsigned int CH23 : 1; // ͨ<EFBFBD><EFBFBD>23 unsigned int CH23 : 1; // 通道23
unsigned int CH24 : 1; // ͨ<EFBFBD><EFBFBD>24 unsigned int CH24 : 1; // 通道24
unsigned int CH25 : 1; // ͨ<EFBFBD><EFBFBD>25 unsigned int CH25 : 1; // 通道25
unsigned int CH26 : 1; // ͨ<EFBFBD><EFBFBD>26 unsigned int CH26 : 1; // 通道26
unsigned int CH27 : 1; // ͨ<EFBFBD><EFBFBD>27 unsigned int CH27 : 1; // 通道27
unsigned int CH28 : 1; // ͨ<EFBFBD><EFBFBD>28 unsigned int CH28 : 1; // 通道28
unsigned int CH29 : 1; // ͨ<EFBFBD><EFBFBD>29 unsigned int CH29 : 1; // 通道29
unsigned int CH30 : 1; // ͨ<EFBFBD><EFBFBD>30 unsigned int CH30 : 1; // 通道30
unsigned int CH31 : 1; // ͨ<EFBFBD><EFBFBD>31 unsigned int CH31 : 1; // 通道31
unsigned int CH32 : 1; // ͨ<EFBFBD><EFBFBD>32 unsigned int CH32 : 1; // 通道32
// unsigned int CH33 : 1; // ͨ<EFBFBD><EFBFBD>33 // unsigned int CH33 : 1; // 通道33
// unsigned int CH34 : 1; // ͨ<EFBFBD><EFBFBD>34 // unsigned int CH34 : 1; // 通道34
// unsigned int CH35 : 1; // ͨ<EFBFBD><EFBFBD>35 // unsigned int CH35 : 1; // 通道35
// unsigned int CH36 : 1; // ͨ<EFBFBD><EFBFBD>36 // unsigned int CH36 : 1; // 通道36
// unsigned int CH37 : 1; // ͨ<EFBFBD><EFBFBD>37 // unsigned int CH37 : 1; // 通道37
// unsigned int CH38 : 1; // ͨ<EFBFBD><EFBFBD>38 // unsigned int CH38 : 1; // 通道38
// unsigned int CH39 : 1; // ͨ<EFBFBD><EFBFBD>39 // unsigned int CH39 : 1; // 通道39
// unsigned int CH40 : 1; // ͨ<EFBFBD><EFBFBD>40 // unsigned int CH40 : 1; // 通道40
// unsigned int CH41 : 1; // ͨ<EFBFBD><EFBFBD>41 // unsigned int CH41 : 1; // 通道41
// unsigned int CH42 : 1; // ͨ<EFBFBD><EFBFBD>42 // unsigned int CH42 : 1; // 通道42
// unsigned int CH43 : 1; // ͨ<EFBFBD><EFBFBD>43 // unsigned int CH43 : 1; // 通道43
// unsigned int CH44 : 1; // ͨ<EFBFBD><EFBFBD>44 // unsigned int CH44 : 1; // 通道44
// unsigned int reserve : 4; // unsigned int reserve : 4;
unsigned int temperature[2]; // <EFBFBD><EFBFBD> unsigned int temperature[2]; // 温度
} StrSwSample; } StrSwSample;
typedef union _UnSwSample typedef union _UnSwSample
{ {
StrSwSample bit_data; // ʹ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľṹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> StrSwSample bit_data; // 使用定义的结构体变量名
unsigned char arr[sizeof(StrSwSample)]; // ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С unsigned char arr[sizeof(StrSwSample)]; // 通过结构体类型确定大小
} UnSwSample; } UnSwSample;