📄 bldc08.c
字号:
/***********************************************************************
* HEADER_START *
* *
* Name: bldc08.c *
* Project: Normal Sensor HC08 Control of BLDC Motor *
* Description: main sw *
* Processor: HC08QY2/4 *
* HW: MC68HC908QY2/4 BLDC Brushed Motor Control *
* Revision: 2.0 *
* Date: 13,Nov 2005 *
* Compiler: METROWERKS ANSI-C/cC++ Compiler for HC08 *
* V-5.0.12 ICG *
* Author: Yuebo Ma *
* Company: ALT Yangzhou *
* Security: General Business Information *
* *
* *
* =================================================================== *
* Copyright (c): MOTOROLA Inc.,2004, All rights reserved. *
* *
* =================================================================== *
* THIS SOFTWARE IS PROVIDED BY MOTOROLA RSAL "AS IS" AND ANY *
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE *
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR *
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MOTOROLA RSAL OR *
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT *
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; *
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) *
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, *
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) *
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED *
* OF THE POSSIBILITY OF SUCH DAMAGE. *
* =================================================================== *
*
*/
/******************************************************************************/
/* I N C L U D E H E A D E R F I L E S */
/******************************************************************************/
#include "qy2io.h" /* file contains QY2/4 registers definition */
#include "ram.h" /* file contains RAM global variables */
#include "code_fun.h" /* file contains function declarations */
void MCUInit (void);
void AppInit (void);
/******************************************************************************/
/* FUNCTION DEFINITIONS */
/******************************************************************************/
/******************************************************************************/
/************************ M A I N *****************************************/
/******************************************************************************/
void main(void)
{
DisableInt();
MCUInit ();
AppInit();
ParamInit (); /* initialize motor parameters variables */
EnableInt();
/************** MAIN INFINITE LOOP - BEGIN ************************************/
for(;;) {
if( Scan_Status.B.MODETESTFINISH )
DataShowInTest();
else
DataShow2Bits(ShowCurrent);
/************ 1ms event *****************/
if( TIMER - T_125ms_Event >/*_125ms*/_62p5ms ) {
T_125ms_Event = TIMER;
T_125ms++;
while (ADSCR.B.COCO == 0)
{};
adcCurrent = ADR;
if( adcCurrent < Offset_Curr )
_1sCurrent = _1sCurrent + Offset_Curr - adcCurrent;
if( ++cntCurrent == /*8*/16 ) {
cntCurrent = 0;
aveCurrent = (unsigned char) (_1sCurrent >> 4/*3*/);
_1sCurrent = 0;
if( aveCurrent > 2 )
sumCurrent += aveCurrent;
if( !PORTA.B.MODETEST )
ShowCurrent = (unsigned char) (sumCurrent >> 3);
else
//ShowCurrent = ( sumCurrent + 2000 ) >> 12;
ShowCurrent = (unsigned char) (sumCurrent >> 12);
if( ShowCurrent > 99 )
ShowCurrent = 0;
}
ADSCR.R = C_Current;
}
//ScanModeTest();
ScanModePORT();
ModeTest();
}
/************** MAIN INFINITE LOOP - END **************************************/
}
/************** [BEGIN - MCUInitialize ()] ************************************
*
* Function: MCUInit (void)
*
* Description:
* MCU Initialization
*
* MCU Initialization after reset
*
******************************************************************************/
/************** MCU INITIALIZATIONS - BEGIN ***********************************/
void MCUInit (void)
{
/************** System Config *****************************************************/
CONFIG1.R = I_CONFIG1; /* Config for Watchdog disabled */
OSCTRIM = 0x80; /* Trim adjust */
/************** Ports Initialization ******************************************/
DDRA = I_DDRA; /* set PortA according to defined value */
PORTA.R = I_PORTA; /* clear PortA -> PWM OFF */
DDRB = I_DDRB;
PORTB.R = 0;
/* Config Input Pullup Resistors */
PTAPUE.R = I_PTAPUE;
PTBPUE.R = I_PTBPUE;
/****************** Initialization of Timer *******************/
InitTimer();
/********** Initialize parameter variables acording to board and motor set*****/
/********************* ADC initialization **************************************/
/*ADICLK.R = I_ADICLK; initialize ADC left mode,
frequency, clk source */
}
/************** MCU INITIALIZATIONS - END *************************************/
/************** [BEGIN - AppInit ()] ******************************************
*
* Function: AppInit (void)
*
* Description:
* Motor Control System Initialization
*
* Motor Control System Initialization
*
******************************************************************************/
void AppInit (void) {
/* ************************* W A I T ****************************** */
/* Wait 1 sec to get the power supply to the full voltage */
/* The time delay should be tuned according to the used power supply */
WaitMs(200);
ADSCR.R = C_Current;
}
/************** [END - AppInit ()] ********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -