From 7a2ff321965f1f24f3047fedd44a83f451f1f793 Mon Sep 17 00:00:00 2001
From: QuakeGod <QuakeGod@sina.com>
Date: 星期三, 01 二月 2023 10:58:10 +0800
Subject: [PATCH] radio add new device type

---
 Src/functions.c |   63 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/Src/functions.c b/Src/functions.c
index 7d7c303..7409ad5 100644
--- a/Src/functions.c
+++ b/Src/functions.c
@@ -8,7 +8,7 @@
 #include "functions.h"
 #include "string.h"
 #include "stm32f0xx_hal.h"
-#if (BOARD_TYPE == 12)
+#if (BOARD_TYPE == 14)
 #include "fp0.h"
 #endif
 extern __IO uint32_t uwTick;
@@ -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;
@@ -54,6 +54,7 @@
 //	unsigned short Clk1=SysTick->VAL;
 		return nCurTick;
 }
+
 const unsigned short crc16_table[256] = {
 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
@@ -96,7 +97,7 @@
 	{
 	crc_reg = (crc_reg >> 8) ^ crc16_table[(crc_reg ^ *data++) & 0xff];
 	}
-return (~crc_reg) & 0xFFFF;
+	return (~crc_reg) & 0xFFFF;
 }
 
 const uint16_t polynom = 0xA001;
@@ -269,7 +270,7 @@
 
 void PendSvCallBack()
 {
-#if (BOARD_TYPE == 12)
+#if (BOARD_TYPE == 14)
 ///*	
 		if (bSPI1RecvDone)
 		{
@@ -280,7 +281,7 @@
 #endif		
 	if (Uart2Stat.bPacketRecved)
 	{
-		ParsePacket(2, (pPacket)Uart2RecvBuf1, Uart2RecvBuf1DataLen);		
+		KBusParsePacket(2, (pPacket)Uart2RecvBuf1, Uart2RecvBuf1DataLen);		
 		Uart2RecvBuf1DataLen=0;
 		Uart2Stat.bPacketRecved=0;
 		Uart2RecvDMA(Uart2RecvBuf1,sizeof(Uart2RecvBuf1));		
@@ -294,7 +295,7 @@
 	 if (LL_SPI_IsActiveFlag_RXNE(SPI1))
 	 {
 		 	value = LL_SPI_ReceiveData8( SPI1);
-#if (BOARD_TYPE == 12)
+#if (BOARD_TYPE == 14)
 			KMem.SDD[62]++;
 			KMem.SDT[122]++;
 		 if (!bSPI1Sending)
@@ -443,7 +444,7 @@
 */
 void ToggleRunLed() {	LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_13);}
 void ToggleErrLed() {	LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_14);}
-#if (BOARD_TYPE == 12)
+#if (BOARD_TYPE == 14)
 void ToggleOutStat() {	LL_GPIO_TogglePin(GPIOC,LL_GPIO_PIN_15);}
 
 void SetOutStat(uchar bOn)
@@ -611,8 +612,15 @@
 						return Input165_R(8);
 		case 11:
 						return Input165_R(8);
-		case 12:
-					 return 0;	//FP0
+		case 13:
+						return Input165_R(16);
+		case 14:
+						return 0;	//FP0
+		case 15:
+						return Input165_R(16);
+		case 16:
+						return Input165_R(8);
+		
 		default:
 			break;
 	}
@@ -696,13 +704,16 @@
 					 return ReadConfig_5();	//New Slave 8 in 8 o
 		case 9:
 		case 10:
-					 return ReadConfig_5();	//New Slave 8 in 8 o
+					 return ReadConfig_5();	//New Master Slave 8 in 8 o
 		case 11:
 					 return ReadConfig_11(); //Mini Board
-		case 12:
-					 return (~(LL_GPIO_ReadInputPort(GPIOA)>>4))&0x0f;	//FP0
 		case 13:
 					 return ReadConfig_5();
+		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:
 			
 					 return 0;
@@ -725,7 +736,7 @@
 void Output595_8(unsigned int cc)
 {
 //unsigned char i;
-;//		74HC595输出程序,输出8位
+;//		74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣�
 //	cc=~0x3f;
 	__disable_irq();
 	STRCLK2_1();
@@ -747,10 +758,11 @@
 	STRCLK2_1();	
 	__enable_irq();
 }
+
 void Output595_16(unsigned int cc)
 {
 //unsigned char i;
-;//		74HC595输出程序,输出8位
+;//		74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣�
 //	cc=~0x3f;
 	__disable_irq();
 	STRCLK2_1();
@@ -843,16 +855,16 @@
 
 void PutOutput(unsigned int Y)		
 {	
-#if (BOARD_TYPE==12)
+#if (BOARD_TYPE == 14)
 	return ;
 #endif
 	PutOutputSPI2(Y);
 	//Output595_16(Y);
 }
 
-#if (BOARD_TYPE == 9 || BOARD_TYPE == 10 )
+#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)
@@ -861,7 +873,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)
@@ -878,10 +890,11 @@
 			if (bEnable) {OE1_0();}
 			else {OE1_1();}	
 }
+
 void displayInput(unsigned int cc)
 {
 //unsigned char i;
-;//		74HC595输出程序,输出8位
+;//		74HC595杈撳嚭绋嬪簭锛岃緭鍑�8浣�
 //	cc=~0x3f;
 	__disable_irq();
 	STRCLK1_1();

--
Gitblit v1.9.1