fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。 2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
219
BasicCode/Drive/BLE/HAL/KEY.c
Normal file
219
BasicCode/Drive/BLE/HAL/KEY.c
Normal file
@@ -0,0 +1,219 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : KEY.c
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2014/05/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#include "CH57x_common.h"
|
||||
#include "HAL.h"
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
**************************************************************************************************/
|
||||
|
||||
uint8 Hal_KeyIntEnable; /* interrupt enable/disable flag */
|
||||
|
||||
// Registered keys task ID, initialized to NOT USED.
|
||||
static uint8 registeredKeysTaskID = TASK_NO_TASK;
|
||||
static uint8 halKeySavedKeys; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD>Ƿ<EFBFBD><C7B7>м<EFBFBD>ֵ<EFBFBD>仯 */
|
||||
static uint8 KeyConfigFlag; /* <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ñ<EFBFBD>־λ */
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* FUNCTIONS - Local
|
||||
**************************************************************************************************/
|
||||
static halKeyCBack_t pHalKeyProcessFunction; /* callback function */
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* @fn HAL_KeyInit
|
||||
*
|
||||
* @brief Initilize Key Service
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return None
|
||||
**************************************************************************************************/
|
||||
void HAL_KeyInit( void )
|
||||
{
|
||||
/* Initialize previous key to 0 */
|
||||
halKeySavedKeys = 0;
|
||||
/* Initialize callback function */
|
||||
pHalKeyProcessFunction = NULL;
|
||||
/* Start with key is not configured */
|
||||
KeyConfigFlag = FALSE;
|
||||
KEY1_DIR; //IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
KEY1_PU; //<2F><><EFBFBD><EFBFBD>
|
||||
HalKeyConfig( HAL_KEY_INTERRUPT_DISABLE, HalKeyCallback );
|
||||
}
|
||||
|
||||
void HAL_KEY_RegisterForKeys( tmosTaskID id )
|
||||
{
|
||||
registeredKeysTaskID = id;
|
||||
}
|
||||
|
||||
/**************************************************************************************************
|
||||
* @fn HalKeyConfig
|
||||
*
|
||||
* @brief Configure the Key serivce
|
||||
*
|
||||
* @param interruptEnable - TRUE/FALSE, enable/disable interrupt
|
||||
* cback - pointer to the CallBack function
|
||||
*
|
||||
* @return None
|
||||
**************************************************************************************************/
|
||||
void HalKeyConfig (uint8 interruptEnable, halKeyCBack_t cback)
|
||||
{
|
||||
/* Enable/Disable Interrupt or */
|
||||
Hal_KeyIntEnable = interruptEnable;
|
||||
/* Register the callback fucntion */
|
||||
pHalKeyProcessFunction = cback;
|
||||
/* Determine if interrupt is enable or not */
|
||||
if (Hal_KeyIntEnable){
|
||||
/* Do this only after the hal_key is configured - to work with sleep stuff */
|
||||
if (KeyConfigFlag == TRUE){
|
||||
tmos_stop_task( halTaskID, HAL_KEY_EVENT ); /* Cancel polling if active */
|
||||
}
|
||||
}
|
||||
else{ /* Interrupts NOT enabled */
|
||||
tmos_start_task( halTaskID, HAL_KEY_EVENT, HAL_KEY_POLLING_VALUE); /* Kick off polling <20><>ʼ<EFBFBD><CABC>ѵ*/
|
||||
}
|
||||
/* Key now is configured */
|
||||
KeyConfigFlag = TRUE;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OnBoard_SendKeys
|
||||
*
|
||||
* @brief Send "Key Pressed" message to application.
|
||||
* <09><>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
||||
* @param keys - keys that were pressed
|
||||
* state - shifted
|
||||
*
|
||||
* @return status
|
||||
*********************************************************************/
|
||||
uint8 OnBoard_SendKeys( uint8 keys, uint8 state )
|
||||
{
|
||||
keyChange_t *msgPtr;
|
||||
|
||||
if ( registeredKeysTaskID != TASK_NO_TASK ){
|
||||
// Send the address to the task
|
||||
msgPtr = (keyChange_t *)tmos_msg_allocate( sizeof(keyChange_t) );
|
||||
if ( msgPtr ){
|
||||
msgPtr->hdr.event = KEY_CHANGE;
|
||||
msgPtr->state = state;
|
||||
msgPtr->keys = keys;
|
||||
tmos_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );
|
||||
}
|
||||
return ( SUCCESS );
|
||||
}
|
||||
else{
|
||||
return ( FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OnBoard_KeyCallback
|
||||
*
|
||||
* @brief Callback service for keys
|
||||
*
|
||||
* @param keys - keys that were pressed
|
||||
* state - shifted
|
||||
*
|
||||
* @return void
|
||||
*********************************************************************/
|
||||
void HalKeyCallback ( uint8 keys, uint8 state )
|
||||
{
|
||||
(void)state;
|
||||
if ( OnBoard_SendKeys( keys, state ) != SUCCESS ){
|
||||
// Process SW1 here
|
||||
if ( keys & HAL_KEY_SW_1 ){ // Switch 1
|
||||
}
|
||||
// Process SW2 here
|
||||
if ( keys & HAL_KEY_SW_2 ){ // Switch 2
|
||||
}
|
||||
// Process SW3 here
|
||||
if ( keys & HAL_KEY_SW_3 ){ // Switch 3
|
||||
}
|
||||
// Process SW4 here
|
||||
if ( keys & HAL_KEY_SW_4 ){ // Switch 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* @fn HalKeyRead
|
||||
*
|
||||
* @brief Read the current value of a key
|
||||
*
|
||||
* @param None
|
||||
*
|
||||
* @return keys - current keys status
|
||||
**************************************************************************************************/
|
||||
uint8 HalKeyRead ( void )
|
||||
{
|
||||
uint8 keys = 0;
|
||||
|
||||
if (HAL_PUSH_BUTTON1()){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
||||
keys |= HAL_KEY_SW_1;
|
||||
}
|
||||
if (HAL_PUSH_BUTTON2()){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
||||
keys |= HAL_KEY_SW_2;
|
||||
}
|
||||
if (HAL_PUSH_BUTTON3()){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
||||
keys |= HAL_KEY_SW_3;
|
||||
}
|
||||
if (HAL_PUSH_BUTTON4()){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
||||
keys |= HAL_KEY_SW_4;
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* @fn HAL_KeyPoll
|
||||
*
|
||||
* @brief Called by hal_driver to poll the keys
|
||||
*
|
||||
* @param None
|
||||
*
|
||||
* @return None
|
||||
**************************************************************************************************/
|
||||
void HAL_KeyPoll (void)
|
||||
{
|
||||
uint8 keys = 0;
|
||||
|
||||
if( HAL_PUSH_BUTTON1() ){
|
||||
keys |= HAL_KEY_SW_1;
|
||||
}
|
||||
if( HAL_PUSH_BUTTON2() ){
|
||||
keys |= HAL_KEY_SW_2;
|
||||
}
|
||||
if( HAL_PUSH_BUTTON3() ){
|
||||
keys |= HAL_KEY_SW_3;
|
||||
}
|
||||
if( HAL_PUSH_BUTTON4() ){
|
||||
keys |= HAL_KEY_SW_4;
|
||||
}
|
||||
if (!Hal_KeyIntEnable){ /* <20>ж<EFBFBD>δʹ<CEB4><CAB9> */
|
||||
if(keys == halKeySavedKeys){ /* Exit - since no keys have changed */
|
||||
return;
|
||||
}
|
||||
halKeySavedKeys = keys; /* Store the current keys for comparation next time */
|
||||
}
|
||||
/* Invoke Callback if new keys were depressed */
|
||||
if (keys && (pHalKeyProcessFunction)){
|
||||
(pHalKeyProcessFunction) (keys, HAL_KEY_STATE_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************** endfile @ key ******************************/
|
||||
316
BasicCode/Drive/BLE/HAL/LED.c
Normal file
316
BasicCode/Drive/BLE/HAL/LED.c
Normal file
@@ -0,0 +1,316 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : LED.c
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2014/05/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#include "CH57x_common.h"
|
||||
#include "HAL.h"
|
||||
|
||||
|
||||
|
||||
/* LED control structure */
|
||||
typedef struct {
|
||||
uint8 mode; /* Operation mode */
|
||||
uint8 todo; /* Blink cycles left */
|
||||
uint8 onPct; /* On cycle percentage */
|
||||
uint16 time; /* On/off cycle time (msec) */
|
||||
uint32 next; /* Time for next change */
|
||||
} HalLedControl_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HalLedControl_t HalLedControlTable[HAL_LED_DEFAULT_MAX_LEDS];
|
||||
uint8 sleepActive;
|
||||
} HalLedStatus_t;
|
||||
|
||||
/***************************************************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
***************************************************************************************************/
|
||||
static uint8 HalLedState; // LED state at last set/clr/blink update
|
||||
|
||||
static uint8 preBlinkState; // Original State before going to blink mode
|
||||
// bit 0, 1, 2, 3 represent led 0, 1, 2, 3
|
||||
static HalLedStatus_t HalLedStatusControl;
|
||||
|
||||
/***************************************************************************************************
|
||||
* LOCAL FUNCTION
|
||||
***************************************************************************************************/
|
||||
void HalLedOnOff (uint8 leds, uint8 mode);
|
||||
|
||||
/***************************************************************************************************
|
||||
* FUNCTIONS - API
|
||||
***************************************************************************************************/
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn : HAL_LedInit
|
||||
*
|
||||
* @brief : Initialize LED Service
|
||||
*
|
||||
* @param : None
|
||||
*
|
||||
* @return : None
|
||||
*/
|
||||
void HAL_LedInit (void)
|
||||
{
|
||||
/* Initialize all LEDs to OFF */
|
||||
LED1_DDR;
|
||||
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
|
||||
// just test
|
||||
HalLedBlink( HAL_LED_1, 10, 30 , 4000);
|
||||
/* Initialize sleepActive to FALSE */
|
||||
HalLedStatusControl.sleepActive = FALSE;
|
||||
}
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn <20><>HalLedSet
|
||||
*
|
||||
* @brief <20><>Tun ON/OFF/TOGGLE given LEDs
|
||||
*
|
||||
* @param <20><>led - bit mask value of leds to be turned ON/OFF/TOGGLE
|
||||
* mode - BLINK, FLASH, TOGGLE, ON, OFF
|
||||
*
|
||||
* @return <20><>None
|
||||
*/
|
||||
uint8 HalLedSet (uint8 leds, uint8 mode)
|
||||
{
|
||||
uint8 led;
|
||||
HalLedControl_t *sts;
|
||||
|
||||
switch (mode){
|
||||
case HAL_LED_MODE_BLINK:
|
||||
/* Default blink, 1 time, D% duty cycle */
|
||||
HalLedBlink (leds, 1, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME);
|
||||
break;
|
||||
|
||||
case HAL_LED_MODE_FLASH:
|
||||
/* Default flash, N times, D% duty cycle */
|
||||
HalLedBlink (leds, HAL_LED_DEFAULT_FLASH_COUNT, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME);
|
||||
break;
|
||||
|
||||
case HAL_LED_MODE_ON:
|
||||
case HAL_LED_MODE_OFF:
|
||||
case HAL_LED_MODE_TOGGLE:
|
||||
led = HAL_LED_1;
|
||||
leds &= HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
while (leds){
|
||||
if (leds & led){
|
||||
if (mode != HAL_LED_MODE_TOGGLE){
|
||||
sts->mode = mode; /* ON or OFF */
|
||||
}
|
||||
else{
|
||||
sts->mode ^= HAL_LED_MODE_ON; /* Toggle */
|
||||
}
|
||||
HalLedOnOff (led, sts->mode);
|
||||
leds ^= led;
|
||||
}
|
||||
led <<= 1;
|
||||
sts++;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ( NULL );
|
||||
}
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn : HalLedBlink
|
||||
*
|
||||
* @brief : Blink the leds
|
||||
*
|
||||
* @param : leds - bit mask value of leds to be blinked
|
||||
* numBlinks - number of blinks
|
||||
* percent - the percentage in each period where the led will be on
|
||||
* period - length of each cycle in milliseconds
|
||||
*
|
||||
* @return : None
|
||||
*/
|
||||
void HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period)
|
||||
{
|
||||
uint8 led;
|
||||
HalLedControl_t *sts;
|
||||
|
||||
if (leds && percent && period){
|
||||
if (percent < 100){
|
||||
led = HAL_LED_1;
|
||||
leds &= HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
while (leds){
|
||||
if (leds & led){
|
||||
/* Store the current state of the led before going to blinking */
|
||||
preBlinkState |= (led & HalLedState);
|
||||
sts->mode = HAL_LED_MODE_OFF; /* Stop previous blink */
|
||||
sts->time = period; /* Time for one on/off cycle */
|
||||
sts->onPct = percent; /* % of cycle LED is on */
|
||||
sts->todo = numBlinks; /* Number of blink cycles */
|
||||
if (!numBlinks) sts->mode |= HAL_LED_MODE_FLASH; /* Continuous */
|
||||
sts->next = TMOS_GetSystemClock(); /* Start now */
|
||||
sts->mode |= HAL_LED_MODE_BLINK; /* Enable blinking */
|
||||
leds ^= led;
|
||||
}
|
||||
led <<= 1;
|
||||
sts++;
|
||||
}
|
||||
tmos_start_task( halTaskID, LED_BLINK_EVENT, NULL);
|
||||
}
|
||||
else{
|
||||
HalLedSet (leds, HAL_LED_MODE_ON); /* >= 100%, turn on */
|
||||
}
|
||||
}
|
||||
else{
|
||||
HalLedSet (leds, HAL_LED_MODE_OFF); /* No on time, turn off */
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn : HalLedUpdate
|
||||
*
|
||||
* @brief : Update leds to work with blink
|
||||
*
|
||||
* @param : none
|
||||
*
|
||||
* @return : none
|
||||
*/
|
||||
void HalLedUpdate (void)
|
||||
{
|
||||
uint8 led,pct,leds;
|
||||
uint16 next,wait;
|
||||
uint32 time;
|
||||
HalLedControl_t *sts;
|
||||
|
||||
next = 0;
|
||||
led = HAL_LED_1;
|
||||
leds = HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
|
||||
/* Check if sleep is active or not */
|
||||
if (!HalLedStatusControl.sleepActive){
|
||||
while (leds){
|
||||
if (leds & led){
|
||||
if(sts->mode & HAL_LED_MODE_BLINK){
|
||||
time = TMOS_GetSystemClock();
|
||||
if (time >= sts->next){
|
||||
if (sts->mode & HAL_LED_MODE_ON){
|
||||
pct = 100 - sts->onPct; /* Percentage of cycle for off */
|
||||
sts->mode &= ~HAL_LED_MODE_ON; /* Say it's not on */
|
||||
HalLedOnOff (led, HAL_LED_MODE_OFF); /* Turn it off */
|
||||
if (!(sts->mode & HAL_LED_MODE_FLASH)){
|
||||
if( sts->todo != 0xff ) sts->todo--; /* Not continuous, reduce count */
|
||||
if (!sts->todo){
|
||||
sts->mode ^= HAL_LED_MODE_BLINK; /* No more blinks */
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
pct = sts->onPct; /* Percentage of cycle for on */
|
||||
sts->mode |= HAL_LED_MODE_ON; /* Say it's on */
|
||||
HalLedOnOff(led, HAL_LED_MODE_ON); /* Turn it on */
|
||||
}
|
||||
if (sts->mode & HAL_LED_MODE_BLINK){
|
||||
wait = (((uint32)pct * (uint32)sts->time) / 100);
|
||||
sts->next = time + wait;
|
||||
}
|
||||
else{
|
||||
/* no more blink, no more wait */
|
||||
wait = 0;
|
||||
/* After blinking, set the LED back to the state before it blinks */
|
||||
HalLedSet (led, ((preBlinkState & led)!=0)?HAL_LED_MODE_ON:HAL_LED_MODE_OFF);
|
||||
/* Clear the saved bit */
|
||||
preBlinkState &= (led ^ 0xFF);
|
||||
}
|
||||
}
|
||||
else{
|
||||
wait = sts->next - time; /* Time left */
|
||||
}
|
||||
if (!next || ( wait && (wait < next) )){
|
||||
next = wait;
|
||||
}
|
||||
}
|
||||
leds ^= led;
|
||||
}
|
||||
led <<= 1;
|
||||
sts++;
|
||||
}
|
||||
if (next){
|
||||
tmos_start_task( halTaskID, LED_BLINK_EVENT, next); /* Schedule event */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn : HalLedOnOff
|
||||
*
|
||||
* @brief : Turns specified LED ON or OFF
|
||||
*
|
||||
* @param : leds - LED bit mask
|
||||
* mode - LED_ON,LED_OFF,
|
||||
*
|
||||
* @return : none
|
||||
*/
|
||||
void HalLedOnOff (uint8 leds, uint8 mode)
|
||||
{
|
||||
if (leds & HAL_LED_1){
|
||||
if (mode == HAL_LED_MODE_ON){
|
||||
HAL_TURN_ON_LED1();
|
||||
}
|
||||
else{
|
||||
HAL_TURN_OFF_LED1();
|
||||
}
|
||||
}
|
||||
if (leds & HAL_LED_2){
|
||||
if (mode == HAL_LED_MODE_ON){
|
||||
HAL_TURN_ON_LED2();
|
||||
}
|
||||
else{
|
||||
HAL_TURN_OFF_LED2();
|
||||
}
|
||||
}
|
||||
if (leds & HAL_LED_3){
|
||||
if (mode == HAL_LED_MODE_ON){
|
||||
HAL_TURN_ON_LED3();
|
||||
}
|
||||
else{
|
||||
HAL_TURN_OFF_LED3();
|
||||
}
|
||||
}
|
||||
if (leds & HAL_LED_4){
|
||||
if (mode == HAL_LED_MODE_ON){
|
||||
HAL_TURN_ON_LED4();
|
||||
}
|
||||
else{
|
||||
HAL_TURN_OFF_LED4();
|
||||
}
|
||||
}
|
||||
/* Remember current state */
|
||||
if (mode){
|
||||
HalLedState |= leds;
|
||||
}
|
||||
else{
|
||||
HalLedState &= (leds ^ 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************************************
|
||||
* @fn HalGetLedState
|
||||
*
|
||||
* @brief Dim LED2 - Dim (set level) of LED2
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return led state
|
||||
***************************************************************************************************/
|
||||
uint8 HalLedGetState ()
|
||||
{
|
||||
return HalLedState;
|
||||
}
|
||||
|
||||
/******************************** endfile @ led ******************************/
|
||||
273
BasicCode/Drive/BLE/HAL/MCU.c
Normal file
273
BasicCode/Drive/BLE/HAL/MCU.c
Normal file
@@ -0,0 +1,273 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : MCU.c
|
||||
* Author : WCH
|
||||
* Version : V1.1
|
||||
* Date : 2019/11/05
|
||||
* Description : Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BLE<4C><45>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/* ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#include "CH57x_common.h"
|
||||
#include "HAL.h"
|
||||
|
||||
tmosTaskID halTaskID;
|
||||
|
||||
#if BLE_CODE_EN
|
||||
__align(4) u32 MEM_BUF[BLE_MEMHEAP_SIZE/4]; //<2F><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>ջ<EFBFBD><D5BB>Ҫ<EFBFBD><D2AA><EFBFBD>ڴ<EFBFBD>
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn Lib_Calibration_LSI
|
||||
*
|
||||
* @brief <20>ڲ<EFBFBD>32kУ
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void Lib_Calibration_LSI( void )
|
||||
{
|
||||
if( Calibration_LSI() > 2 )
|
||||
{
|
||||
Calibration_LSI();
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn CH57X_BLEInit
|
||||
*
|
||||
* @brief BLE <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
#if BLE_CODE_EN
|
||||
|
||||
void CH57X_BLEInit( void )
|
||||
{
|
||||
uint8 i;
|
||||
bleConfig_t cfg;
|
||||
|
||||
if( tmos_memcmp( VER_LIB,VER_FILE,strlen(VER_FILE)) == FALSE ){
|
||||
PRINT("head file error...\n");
|
||||
while(1);
|
||||
}
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1; //д<><D0B4>0x57
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2; //<2F><>д<EFBFBD><D0B4>0xA8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ16<31><36><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밲ȫ<EBB0B2><C8AB><EFBFBD><EFBFBD>ģʽ
|
||||
R16_CLK_SYS_CFG = RB_CLK_OSC32M_XT|(2<<6)|0x08; // 32M -> Fsys <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳʱ<CDB3>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32M<32><4D>Ϊϵͳ<CFB5><CDB3>Ƶ<EFBFBD><C6B5>
|
||||
R8_SAFE_ACCESS_SIG = 0; //<2F>˳<EFBFBD><CBB3><EFBFBD>ȫģʽ
|
||||
// SysTick_Config( SysTick_LOAD_RELOAD_Msk ); //<2F><><EFBFBD>õδ<C3B5><CEB4><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
// SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk ; /* disable SysTick IRQ */
|
||||
tmos_memset(&cfg,0,sizeof(bleConfig_t));
|
||||
cfg.MEMAddr = (u32)MEM_BUF;
|
||||
cfg.MEMLen = (u32)BLE_MEMHEAP_SIZE; //<2F><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>ջʹ<D5BB>õ<EFBFBD>RAM<41><4D>С<EFBFBD><D0A1><EFBFBD><EFBFBD>С<EFBFBD><D0A1>6K
|
||||
cfg.BufMaxLen = (u32)BLE_BUFF_MAX_LEN; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cfg.BufNumber = (u32)BLE_BUFF_NUM; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD>
|
||||
cfg.TxNumEvent = (u32)BLE_TX_NUM_EVENT; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
||||
cfg.TxPower = (u32)BLE_TX_POWER; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>书<EFBFBD><E4B9A6>
|
||||
#if (defined (BLE_SNV)) && (BLE_SNV == TRUE)
|
||||
cfg.SNVAddr = (u32)BLE_SNV_ADDR;
|
||||
#endif
|
||||
#if( CLK_OSC32K )
|
||||
cfg.SelRTCClock = (u32)CLK_OSC32K;
|
||||
#endif
|
||||
cfg.ConnectNumber = (PERIPHERAL_MAX_CONNECTION&3)|(CENTRAL_MAX_CONNECTION<<2); //
|
||||
cfg.srandCB = SYS_GetSysTickCnt; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵij<D3B5><C4B3><EFBFBD>
|
||||
#if (defined TEM_SAMPLE) && (TEM_SAMPLE == TRUE)
|
||||
cfg.tsCB = HAL_GetInterTempValue; // <20><><EFBFBD><EFBFBD><EFBFBD>¶ȱ仯УRF<52><46><EFBFBD>ڲ<EFBFBD>RC( <20><><EFBFBD><EFBFBD>7<EFBFBD><37><EFBFBD>϶<EFBFBD> )
|
||||
#if( CLK_OSC32K )
|
||||
cfg.rcCB = Lib_Calibration_LSI; // <20>ڲ<EFBFBD>32Kʱ<4B><CAB1>У
|
||||
#endif
|
||||
#endif
|
||||
#if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||
cfg.WakeUpTime = WAKE_UP_RTC_MAX_TIME;
|
||||
cfg.sleepCB = CH57X_LowPower; // <20><><EFBFBD><EFBFBD>˯<EFBFBD><CBAF>
|
||||
#endif
|
||||
#if (defined (BLE_MAC)) && (BLE_MAC == TRUE)
|
||||
for(i=0;i<6;i++) cfg.MacAddr[i] = MACAddr[5-i]; //MAC<41><43>ַ
|
||||
#endif
|
||||
if( !cfg.MEMAddr || cfg.MEMLen < 4*1024 )while(1);
|
||||
#if (defined HAL_SLEEP) && (HAL_SLEEP == TRUE)
|
||||
if( (u32)MEM_BUF < (u32)0x20003800 ){
|
||||
PRINT("RAM config error...\n");
|
||||
PRINT("MEM_BUF<EFBFBD><EFBFBD>%p\n", MEM_BUF);
|
||||
PRINT("BLE_MEMHEAP_SIZE<EFBFBD><EFBFBD>%d\n", BLE_MEMHEAP_SIZE);
|
||||
|
||||
while(1);
|
||||
}
|
||||
#endif
|
||||
i = BLE_LibInit( &cfg );
|
||||
if(i){
|
||||
PRINT("LIB init error code: %x ...\n",i);
|
||||
while(1);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn HAL_ProcessEvent
|
||||
*
|
||||
* @brief Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param task_id.
|
||||
* @param events.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param events.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
tmosEvents HAL_ProcessEvent( tmosTaskID task_id, tmosEvents events )
|
||||
{
|
||||
uint8 * msgPtr;
|
||||
|
||||
if( events & SYS_EVENT_MSG ){ // <20><><EFBFBD><EFBFBD>HAL<41><4C><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tmos_msg_receive<76><65>ȡ<EFBFBD><C8A1>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
||||
msgPtr = tmos_msg_receive(task_id); //receive a msg
|
||||
if( msgPtr ){
|
||||
/* De-allocate */
|
||||
tmos_msg_deallocate( msgPtr ); //delete a msg
|
||||
}
|
||||
return events ^ SYS_EVENT_MSG;
|
||||
}
|
||||
if ( events & LED_BLINK_EVENT ){
|
||||
#if (defined HAL_LED) && (HAL_LED == TRUE)
|
||||
HalLedUpdate( );
|
||||
#endif // HAL_LED
|
||||
return events ^ LED_BLINK_EVENT;
|
||||
}
|
||||
if( events & HAL_KEY_EVENT ){
|
||||
#if (defined HAL_KEY) && (HAL_KEY == TRUE)
|
||||
HAL_KeyPoll(); /* Check for keys */
|
||||
if (!Hal_KeyIntEnable){
|
||||
tmos_start_task( halTaskID, HAL_KEY_EVENT, MS1_TO_SYSTEM_TIME(100) );
|
||||
}
|
||||
return events ^ HAL_KEY_EVENT;
|
||||
#endif
|
||||
}
|
||||
if( events & HAL_REG_INIT_EVENT ){
|
||||
#if (defined BLE_CALIBRATION_ENABLE) && (BLE_CALIBRATION_ENABLE == TRUE) // У<D0A3><D7BC><EFBFBD><EFBFBD><F1A3ACB5><EFBFBD>У<D0A3><D7BC>ʱС<CAB1><D0A1>10ms
|
||||
BLE_RegInit(); // УRF
|
||||
#if( CLK_OSC32K )
|
||||
Lib_Calibration_LSI(); // У<D0A3>ڲ<EFBFBD>RC
|
||||
#endif
|
||||
tmos_start_task( halTaskID , HAL_REG_INIT_EVENT ,MS1_TO_SYSTEM_TIME(BLE_CALIBRATION_PERIOD) );
|
||||
return events ^ HAL_REG_INIT_EVENT;
|
||||
#endif
|
||||
}
|
||||
if( events & HAL_TEST_EVENT ){
|
||||
PRINT("* ");
|
||||
tmos_start_task( halTaskID , HAL_TEST_EVENT ,MS1_TO_SYSTEM_TIME(10000) );
|
||||
return events ^ HAL_TEST_EVENT;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn HAL_Init
|
||||
*
|
||||
* @brief Ӳ<><D3B2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void HAL_Init( )
|
||||
{
|
||||
halTaskID = TMOS_ProcessEventRegister( HAL_ProcessEvent ); //ע<><D7A2>һ<EFBFBD><D2BB> TMOS <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
||||
HAL_TimeInit( );
|
||||
#if (defined HAL_SLEEP) && (HAL_SLEEP == TRUE)
|
||||
HAL_SleepInit( );
|
||||
#endif
|
||||
#if (defined HAL_LED) && (HAL_LED == TRUE)
|
||||
HAL_LedInit( );
|
||||
#endif
|
||||
#if (defined HAL_KEY) && (HAL_KEY == TRUE)
|
||||
HAL_KeyInit( );
|
||||
#endif
|
||||
__enable_irq();
|
||||
#if (defined BLE_CALIBRATION_ENABLE) && (BLE_CALIBRATION_ENABLE == TRUE)
|
||||
tmos_start_task( halTaskID , HAL_REG_INIT_EVENT ,MS1_TO_SYSTEM_TIME(BLE_CALIBRATION_PERIOD) ); // <20><><EFBFBD><EFBFBD>У<D0A3><D7BC><EFBFBD><EFBFBD><F1A3ACB5><EFBFBD>У<D0A3><D7BC>ʱС<CAB1><D0A1>10ms
|
||||
#endif
|
||||
// tmos_start_task( halTaskID , HAL_TEST_EVENT ,1000 ); // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn LLE_IRQHandler
|
||||
*
|
||||
* @brief LLE interrupt function
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void LLE_IRQHandler(void)
|
||||
{
|
||||
BLE_IRQHandler();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn HAL_GetInterTempValue
|
||||
*
|
||||
* @brief None.
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
uint16 HAL_GetInterTempValue( void )
|
||||
{
|
||||
uint8 sensor,channel,config;
|
||||
uint16 adc_data;
|
||||
|
||||
sensor = R8_TEM_SENSOR;
|
||||
channel = R8_ADC_CHANNEL;
|
||||
config = R8_ADC_CFG;
|
||||
R8_TEM_SENSOR |= RB_TEM_SEN_PWR_ON;
|
||||
R8_ADC_CHANNEL = CH_INTE_VTEMP;
|
||||
R8_ADC_CFG = RB_ADC_POWER_ON|( 2<<4 ) ;
|
||||
R8_ADC_CONVERT |= RB_ADC_START;
|
||||
while( R8_ADC_CONVERT & RB_ADC_START );
|
||||
adc_data = R16_ADC_DATA;
|
||||
R8_TEM_SENSOR = sensor;
|
||||
R8_ADC_CHANNEL = channel;
|
||||
R8_ADC_CFG = config;
|
||||
return( adc_data );
|
||||
}
|
||||
|
||||
/******************************** endfile @ mcu ******************************/
|
||||
92
BasicCode/Drive/BLE/HAL/RTC.c
Normal file
92
BasicCode/Drive/BLE/HAL/RTC.c
Normal file
@@ -0,0 +1,92 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : RTC.c
|
||||
* Author : WCH
|
||||
* Version : V1.1
|
||||
* Date : 2019/11/05
|
||||
* Description : RTC<54><43><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/* ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#include "CH57x_common.h"
|
||||
#include "HAL.h"
|
||||
|
||||
/*********************************************************************
|
||||
* CONSTANTS
|
||||
*/
|
||||
#define RTC_INIT_TIME_HOUR 0
|
||||
#define RTC_INIT_TIME_MINUTE 0
|
||||
#define RTC_INIT_TIME_SECEND 0
|
||||
|
||||
/***************************************************
|
||||
* Global variables
|
||||
*/
|
||||
u32V RTCTigFlag;
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : RTC_SetTignTime
|
||||
* Description : <20><><EFBFBD><EFBFBD>RTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
* Input :
|
||||
* Output : None
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void RTC_SetTignTime( u32 time )
|
||||
{
|
||||
if( time&0xffff ) time += (1<<16);
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
|
||||
R32_RTC_TRIG = time;
|
||||
RTCTigFlag = 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn RTC_IRQHandler
|
||||
*
|
||||
* @brief RTC<54>жϴ<D0B6><CFB4><EFBFBD>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void RTC_IRQHandler( void )
|
||||
{
|
||||
R8_RTC_FLAG_CTRL =(RB_RTC_TMR_CLR|RB_RTC_TRIG_CLR);
|
||||
RTCTigFlag = 1;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn HAL_Time0Init
|
||||
*
|
||||
* @brief ϵͳ<CFB5><CDB3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void HAL_TimeInit( void )
|
||||
{
|
||||
#if( CLK_OSC32K )
|
||||
Calibration_LSI();
|
||||
#else
|
||||
R8_SAFE_ACCESS_SIG = 0x57;
|
||||
R8_SAFE_ACCESS_SIG = 0xa8;
|
||||
R8_CK32K_CONFIG |= RB_CLK_OSC32K_XT | RB_CLK_INT32K_PON | RB_CLK_XT32K_PON; // 4 | 2 | 1
|
||||
R8_SAFE_ACCESS_SIG = 0;
|
||||
#endif
|
||||
RTC_InitTime( RTC_INIT_TIME_HOUR, RTC_INIT_TIME_MINUTE, RTC_INIT_TIME_SECEND ); //RTCʱ<43>ӳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ǰʱ<C7B0><CAB1>
|
||||
TMOS_TimerInit( 0 ); //ϵͳʱ<CDB3>ӳ<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
}
|
||||
|
||||
/******************************** endfile @ time ******************************/
|
||||
85
BasicCode/Drive/BLE/HAL/SLEEP.c
Normal file
85
BasicCode/Drive/BLE/HAL/SLEEP.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : SLEEP.c
|
||||
* Author : WCH
|
||||
* Version : V1.1
|
||||
* Date : 2019/11/05
|
||||
* Description : ˯<><CBAF><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
*******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/* ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#include "CH57x_common.h"
|
||||
#include "HAL.h"
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn CH57X_LowPower
|
||||
*
|
||||
* @brief <20><><EFBFBD><EFBFBD>˯<EFBFBD><CBAF>
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param time-<2D><><EFBFBD>ѵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>㣨RTC<54><43><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
u32 CH57X_LowPower( u32 time )
|
||||
{
|
||||
#if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||
u32 tmp,irq_status;
|
||||
|
||||
SYS_DisableAllIrq( &irq_status );
|
||||
tmp = RTC_GetCycle32k();
|
||||
if( (time < tmp) || ((time - tmp) < 30) ){ // <20><><EFBFBD><EFBFBD>˯<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
SYS_RecoverIrq( irq_status );
|
||||
return 2;
|
||||
}
|
||||
RTC_SetTignTime( time );
|
||||
SYS_RecoverIrq( irq_status );
|
||||
#if( DEBUG == Debug_UART1 )
|
||||
while((R8_UART1_LSR&RB_LSR_TX_ALL_EMP)== 0 ) __nop();// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1>Ϣ<EFBFBD><CFA2>Ҫ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
||||
#endif
|
||||
// LOW POWER-sleepģʽ
|
||||
if( !RTCTigFlag ){
|
||||
LowPower_Sleep(RB_PWR_RAM2K|RB_PWR_RAM14K|RB_PWR_EXTEND );
|
||||
SetSysClock( CLK_SOURCE_HSI_32MHz );
|
||||
DelayUs(1500);
|
||||
SetSysClock( CLK_SOURCE_HSE_32MHz );
|
||||
}
|
||||
else{
|
||||
return 3;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn HAL_SleepInit
|
||||
*
|
||||
* @brief <20><><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD><DFBB>ѵķ<D1B5>ʽ-RTC<54><43><EFBFBD>ѣ<EFBFBD><D1A3><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
*
|
||||
* input parameters
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* output parameters
|
||||
*
|
||||
* @param
|
||||
*
|
||||
* @return None.
|
||||
*/
|
||||
void HAL_SleepInit( void )
|
||||
{
|
||||
#if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
|
||||
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
|
||||
R8_SLP_WAKE_CTRL |= RB_SLP_RTC_WAKE; // RTC<54><43><EFBFBD><EFBFBD>
|
||||
R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // <20><><EFBFBD><EFBFBD>ģʽ
|
||||
R8_SAFE_ACCESS_SIG = 0; //
|
||||
NVIC_EnableIRQ(RTC_IRQn);
|
||||
#endif
|
||||
}
|
||||
67
BasicCode/Drive/BLE/HAL/include/HAL.h
Normal file
67
BasicCode/Drive/BLE/HAL/include/HAL.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : HAL.h
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2016/05/05
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __HAL_H
|
||||
#define __HAL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "RTC.h"
|
||||
#include "SLEEP.h"
|
||||
#include "LED.h"
|
||||
#include "KEY.h"
|
||||
|
||||
/* hal task Event */
|
||||
#define LED_BLINK_EVENT 0x0001
|
||||
#define HAL_KEY_EVENT 0x0002
|
||||
#define HAL_REG_INIT_EVENT 0x2000
|
||||
#define HAL_TEST_EVENT 0x4000
|
||||
|
||||
// hal sys_message
|
||||
#define MESSAGE_UART 0xA0 // UART message
|
||||
#define UART0_MESSAGE (MESSAGE_UART|0 ) // UART0 message
|
||||
#define UART1_MESSAGE (MESSAGE_UART|1 ) // UART1 message
|
||||
|
||||
#define USB_MESSAGE 0xB0 // USB message
|
||||
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
*/
|
||||
extern tmosTaskID halTaskID;
|
||||
|
||||
typedef struct tag_uart_package
|
||||
{
|
||||
tmos_event_hdr_t hdr;
|
||||
uint8 *pData;
|
||||
} uartPacket_t;
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL FUNCTIONS
|
||||
*/
|
||||
extern void HAL_Init( void );
|
||||
extern tmosEvents HAL_ProcessEvent( tmosTaskID task_id, tmosEvents events );
|
||||
extern void CH57X_BLEInit( void );
|
||||
extern uint16 HAL_GetInterTempValue( void );
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*********************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
146
BasicCode/Drive/BLE/HAL/include/KEY.h
Normal file
146
BasicCode/Drive/BLE/HAL/include/KEY.h
Normal file
@@ -0,0 +1,146 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : KEY.h
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2016/04/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __KEY_H
|
||||
#define __KEY_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* MACROS
|
||||
**************************************************************************************************/
|
||||
#define KEY_CHANGE 0xC0 // Key message
|
||||
|
||||
#define HAL_KEY_RISING_EDGE 0
|
||||
#define HAL_KEY_FALLING_EDGE 1
|
||||
|
||||
#define HAL_KEY_DEBOUNCE_VALUE 25
|
||||
#define HAL_KEY_POLLING_VALUE 100
|
||||
|
||||
/* Interrupt option - Enable or disable */
|
||||
#define HAL_KEY_INTERRUPT_DISABLE 0x00
|
||||
#define HAL_KEY_INTERRUPT_ENABLE 0x01
|
||||
|
||||
/* Key state - shift or nornal */
|
||||
#define HAL_KEY_STATE_NORMAL 0x00
|
||||
#define HAL_KEY_STATE_SHIFT 0x01
|
||||
|
||||
/* Switches (keys) */
|
||||
#define HAL_KEY_SW_1 0x01 // key1
|
||||
#define HAL_KEY_SW_2 0x02 // key2
|
||||
#define HAL_KEY_SW_3 0x04 // key3
|
||||
#define HAL_KEY_SW_4 0x08 // key4
|
||||
#define HAL_KEY_SW_5 0x10 // key5
|
||||
|
||||
/* Joystick */
|
||||
#define HAL_KEY_UP 0x01 // Joystick up
|
||||
#define HAL_KEY_RIGHT 0x02 // Joystick right
|
||||
#define HAL_KEY_CENTER 0x04 // Joystick center
|
||||
#define HAL_KEY_LEFT 0x08 // Joystick left
|
||||
#define HAL_KEY_DOWN 0x10 // Joystick down
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
/* 1 - KEY */
|
||||
#define KEY1_BV BV(22)
|
||||
#define KEY2_BV
|
||||
#define KEY3_BV
|
||||
#define KEY4_BV
|
||||
|
||||
#define KEY1_PU (R32_PB_PU |= KEY1_BV)
|
||||
#define KEY2_PU ()
|
||||
#define KEY3_PU ()
|
||||
#define KEY4_PU ()
|
||||
|
||||
#define KEY1_DIR (R32_PB_DIR &= ~KEY1_BV)
|
||||
#define KEY2_PU ()
|
||||
#define KEY3_PU ()
|
||||
#define KEY4_PU ()
|
||||
|
||||
#define KEY1_IN (ACTIVE_LOW(R32_PB_PIN&KEY1_BV))
|
||||
#define KEY2_IN ()
|
||||
#define KEY3_IN ()
|
||||
#define KEY4_IN ()
|
||||
|
||||
#define HAL_PUSH_BUTTON1() ( KEY1_IN ) //<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>尴<EFBFBD><E5B0B4>
|
||||
#define HAL_PUSH_BUTTON2() ( 0 )
|
||||
#define HAL_PUSH_BUTTON3() ( 0 )
|
||||
#define HAL_PUSH_BUTTON4() ( 0 )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************************************************************************************
|
||||
* TYPEDEFS
|
||||
**************************************************************************************************/
|
||||
typedef void (*halKeyCBack_t) (uint8 keys, uint8 state);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
tmos_event_hdr_t hdr;
|
||||
uint8 state; // shift
|
||||
uint8 keys; // keys
|
||||
} keyChange_t;
|
||||
|
||||
/**************************************************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
**************************************************************************************************/
|
||||
extern uint8 Hal_KeyIntEnable;
|
||||
|
||||
/*********************************************************************
|
||||
* FUNCTIONS
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialize the Key Service
|
||||
*/
|
||||
void HAL_KeyInit( void );
|
||||
|
||||
/*
|
||||
* This is for internal used by hal_driver
|
||||
*/
|
||||
void HAL_KeyPoll( void );
|
||||
|
||||
/*
|
||||
* Register the Key Service
|
||||
*/
|
||||
void HAL_KEY_RegisterForKeys( tmosTaskID id );
|
||||
|
||||
/*
|
||||
* Configure the Key Service
|
||||
*/
|
||||
void HalKeyConfig( uint8 interruptEnable, const halKeyCBack_t cback);
|
||||
|
||||
/*
|
||||
* Read the Key callback
|
||||
*/
|
||||
void HalKeyCallback ( uint8 keys, uint8 state );
|
||||
|
||||
/*
|
||||
* Read the Key status
|
||||
*/
|
||||
uint8 HalKeyRead( void);
|
||||
|
||||
/**************************************************************************************************
|
||||
**************************************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
128
BasicCode/Drive/BLE/HAL/include/LED.h
Normal file
128
BasicCode/Drive/BLE/HAL/include/LED.h
Normal file
@@ -0,0 +1,128 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : LED.h
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2016/04/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __LED_H
|
||||
#define __LED_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* CONSTANTS
|
||||
*/
|
||||
|
||||
/* LEDS - The LED number is the same as the bit position */
|
||||
#define HAL_LED_1 0x01
|
||||
#define HAL_LED_2 0x02
|
||||
#define HAL_LED_3 0x04
|
||||
#define HAL_LED_4 0x08
|
||||
#define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4)
|
||||
|
||||
/* Modes */
|
||||
#define HAL_LED_MODE_OFF 0x00
|
||||
#define HAL_LED_MODE_ON 0x01
|
||||
#define HAL_LED_MODE_BLINK 0x02
|
||||
#define HAL_LED_MODE_FLASH 0x04
|
||||
#define HAL_LED_MODE_TOGGLE 0x08
|
||||
|
||||
/* Defaults */
|
||||
#define HAL_LED_DEFAULT_MAX_LEDS 4
|
||||
#define HAL_LED_DEFAULT_DUTY_CYCLE 5
|
||||
#define HAL_LED_DEFAULT_FLASH_COUNT 50
|
||||
#define HAL_LED_DEFAULT_FLASH_TIME 1000
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* TYPEDEFS
|
||||
*/
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>LED<45><44><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>,<2C>͵<EFBFBD>ƽLED<45><44> */
|
||||
|
||||
/* 1 - LED */
|
||||
#define LED1_BV BV(0)
|
||||
#define LED2_BV
|
||||
#define LED3_BV
|
||||
|
||||
#define LED1_OUT (R32_PB_OUT)
|
||||
#define LED2_OUT 0
|
||||
#define LED3_OUT 0
|
||||
#define LED4_OUT 0
|
||||
|
||||
#define LED1_DDR (R32_PB_DIR|=LED1_BV)
|
||||
#define LED2_DDR 0
|
||||
#define LED3_DDR 0
|
||||
|
||||
#define HAL_TURN_OFF_LED1() (LED1_OUT |= LED1_BV)
|
||||
#define HAL_TURN_OFF_LED2()
|
||||
#define HAL_TURN_OFF_LED3()
|
||||
#define HAL_TURN_OFF_LED4()
|
||||
|
||||
#define HAL_TURN_ON_LED1() (LED1_OUT &= (~LED1_BV))
|
||||
#define HAL_TURN_ON_LED2()
|
||||
#define HAL_TURN_ON_LED3()
|
||||
#define HAL_TURN_ON_LED4()
|
||||
|
||||
#define HAL_STATE_LED1() 0
|
||||
#define HAL_STATE_LED2() 0
|
||||
#define HAL_STATE_LED3() 0
|
||||
#define HAL_STATE_LED4() 0
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialize LED Service.
|
||||
*/
|
||||
void HAL_LedInit( void );
|
||||
|
||||
|
||||
/*
|
||||
* update time LED Service.
|
||||
*/
|
||||
void HalLedUpdate (void);
|
||||
|
||||
/*
|
||||
* Set the LED ON/OFF/TOGGLE.
|
||||
*/
|
||||
extern uint8 HalLedSet( uint8 led, uint8 mode );
|
||||
|
||||
/*
|
||||
* Blink the LED.
|
||||
*/
|
||||
extern void HalLedBlink( uint8 leds, uint8 cnt, uint8 duty, uint16 time );
|
||||
|
||||
/*
|
||||
* Put LEDs in sleep state - store current values
|
||||
*/
|
||||
extern void HalLedEnterSleep( void );
|
||||
|
||||
/*
|
||||
* Retore LEDs from sleep state
|
||||
*/
|
||||
extern void HalLedExitSleep( void );
|
||||
|
||||
/*
|
||||
* Return LED state
|
||||
*/
|
||||
extern uint8 HalLedGetState ( void );
|
||||
|
||||
/*********************************************************************
|
||||
*********************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
40
BasicCode/Drive/BLE/HAL/include/RTC.h
Normal file
40
BasicCode/Drive/BLE/HAL/include/RTC.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : RTC.h
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2016/04/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __RTC_H
|
||||
#define __RTC_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#define RTC_TIMER_MAX_VALUE 0xa8c00000
|
||||
|
||||
extern u32V RTCTigFlag;
|
||||
|
||||
/*
|
||||
* Initialize time Service.
|
||||
*/
|
||||
void HAL_TimeInit( void );
|
||||
|
||||
/*
|
||||
* System Clock Service.
|
||||
*/
|
||||
extern void RTC_SetTignTime( u32 time );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
38
BasicCode/Drive/BLE/HAL/include/SLEEP.h
Normal file
38
BasicCode/Drive/BLE/HAL/include/SLEEP.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : SLEEP.h
|
||||
* Author : WCH
|
||||
* Version : V1.0
|
||||
* Date : 2018/11/12
|
||||
* Description :
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __SLEEP_H
|
||||
#define __SLEEP_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* FUNCTIONS
|
||||
*/
|
||||
extern void HAL_SleepInit( void );
|
||||
|
||||
extern u32 CH57X_LowPower( u32 time );
|
||||
/*********************************************************************
|
||||
*********************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
128
BasicCode/Drive/BLE/HAL/include/config.h
Normal file
128
BasicCode/Drive/BLE/HAL/include/config.h
Normal file
@@ -0,0 +1,128 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : CONFIG.h
|
||||
* Author : WCH
|
||||
* Version : V1.10
|
||||
* Date : 2019/11/05
|
||||
* Description : <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<DEB8>ǰֵ
|
||||
*******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#define ID_CH577 0x77
|
||||
#define ID_CH578 0x78
|
||||
#define ID_CH579 0x79
|
||||
|
||||
#define CHIP_ID ID_CH579
|
||||
|
||||
#ifdef CH57xBLE_ROM
|
||||
#include "CH57xBLE_ROM.H"
|
||||
#else
|
||||
#include "CH57xBLE_LIB.H"
|
||||
#endif
|
||||
/*********************************************************************
|
||||
<EFBFBD><EFBFBD>MAC<EFBFBD><EFBFBD>
|
||||
BLE_MAC - <20>Ƿ<EFBFBD><C7B7>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Mac<61><63>ַ ( Ĭ<><C4AC>:FALSE - ʹ<><CAB9>оƬMac<61><63>ַ )<29><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>main.c<><EFBFBD>Mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD>SLEEP<EFBFBD><EFBFBD>
|
||||
HAL_SLEEP - <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>߹<EFBFBD><DFB9><EFBFBD> ( Ĭ<><C4AC>:FALSE )
|
||||
WAKE_UP_RTC_MAX_TIME - ˯<><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD>ݲ<EFBFBD>ͬ˯<CDAC><CBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<C8A1>ɷ<EFBFBD>Ϊ<EFBFBD><CEAA>˯<EFBFBD><CBAF>ģʽ/<2F>µ<EFBFBD>ģʽ - 65(Ĭ<><C4AC>)
|
||||
<09><>ͣģʽ - 65
|
||||
<09><><EFBFBD><EFBFBD>ģʽ - 5
|
||||
|
||||
<EFBFBD><EFBFBD>TEMPERATION<EFBFBD><EFBFBD>
|
||||
TEM_SAMPLE - <20>Ƿ<EFBFBD><C7B7><EFBFBD><F2BFAAB8><EFBFBD><EFBFBD>¶ȱ仯У<D0A3>Ĺ<EFBFBD><C4B9>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>У<D0A3><D7BC>ʱС<CAB1><D0A1>10ms( Ĭ<><C4AC>:TRUE )
|
||||
|
||||
<EFBFBD><EFBFBD>CALIBRATION<EFBFBD><EFBFBD>
|
||||
BLE_CALIBRATION_ENABLE - <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʱУ<D0A3>Ĺ<EFBFBD><C4B9>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>У<D0A3><D7BC>ʱС<CAB1><D0A1>10ms( Ĭ<><C4AC>:TRUE )
|
||||
BLE_CALIBRATION_PERIOD - <20><>ʱУ<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>λms( Ĭ<><C4AC>:120000 )
|
||||
|
||||
<EFBFBD><EFBFBD>SNV<EFBFBD><EFBFBD>
|
||||
BLE_SNV - <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>SNV<4E><56><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ( Ĭ<><C4AC>:TRUE )
|
||||
BLE_SNV_ADDR - SNV<4E><56>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʹ<EFBFBD><CAB9>data flash<73><68><EFBFBD><EFBFBD>( Ĭ<><C4AC>:0x3EC00 )
|
||||
|
||||
<EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD>
|
||||
CLK_OSC32K - RTCʱ<43><CAB1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ⲿ32K( Ĭ<><C4AC>:0 <20>ⲿ(32768Hz)<29><>1<EFBFBD><31><EFBFBD>ڲ<EFBFBD>(32000Hz)<29><>2<EFBFBD><32><EFBFBD>ڲ<EFBFBD>(32768Hz) )
|
||||
|
||||
<EFBFBD><EFBFBD>MEMORY<EFBFBD><EFBFBD>
|
||||
BLE_MEMHEAP_SIZE - <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>ջʹ<D5BB>õ<EFBFBD>RAM<41><4D>С<EFBFBD><D0A1><EFBFBD><EFBFBD>С<EFBFBD><D0A1>6K ( Ĭ<><C4AC>:(1024*8) )
|
||||
|
||||
<EFBFBD><EFBFBD>DATA<EFBFBD><EFBFBD>
|
||||
BLE_BUFF_MAX_LEN - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( Ĭ<><C4AC>:27 (ATT_MTU=23)<29><>ȡֵ<C8A1><D6B5>Χ[27~251] )
|
||||
BLE_BUFF_NUM - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD>( Ĭ<><C4AC>:5 )
|
||||
BLE_TX_NUM_EVENT - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݰ<EFBFBD>( Ĭ<><C4AC>:1 )
|
||||
BLE_TX_POWER - <20><><EFBFBD>书<EFBFBD><E4B9A6>( Ĭ<><C4AC>:LL_TX_POWEER_0_DBM (0dBm) )
|
||||
|
||||
<EFBFBD><EFBFBD>MULTICONN<EFBFBD><EFBFBD>
|
||||
PERIPHERAL_MAX_CONNECTION - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD>ٴӻ<D9B4><D3BB><EFBFBD>ɫ( Ĭ<><C4AC>:1 )
|
||||
CENTRAL_MAX_CONNECTION - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ( Ĭ<><C4AC>:3 )
|
||||
**********************************************************************/
|
||||
|
||||
/*********************************************************************
|
||||
* Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*/
|
||||
#ifndef BLE_MAC
|
||||
#define BLE_MAC /*FALSE*/TRUE
|
||||
#endif
|
||||
#ifndef HAL_SLEEP
|
||||
#define HAL_SLEEP FALSE
|
||||
#endif
|
||||
#ifndef WAKE_UP_RTC_MAX_TIME
|
||||
#define WAKE_UP_RTC_MAX_TIME 65
|
||||
#endif
|
||||
#ifndef HAL_KEY
|
||||
#define HAL_KEY FALSE
|
||||
#endif
|
||||
#ifndef HAL_LED
|
||||
#define HAL_LED FALSE
|
||||
#endif
|
||||
#ifndef TEM_SAMPLE
|
||||
#define TEM_SAMPLE TRUE
|
||||
#endif
|
||||
#ifndef BLE_CALIBRATION_ENABLE
|
||||
#define BLE_CALIBRATION_ENABLE TRUE
|
||||
#endif
|
||||
#ifndef BLE_CALIBRATION_PERIOD
|
||||
#define BLE_CALIBRATION_PERIOD 120000
|
||||
#endif
|
||||
#ifndef BLE_SNV
|
||||
#define BLE_SNV TRUE
|
||||
#endif
|
||||
#ifndef BLE_SNV_ADDR
|
||||
#define BLE_SNV_ADDR 0x3EC00
|
||||
#endif
|
||||
#ifndef CLK_OSC32K
|
||||
#define CLK_OSC32K 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ⲿ32K
|
||||
#endif
|
||||
#ifndef BLE_MEMHEAP_SIZE
|
||||
#define BLE_MEMHEAP_SIZE (1024*8)
|
||||
#endif
|
||||
#ifndef BLE_BUFF_MAX_LEN
|
||||
#define BLE_BUFF_MAX_LEN 145
|
||||
#endif
|
||||
#ifndef BLE_BUFF_NUM
|
||||
#define BLE_BUFF_NUM 5
|
||||
#endif
|
||||
#ifndef BLE_TX_NUM_EVENT
|
||||
#define BLE_TX_NUM_EVENT 1
|
||||
#endif
|
||||
#ifndef BLE_TX_POWER
|
||||
#define BLE_TX_POWER LL_TX_POWEER_0_DBM
|
||||
#endif
|
||||
#ifndef PERIPHERAL_MAX_CONNECTION
|
||||
#define PERIPHERAL_MAX_CONNECTION 1
|
||||
#endif
|
||||
#ifndef CENTRAL_MAX_CONNECTION
|
||||
#define CENTRAL_MAX_CONNECTION 3
|
||||
#endif
|
||||
|
||||
#if BLE_CODE_EN
|
||||
extern u32 MEM_BUF[BLE_MEMHEAP_SIZE/4];
|
||||
#endif
|
||||
|
||||
extern u8 MACAddr[6];
|
||||
|
||||
#endif
|
||||
|
||||
/******************************* endfile @ config ******************************/
|
||||
Reference in New Issue
Block a user