From a9312568cde771d4b970445e1f66a04fabb64d56 Mon Sep 17 00:00:00 2001 From: QuakeGod <QuakeGod@sina.com> Date: 星期三, 01 二月 2023 14:07:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/Radio' into dev1 --- Src/functions.c | 80 ++++++++++++++++++++++++---------------- 1 files changed, 48 insertions(+), 32 deletions(-) diff --git a/Src/functions.c b/Src/functions.c index cfc6d57..d564f9b 100644 --- a/Src/functions.c +++ b/Src/functions.c @@ -19,16 +19,16 @@ unsigned int TickPrioduS; // volatile unsigned int nCurTick=0; volatile unsigned int CurTickuS=0; -//volatile unsigned int ThisRunTime=0; //开机时间 -//volatile unsigned int TotalRunTime=0; //总开机时间 -//volatile unsigned int PwrCount=0; //开机次数 -unsigned short ClkuS; //每个Clk的nS数, +//volatile unsigned int ThisRunTime=0; //寮�鏈烘椂闂� +//volatile unsigned int TotalRunTime=0; //鎬诲紑鏈烘椂闂� +//volatile unsigned int PwrCount=0; //寮�鏈烘鏁� +unsigned short ClkuS; //姣忎釜Clk鐨刵S鏁帮紝 int InituS(int TickFreq1) { - TickPrioduS=1000000/TickFreq1; //每个SysTick的微秒数 - CoreClkMHz=HAL_RCC_GetHCLKFreq()/1000000; //=SystemCoreClock/1000000;每uS的时钟数 - TickPriodClk=SystemCoreClock/TickFreq1; //每个SysTick的时钟数 + TickPrioduS=1000000/TickFreq1; //姣忎釜SysTick鐨勫井绉掓暟 + CoreClkMHz=HAL_RCC_GetHCLKFreq()/1000000; //=SystemCoreClock/1000000;姣弖S鐨勬椂閽熸暟 + TickPriodClk=SystemCoreClock/TickFreq1; //姣忎釜SysTick鐨勬椂閽熸暟 ClkuS=(1000000LL*65536)/SystemCoreClock; CurTickuS=TickPrioduS+100u; return 0; @@ -53,6 +53,12 @@ { // unsigned short Clk1=SysTick->VAL; return nCurTick; +} + +void logData(unsigned char d) +{ + KMem.WDB[128+KMem.WDT[123]] = d; + KMem.WDT[123]++; if (KMem.WDT[123]>=100) {KMem.WDT[123]=81;} } const unsigned short crc16_table[256] = { @@ -211,7 +217,7 @@ LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_2,nSize); LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_2); Uart1Stat.DMASendLen=nSize; - Uart1Stat.Sending=1; + Uart1Stat.bSending=1; LL_DMA_EnableIT_TC(DMA1,LL_DMA_CHANNEL_2); LL_USART_EnableDMAReq_TX(USART1); return nSize; @@ -219,7 +225,7 @@ int Uart1TriggerSendDMA() { - if (!Uart1Stat.Sending&&!IsEmpty(&Uart1Stat.QTx)) + if (!Uart1Stat.bSending&&!IsEmpty(&Uart1Stat.QTx)) { int len1=GetContinueData(&Uart1Stat.QTx); Uart1SendDMA(GetReadBuffer(&Uart1Stat.QTx),len1); @@ -235,7 +241,7 @@ LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_5,nSize); LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_5); Uart2Stat.DMARecvLen=nSize; - Uart2Stat.Recving=1; + Uart2Stat.bRecving=1; LL_DMA_EnableIT_TC(DMA1,LL_DMA_CHANNEL_5); LL_USART_EnableDMAReq_RX(USART2); return 0; @@ -248,14 +254,14 @@ LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_4,nSize); LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_4); Uart2Stat.DMASendLen=nSize; - Uart2Stat.Sending=1; + Uart2Stat.bSending=1; LL_DMA_EnableIT_TC(DMA1,LL_DMA_CHANNEL_4); LL_USART_EnableDMAReq_TX(USART2); return nSize; } int Uart2TriggerSendDMA() { - if (!Uart2Stat.Sending&&!IsEmpty(&Uart2Stat.QTx)) + if (!Uart2Stat.bSending&&!IsEmpty(&Uart2Stat.QTx)) { int len1=GetContinueData(&Uart2Stat.QTx); Uart2SendDMA(GetReadBuffer(&Uart2Stat.QTx),len1); @@ -281,7 +287,7 @@ #endif if (Uart2Stat.bPacketRecved) { - ParsePacket(2, (pPacket)Uart2RecvBuf1, Uart2RecvBuf1DataLen); + KBusParsePacket(2, (pKBPacket)Uart2RecvBuf1, Uart2RecvBuf1DataLen); Uart2RecvBuf1DataLen=0; Uart2Stat.bPacketRecved=0; Uart2RecvDMA(Uart2RecvBuf1,sizeof(Uart2RecvBuf1)); @@ -296,12 +302,11 @@ { value = LL_SPI_ReceiveData8( SPI1); #if (BOARD_TYPE == 14) - KMem.SDD[62]++; - KMem.SDT[122]++; + KMem.WDD[62]++; + KMem.WDT[122]++; if (!bSPI1Sending) { - KMem.SDB[128+KMem.SDT[123]] = value; - KMem.SDT[123]++; if (KMem.SDT[123]>=100) {KMem.SDT[123]=81;} + logData(value); } if (!bSPI1Sending && (1 || bSPI1Recving)) { @@ -310,8 +315,7 @@ if (value==0x0d) { - KMem.SDB[128+KMem.SDT[123]] = nSPI1RecvPos; - KMem.SDT[123]++; if (KMem.SDT[123]>=100) {KMem.SDT[123]=81;} + logData(nSPI1RecvPos); nSPI1RecvLenInBuf=nSPI1RecvPos; bSPI1RecvDone=1; @@ -338,8 +342,7 @@ else { value = SPI1SendBuf[nSPI1SentLen]; LL_SPI_TransmitData8(SPI1,value); - KMem.SDB[128+KMem.SDT[123]] = value; - KMem.SDT[123]++; if (KMem.SDT[123]>=100) {KMem.SDT[123]=81;} + logData(value); } } #endif @@ -378,7 +381,7 @@ Uart2Stat.IdelCount++; if (Uart2RecvBuf1DataLen>0) TriggerPendSV(); - // ParsePacket((pPacket)Uart2RecvBuf1,Uart2RecvBuf1DataLen); + // ParsePacket((pKBPacket)Uart2RecvBuf1,Uart2RecvBuf1DataLen); } int PutStr(char * str1, int len1) @@ -433,7 +436,7 @@ Uart1Stat.SentPacket++; return len1; } -int SendPacket2(pPacket p1,int len1) +int SendPacket2(pKBPacket p1,int len1) { PutStr2((char *)p1,len1); // PushIn(&Uart2Stat.QTx,p1,len1); @@ -444,6 +447,8 @@ */ void ToggleRunLed() { LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_13);} void ToggleErrLed() { LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_14);} +void ToggleErr2Led() { LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_15);} + #if (BOARD_TYPE == 14) void ToggleOutStat() { LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_15);} @@ -472,11 +477,17 @@ if (bOn) {LL_GPIO_ResetOutputPin(GPIOC,LL_GPIO_PIN_14);} else {LL_GPIO_SetOutputPin(GPIOC,LL_GPIO_PIN_14);} } +void SetErr2Led(uchar bOn) +{ + if (bOn) {LL_GPIO_ResetOutputPin(GPIOC,LL_GPIO_PIN_15);} + else {LL_GPIO_SetOutputPin(GPIOC,LL_GPIO_PIN_15);} +} +/* void SetLeds(uchar bRun, uchar bErr) { SetRunLed(bRun); SetErrLed (bErr); } - +*/ #define set165SL_0() LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_4) #define set165SL_1() LL_GPIO_SetOutputPin(GPIOA,LL_GPIO_PIN_4) #define set165CLK_0() LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_5) @@ -615,9 +626,12 @@ case 13: return Input165_R(16); case 14: - return 0; //FP0 + return 0; //FP0 case 15: return Input165_R(16); + case 16: + return Input165_R(8); + default: break; } @@ -709,6 +723,7 @@ case 14: return (~(LL_GPIO_ReadInputPort(GPIOA)>>4))&0x0f; //FP0 case 15: + case 16: return ReadConfig_5(); //Wireless Master Slave 8 in 8 o default: @@ -732,7 +747,7 @@ void Output595_8(unsigned int cc) { //unsigned char i; -;// 74HC595输出程序,输出8位 +;// 74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣� // cc=~0x3f; __disable_irq(); STRCLK2_1(); @@ -758,7 +773,7 @@ void Output595_16(unsigned int cc) { //unsigned char i; -;// 74HC595输出程序,输出8位 +;// 74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣� // cc=~0x3f; __disable_irq(); STRCLK2_1(); @@ -853,14 +868,15 @@ { #if (BOARD_TYPE == 14) return ; -#endif +#else PutOutputSPI2(Y); //Output595_16(Y); +#endif } -#if (BOARD_TYPE == 9 || BOARD_TYPE == 10 || BOARD_TYPE == 15 ) +#if (BOARD_TYPE == 9 || BOARD_TYPE == 10 || BOARD_TYPE == 15 || BOARD_TYPE == 16) //#pragma message("9,10") - // V4.2 管脚排列向右移动了一位。 + // V4.2 绠¤剼鎺掑垪鍚戝彸绉诲姩浜嗕竴浣嶃�� #define SRCLK1_0() LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_1) #define SRCLK1_1() LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_1) #define STRCLK1_0() LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_2) @@ -869,7 +885,7 @@ #define OE1_1() LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_10) #define SER1_0() LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_11) #define SER1_1() LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_11) -#else //按照原来的管脚排列 +#else //鎸夌収鍘熸潵鐨勭鑴氭帓鍒� #define SRCLK1_0() LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_0) #define SRCLK1_1() LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_0) #define STRCLK1_0() LL_GPIO_ResetOutputPin(GPIOB,LL_GPIO_PIN_1) @@ -890,7 +906,7 @@ void displayInput(unsigned int cc) { //unsigned char i; -;// 74HC595输出程序,输出8位 +;// 74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣� // cc=~0x3f; __disable_irq(); STRCLK1_1(); -- Gitblit v1.9.1