mcu.h

来自「MST720-DEMO程序」· C头文件 代码 · 共 118 行

H
118
字号
/******************************************************************************
 Copyright (c) 2005 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: Mcu.h
 [Date]:	13-Jan-2005
 [Comment]:
   Header file for Mcu.c module.
 [Reversion History]:
*******************************************************************************/

#ifndef _MCU_H_
#define _MCU_H_

#ifdef _MCU_C_
#define _MCUDEC_
#else
#define _MCUDEC_	extern
#endif

#define MCU_XTAL_CLK_KHZ	(MCU_XTAL_CLK_HZ / 1000)
#define MCU_XTAL_CLK_MHZ	(MCU_XTAL_CLK_KHZ / 1000)
#define MCU_MACHINE_CYCLE	12	// unit: oscillatory cycle

#define _SMOD			0

// [Timer1 Baud Rate] = (1 / 32) * {Fosc / [12 * (256 - [TH1])]}
// [TH1] = 256 - (Fosc / ([Timer1 Baud Rate] * 32 * 12)
// (TIMER1_MODE2_DIVIDER / 2) -> decimal fraction
#define TIMER1_MODE2_DIVIDER	((DWORD)UART_BAUD_RATE * MCU_MACHINE_CYCLE * 32)
#define TIMER1_MODE2_TH1	256-((DWORD)MCU_XTAL_CLK_HZ*_SMOD+MCU_XTAL_CLK_HZ+(TIMER1_MODE2_DIVIDER/2))/TIMER1_MODE2_DIVIDER

/**********************
* FUNCTION PROTOTYPES *
***********************/
_MCUDEC_ void sysMcuInit(void);

///////////////////////////////////////
// MCU delay definition
///////////////////////////////////////
#define MCU_MICROSECOND_NOP_NUM ((MCU_XTAL_CLK_MHZ + (MCU_MACHINE_CYCLE / 2)) / MCU_MACHINE_CYCLE)

#if (MCU_MICROSECOND_NOP_NUM <= 1)
#undef MCU_MICROSECOND_NOP_NUM
#define MCU_MICROSECOND_NOP_NUM 1

#define MCU_DELAY_1US() \
    { \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 2)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 3)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 4)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 5)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 6)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#elif (MCU_MICROSECOND_NOP_NUM <= 7)
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#else
#define MCU_DELAY_1US() \
    { \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
	_nop_(); \
    }
#endif


#endif	//_MCU_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?