Compare commits
4 Commits
0a96026659
...
d0892c2256
| Author | SHA1 | Date | |
|---|---|---|---|
| d0892c2256 | |||
| aa36ca5d96 | |||
| 711f15677d | |||
| 6337bafb99 |
@ -36,6 +36,7 @@ OF SUCH DAMAGE.
|
||||
#include "systick.h"
|
||||
|
||||
volatile static uint32_t delay;
|
||||
static uint32_t priority_orig;
|
||||
|
||||
/*!
|
||||
\brief configure systick
|
||||
@ -45,14 +46,29 @@ volatile static uint32_t delay;
|
||||
*/
|
||||
void systick_config(void)
|
||||
{
|
||||
/* setup systick timer for 1MHz interrupts */
|
||||
if (SysTick_Config(SystemCoreClock / 1000000U)) {
|
||||
/* capture error */
|
||||
while(1);
|
||||
}
|
||||
priority_orig = __NVIC_GetPriority(SysTick_IRQn);
|
||||
|
||||
/* configure the systick handler priority */
|
||||
NVIC_SetPriority(SysTick_IRQn, 0x00U);
|
||||
/* setup systick timer for 1MHz interrupts */
|
||||
if (SysTick_Config(SystemCoreClock / 1000000U)) {
|
||||
/* capture error */
|
||||
while(1);
|
||||
}
|
||||
|
||||
/* configure the systick handler priority */
|
||||
NVIC_SetPriority(SysTick_IRQn, 0x00U);
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief configure systick
|
||||
\param[in] none
|
||||
\param[out] none
|
||||
\retval none
|
||||
*/
|
||||
void systick_deinit(void)
|
||||
{
|
||||
SysTick_Config(1);
|
||||
|
||||
NVIC_SetPriority(SysTick_IRQn, priority_orig);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
@ -39,6 +39,8 @@ OF SUCH DAMAGE.
|
||||
|
||||
/* configure systick */
|
||||
void systick_config(void);
|
||||
/* Deinit systick */
|
||||
void systick_deinit(void);
|
||||
/* delay a time in milliseconds */
|
||||
void delay_1us(uint32_t count);
|
||||
/* delay a time in milliseconds */
|
||||
|
||||
@ -23,6 +23,8 @@
|
||||
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2>ƽ̨ͷ<CCA8>ļ<EFBFBD> =======================================*/
|
||||
#include "board.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#include "ebyte_debug.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =======================================*/
|
||||
extern uint8_t RxBuffer[64];
|
||||
extern uint8_t BufferPing[5];
|
||||
@ -30,10 +32,10 @@ extern uint8_t BufferPong[5];
|
||||
extern uint8_t Callback_isPingCheckReady;
|
||||
extern uint8_t PC_isConnected;
|
||||
extern uint8_t PcEchoBuffer[20];
|
||||
extern uint8_t is_jump_main;
|
||||
|
||||
/*==================================================================*/
|
||||
|
||||
|
||||
|
||||
/* !
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5>ӿ<EFBFBD> <20>ɿͻ<C9BF>ʵ<EFBFBD><CAB5><EFBFBD>Լ<EFBFBD><D4BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
@ -69,87 +71,61 @@ void Ebyte_Port_TransmitCallback( uint16e_t state )
|
||||
*/
|
||||
void Ebyte_Port_ReceiveCallback( uint16_t state, uint8_t *buffer, uint8_t length )
|
||||
{
|
||||
uint8_t j, pcEchoLength;
|
||||
uint8_t *p;
|
||||
/* <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> */
|
||||
if( state &= 0x0002 )
|
||||
{
|
||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t j, pcEchoLength;
|
||||
uint8_t *p;
|
||||
int8_t rx_data[32] = {0};
|
||||
|
||||
/* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ping pongָ<67><D6B8> */
|
||||
if( length == 4 || length == 5 )
|
||||
{
|
||||
/* <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> */
|
||||
if( state &= 0x0002 ) {
|
||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
p = buffer;
|
||||
for( j = 0; j < 4; j++ )
|
||||
{
|
||||
if( BufferPing[j] != *p++ )
|
||||
{
|
||||
break;
|
||||
}
|
||||
/* ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ping pongָ<67><D6B8> */
|
||||
if( length == 4 || length == 5 ) {
|
||||
p = buffer;
|
||||
for( j = 0; j < 4; j++ ) {
|
||||
if( BufferPing[j] != *p++ )
|
||||
break;
|
||||
}
|
||||
if( j == 4 ) { //<2F>Ƚϵ<C8BD><CFB5><EFBFBD>ĩβ<C4A9><CEB2>ʾ<EFBFBD><CABE>ȫƥ<C8AB><C6A5>ping
|
||||
Callback_isPingCheckReady = 1;//֪ͨ<CDA8>ظ<EFBFBD>Pong
|
||||
if( length == 5 && PC_isConnected )
|
||||
BufferPong[4] = buffer[4];//<2F><>5<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
||||
}
|
||||
|
||||
}
|
||||
//<2F>Ƚϵ<C8BD><CFB5><EFBFBD>ĩβ<C4A9><CEB2>ʾ<EFBFBD><CABE>ȫƥ<C8AB><C6A5>ping
|
||||
if( j == 4 )
|
||||
{
|
||||
Callback_isPingCheckReady = 1;//֪ͨ<CDA8>ظ<EFBFBD>Pong
|
||||
if( length == 5 && PC_isConnected )
|
||||
{
|
||||
BufferPong[4] = buffer[4];//<2F><>5<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
||||
}
|
||||
if( j!=4 && length == 5 && PC_isConnected ) {
|
||||
p = buffer;
|
||||
|
||||
}
|
||||
for( j = 0; j < 4; j++ ) {
|
||||
if( BufferPong[j] != *p++ )
|
||||
break;
|
||||
}
|
||||
|
||||
if( j!=4 && length == 5 && PC_isConnected )
|
||||
{
|
||||
p = buffer;
|
||||
if( j == 4 ) {//<2F><>ȫƥ<C8AB><C6A5>pong
|
||||
if( 0x01 == buffer[4] )
|
||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless1, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||
else
|
||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless2, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||
Ebyte_BSP_UartTransmit( PcEchoBuffer, pcEchoLength );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( j = 0; j < 4; j++ )
|
||||
{
|
||||
if( BufferPong[j] != *p++ )
|
||||
{
|
||||
break;
|
||||
}
|
||||
Ebyte_BSP_LedControl( BSP_LED_1, ON );
|
||||
|
||||
}
|
||||
if( ! PC_isConnected ) {
|
||||
is_jump_main = 1;
|
||||
snprintf(rx_data, sizeof(rx_data), "%s", buffer);
|
||||
EBYTE_LOG("\r\n Receive Data: %s", rx_data);
|
||||
}
|
||||
|
||||
if( j == 4 )//<2F><>ȫƥ<C8AB><C6A5>pong
|
||||
{
|
||||
if( 0x01 == buffer[4] )
|
||||
{
|
||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless1, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||
}
|
||||
else
|
||||
{
|
||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless2, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||
}
|
||||
Ebyte_BSP_UartTransmit( PcEchoBuffer, pcEchoLength );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Ebyte_BSP_LedControl( BSP_LED_1, ON );
|
||||
|
||||
if( ! PC_isConnected )
|
||||
{
|
||||
|
||||
EBYTE_LOG("\r\n Receive Data:");
|
||||
Ebyte_BSP_UartTransmit ( buffer, length );
|
||||
}
|
||||
|
||||
Ebyte_BSP_LedControl( BSP_LED_1, OFF );
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD>: <20>쳣<EFBFBD><ECB3A3>ʱ */
|
||||
else if ( state &= 0x0200 )
|
||||
{
|
||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD>: δ֪<CEB4><D6AA><EFBFBD><EFBFBD> */
|
||||
else
|
||||
{
|
||||
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:SPIͨ<49>Ų<EFBFBD><C5B2><EFBFBD>ȷ 2:ģ<>鹩<EFBFBD>粻<EFBFBD><E7B2BB> */
|
||||
while(1);
|
||||
}
|
||||
Ebyte_BSP_LedControl( BSP_LED_1, OFF );
|
||||
}
|
||||
else if ( state &= 0x0200 ) { /* <20><><EFBFBD><EFBFBD>: <20>쳣<EFBFBD><ECB3A3>ʱ */
|
||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else { /* <20><><EFBFBD><EFBFBD>: δ֪<CEB4><D6AA><EFBFBD><EFBFBD> */
|
||||
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:SPIͨ<49>Ų<EFBFBD><C5B2><EFBFBD>ȷ 2:ģ<>鹩<EFBFBD>粻<EFBFBD><E7B2BB> */
|
||||
while(1);
|
||||
}
|
||||
}
|
||||
@ -22,6 +22,7 @@
|
||||
#include "ebyte_core.h"
|
||||
#include "ebyte_kfifo.h"
|
||||
#include "ebyte_debug.h"
|
||||
#include "systick.h"
|
||||
|
||||
void Task_Transmit( void );
|
||||
void Task_Button( void );
|
||||
@ -49,6 +50,8 @@ uint8_t Callback_isPingCheckReady = 0;
|
||||
/* <20>Լ<EFBFBD>ģʽ <20><>ʶ */
|
||||
uint8_t PC_isConnected = 0;
|
||||
|
||||
uint8_t is_jump_main = 0;
|
||||
|
||||
static BSP_BTN_EVENT_t BTN_Event;
|
||||
|
||||
/* !
|
||||
@ -56,32 +59,39 @@ static BSP_BTN_EVENT_t BTN_Event;
|
||||
*/
|
||||
int ebyte_main( void )
|
||||
{
|
||||
/* <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Դ <20><>ʼ<EFBFBD><CABC> */
|
||||
Ebyte_BSP_Init();
|
||||
/* (<28><>ѡ) <20><><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>FIFO <20>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>д<EFBFBD><D0B4><EFBFBD> */
|
||||
Ebyte_FIFO_Init( &hfifo, EBYTE_FIFO_SIZE );
|
||||
/* EBYTE <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */
|
||||
Ebyte_RF.Init();
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
Ebyte_RF.EnterReceiveMode( 0 );
|
||||
/* MCU <20><>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD> */
|
||||
Ebyte_BSP_GlobalIntEnable();
|
||||
/* Init Systick */
|
||||
systick_config();
|
||||
#if 0
|
||||
/* <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Դ <20><>ʼ<EFBFBD><CABC> */
|
||||
Ebyte_BSP_Init();
|
||||
/* (<28><>ѡ) <20><><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>FIFO <20>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>д<EFBFBD><D0B4><EFBFBD> */
|
||||
Ebyte_FIFO_Init( &hfifo, EBYTE_FIFO_SIZE );
|
||||
/* EBYTE <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */
|
||||
Ebyte_RF.Init();
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
Ebyte_RF.EnterReceiveMode( 0 );
|
||||
/* MCU <20><>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD> */
|
||||
Ebyte_BSP_GlobalIntEnable();
|
||||
|
||||
EBYTE_LOG( "Start PingPong.....\r\n" );
|
||||
EBYTE_LOG( "Please push button1 or button2.....\r\n" );
|
||||
EBYTE_LOG( "Start PingPong.....\r\n" );
|
||||
EBYTE_LOG( "Please push button1 or button2.....\r\n" );
|
||||
|
||||
while( 1 ) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ӧ */
|
||||
Task_Button();
|
||||
while( !is_jump_main ) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ӧ */
|
||||
Task_Button();
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><E2B4AE><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD> <20>ͻ<EFBFBD><CDBB>밴<EFBFBD><EBB0B4><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD> */
|
||||
Task_Transmit();
|
||||
/* <20><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><E2B4AE><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD> <20>ͻ<EFBFBD><CDBB>밴<EFBFBD><EBB0B4><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD> */
|
||||
Task_Transmit();
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>:EBYTE<54><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
Ebyte_RF.StartPollTask();
|
||||
/* <20><><EFBFBD><EFBFBD>:EBYTE<54><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
Ebyte_RF.StartPollTask();
|
||||
|
||||
delay_1ms(100);
|
||||
}
|
||||
delay_1ms(100);
|
||||
}
|
||||
|
||||
Ebyte_BSP_GlobalIntDisable();
|
||||
#endif
|
||||
systick_deinit();
|
||||
}
|
||||
|
||||
/* !
|
||||
|
||||
@ -235,10 +235,10 @@ void Ebyte_BSP_Init( void )
|
||||
Ebyte_BSP_SPI_Init();
|
||||
|
||||
/* <20><>ʱ<EFBFBD><CAB1> <20><>ʼ<EFBFBD><CABC> */
|
||||
// Ebyte_BSP_TIMER_Init();
|
||||
Ebyte_BSP_TIMER_Init();
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> */
|
||||
// Ebyte_BTN_FIFO_Init( &BSP_BTN_FIFO );
|
||||
Ebyte_BTN_FIFO_Init( &BSP_BTN_FIFO );
|
||||
}
|
||||
|
||||
/* !
|
||||
@ -334,7 +334,7 @@ void Ebyte_BSP_UartTransmit( uint8_t *buffer , uint16_t length )
|
||||
|
||||
for( i = 0; i < length; i++ ) {
|
||||
while(RESET == usart_flag_get(LOG_UART, USART_FLAG_TBE));
|
||||
usart_data_transmit(LOG_UART, *buffer);
|
||||
usart_data_transmit(LOG_UART, buffer[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -69,15 +69,14 @@ void Ebyte_E48x_SetSleep( uint8_t cmd )
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void Ebyte_E48x_IntOrPollTask( void )
|
||||
{
|
||||
radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4);
|
||||
/* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if( radio_rece_data_flag != RESET ) {
|
||||
vRadioGetPacket(rf_rxbuffer,&rf_rxsize);
|
||||
Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize);
|
||||
}
|
||||
radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4);
|
||||
/* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if( radio_rece_data_flag != RESET ) {
|
||||
vRadioGetPacket(rf_rxbuffer, &rf_rxsize);
|
||||
Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -75,6 +75,7 @@ static void jump_to_main_image(uint32_t msp, uint32_t reset)
|
||||
|
||||
img_reset = (img_fptr_t)reset;
|
||||
|
||||
__disable_irq();
|
||||
#if defined(__ARM_ARCH_8M_MAIN__) || defined(__ARM_ARCH_8M_BASE__)
|
||||
/* Restore the Main Stack Pointer Limit register's reset value
|
||||
* before passing execution to runtime firmware to make the
|
||||
@ -123,9 +124,6 @@ int main(void)
|
||||
/* Initialize flash for reading system info */
|
||||
flash_init();
|
||||
|
||||
/* Init Systick */
|
||||
systick_config();
|
||||
|
||||
/* Init Systick */
|
||||
ebyte_main();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user