📄 appli.c
字号:
/**************** (c) 2000 STMicroelectronics **********************
PROJECT : USB - ST7 FULL SPEED
VERSION : v 0.96
CREATION DATE : 01/12/2000
AUTHOR : MICROCONTROLLER DIVISION / ST Rousset
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
MODIFICATIONS :
******************************************************************************/
#include "Condcomp.h"
#include "usb.h"
#include "generic.h"
#include "global.h"
#pragma DATA_SEG SHORT APPLI_RAM0 // Frequently used variable
unsigned char PCDR_CC;
unsigned char PDDR_CC;
//unsigned char PEDR_CC;
#pragma DATA_SEG SEC0_SHARED_RAM
unsigned char Max_Idn;
#ifdef QUANTA_DFU_RBC
// unsigned char start_mode;
#endif
#pragma DATA_SEG DEFAULT_RAM // After here, all variable will be in non-Zero page
unsigned char IDN_Config;
char USER_DATA_Received[8];
char USER_LENGTH_Receive[1];
#pragma CODE_SEG APPLI_CODE
/*-----------------------------------------------------------------------------
ROUTINE NAME : Init_port
INPUT/OUTPUT : None
DESCRIPTION : Init the port
-----------------------------------------------------------------------------*/
void Init_port(void)
{
//------------------ I/O ports initialization ----------
//// Ports Initilization are specific to the Application
}
void App_init(void)
{
Max_Idn = MAX_IDN; // sequence reversed.
asm sim;
ITSPR0 = 0x4D; //SPI interrupt set to Level 2 ,USB plug/unplug to level 2
ITSPR1 = 0x55; // USB two interrupts (ESUSP and USB peripheral int) set to level 1
ITSPR2 = 0x55; //Timer interrupt set to Level 1
MISCR1 |= 0x01; // 8 MHz internal clock
IOsInit();
TIMER_Init();
TIMEOUT_Init();
SPI_Init();
PING_Init();
Repeated_Mode=REPEAT_MODE_OFF;
asm rim;
// Timeout Initialization
tim4ms = TIMEOUT_Open(4); //rs-232 timer
tim5ms = TIMEOUT_Open(5); //watchDog timer
tim200ms = TIMEOUT_Open(200); //Tx repeat mode timer
timWait = TIMEOUT_Open(300); //ping master wait time
timIntA = TIMEOUT_Open(10); //ping CDMA wait time
}
void USER_Application(void)
{
WatchDogRefresh(); // WATCHDOG RESET
LedsUpdate(); // updating of OUTPUT LEDs
RepMode_Analyze(); // tx repeated manager
PING_Analyze(); // ping manager
}
void App_USB_Suspend(void)
{
}
void App_USB_ESuspend(void)
{
//if (vUSB_Configuration) // Device is configured
/*
// PEDDR &= ~0x01;
// PEDDR &= ~0x02;
// PEDDR &= ~0x04;
PEDR_CC = 0;
PEDR_CC |= 0x08;
PEDR_CC |= 0x10;
PEDR = PEDR_CC;
PCDR_CC |= 0x80;
PCDR = PCDR_CC;
PDDR_CC |= 0xFF;
PDDR = PDDR_CC; */
}
void Init_Short_RAM_f0_ff(void)
{
asm {
ld X, #$0f0
loop_clr_ram:
clr (X)
inc X
jrne loop_clr_ram
}
/*
unsigned char i;
unsigned char* trgt_ram;
trgt_ram = (unsigned char*)0x00ff;
// Clear 16 bytes from ff onwards,
for ( i=16 ; i != 0 ; i-- )
{
*trgt_ram = 0;
trgt_ram--;
}
*/
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// This is the main for application
void App_main()
{
//MAL_Init();
Init_Short_RAM_f0_ff(); // important as shared for flash programming
App_init();
while(1) // application main loop
{
#ifdef USB_POLLING_MODEL
USB_Polling();
#endif
if (vUSB_Configuration)
{
VSP_Action();
USER_Application();
}
}
}
/**************** (c) 2000 STMicroelectronics **********************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -