⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qtimer.h

📁 MC56F802BLDC 可以使用的算法 就是电机启动有点慢
💻 H
📖 第 1 页 / 共 2 页
字号:
/*******************************************************************************
*
*  Motorola Inc.
*  (c) Copyright 2000 Motorola Inc.
*  ALL RIGHTS RESERVED.
*
********************************************************************************
*
*
*  File Name:   qtimer.h
*
*  Description: Header file for Quad Timer (QT) driver.
*
*
*  Modules Included:
*
*  Notes: 
*
*
*******************************************************************************/
#ifndef __QTIMER_H
#define __QTIMER_H



/*******************************************************************************
	Quad Timer base addresses used in ioctl()
*******************************************************************************/
#define QTIMER_A0	(&ArchIO.TimerA.Channel0)
#define QTIMER_A1	(&ArchIO.TimerA.Channel1)
#define QTIMER_A2	(&ArchIO.TimerA.Channel2)
#define QTIMER_A3	(&ArchIO.TimerA.Channel3)
#define QTIMER_B0	(&ArchIO.TimerB.Channel0)
#define QTIMER_B1	(&ArchIO.TimerB.Channel1)
#define QTIMER_B2	(&ArchIO.TimerB.Channel2)
#define QTIMER_B3	(&ArchIO.TimerB.Channel3)
#define QTIMER_C0	(&ArchIO.TimerC.Channel0)
#define QTIMER_C1	(&ArchIO.TimerC.Channel1)
#define QTIMER_C2	(&ArchIO.TimerC.Channel2)
#define QTIMER_C3	(&ArchIO.TimerC.Channel3)
#define QTIMER_D0	(&ArchIO.TimerD.Channel0)
#define QTIMER_D1	(&ArchIO.TimerD.Channel1)
#define QTIMER_D2	(&ArchIO.TimerD.Channel2)
#define QTIMER_D3	(&ArchIO.TimerD.Channel3)




/*******************************************************************************
	Defines for appconfig.h for each timer/counter
********************************************************************************
	void qtxxISR(void);
	#define INT_VECTOR_ADDR_yy			qtxxISR
	#define ITCN_INT_PRIORITY_yy		value 0 to 7 (0 means interrupt is disabled)

	#define QT_xx_CONTROL_REG			0x0000
	#define QT_xx_STATUS_CONTROL_REG	0x0000
	#define QT_xx_COMPARE_REG1			0x0000
	#define QT_xx_COMPARE_REG2			0x0000
	#define QT_xx_LOAD_REG				0x0000
	#define QT_xx_COUNTER_REG			0x0000

	where:
	xx is timer/counter:
		D0,D1,D2,D3,C0,C1,C2,C3,B0,B1,B2,B3,A0,A1,A2,A3
	yy is corresponding interrupt vector:
		30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45
*/




/*******************************************************************************
	ioctl() commands
*******************************************************************************/
/*		command							parameters and commentary */
#define QT_INIT							/* NULL */
#define QT_SET_COUNT_MODE				/* see below */
#define QT_SET_PRIMARY_SOURCE			/* see below */
#define QT_SET_SECONDARY_SOURCE			/* QT_COUNTER0_INPUT / QT_COUNTER1_INPUT /
										   QT_COUNTER2_INPUT / QT_COUNTER3_INPUT */
#define QT_SET_COUNT_ONCE				/* QT_COUNT_REPEATEDLY / QT_UNTIL_COMPARE_AND_STOP */
#define QT_SET_COUNT_LENGTH				/* QT_ROLL_OVER / QT_UNTIL_COMPARE_AND_REINIT */
#define QT_SET_COUNT_DIRECTION			/* QT_COUNT_UP / QT_COUNT_DOWN */
#define QT_CO_CHANNEL_INIT				/* QT_ENABLE / QT_DISABLE */
#define QT_SET_OUTPUT_MODE				/* see below */

#define QT_SET_FLAG						/* QT_COMPARE_FLAG | QT_OVERFLOW_FLAG | QT_INPUT_EDGE_FLAG | QT_VAL_FLAG */
#define QT_CLEAR_FLAG					/* QT_COMPARE_FLAG | QT_OVERFLOW_FLAG | QT_INPUT_EDGE_FLAG | QT_VAL_FLAG */
#define QT_READ_FLAG					/* QT_COMPARE_FLAG | QT_OVERFLOW_FLAG | QT_INPUT_EDGE_FLAG | QT_VAL_FLAG, returns 0x0000 - bits are cleared, or returns 0x8000 (Timer Compare Flag is set) | 0x2000 (Timer Overflow Flag is set) | 0x0800 (Input Edge Flag is set) | 0x0008 (VAL Flag is set) */
#define QT_ENABLE_INT					/* QT_COMPARE_INT | QT_OVERFLOW_INT | QT_INPUT_EDGE_INT */
#define QT_DISABLE_INT					/* QT_COMPARE_INT | QT_OVERFLOW_INT | QT_INPUT_EDGE_INT */
#define QT_SET_INPUT_POLARITY			/* QT_NORMAL_POLARITY / QT_INVERTED_POLARITY */
#define QT_READ_EXT_INPUT_PIN			/* NULL, returns 0x0000 (input pin is 0) or 0x0100 (input pin is 1) */
#define QT_SET_CAPTURE_MODE				/* QT_CAPTURE_DISABLED / QT_RISING_EDGE / QT_FALLING_EDGE / QT_BOTH_EDGES */
#define QT_MASTER_MODE					/* QT_ENABLE / QT_DISABLE */
#define QT_EXT_OFLAG_FORCE				/* QT_ENABLE / QT_DISABLE */
#define QT_FORCE_OFLAG					/* 0 (force OFLAG to 0) / 1 (force OFLAG to 1),  use this command only if timer is disabled */
#define QT_SET_OUTPUT_POLARITY			/* QT_NORMAL_POLARITY / QT_INVERTED_POLARITY */
#define QT_OUTPUT_ON_EXT_PIN			/* QT_ENABLE / QT_DISABLE */

#define QT_WRITE_CONTROL_REG			/* 16 bit value */
#define QT_WRITE_STATUS_CONTROL_REG		/* 16 bit value */
#define QT_WRITE_COMPARE_REG1			/* 16 bit value */
#define QT_WRITE_COMPARE_REG2			/* 16 bit value */
#define QT_WRITE_LOAD_REG				/* 16 bit value */
#define QT_WRITE_COUNTER_REG			/* 16 bit value */

#define QT_READ_CONTROL_REG				/* NULL, returns UWord16 */
#define QT_READ_STATUS_CONTROL_REG		/* NULL, returns UWord16 */
#define QT_READ_COMPARE_REG1			/* NULL, returns UWord16 */
#define QT_READ_COMPARE_REG2			/* NULL, returns UWord16 */
#define QT_READ_LOAD_REG				/* NULL, returns UWord16 */
#define QT_READ_COUNTER_REG				/* NULL, returns UWord16 */
#define QT_READ_CAPTURE_REG				/* NULL, returns UWord16 */
#define QT_READ_HOLD_REG				/* NULL, returns UWord16 */




/*******************************************************************************
	QT constants used in the ioctl() as parameters
*******************************************************************************/
/* Modes (used in QT_SET_COUNT_MODE command) */
#define QT_NO_OPERATION					0	/*0x0000*/
#define QT_COUNT_RISING_EDGES_MODE		1	/*0x2000*/
#define QT_COUNT_BOTH_EDGES_MODE		2	/*0x4000*/
#define QT_GATED_COUNT_MODE				3	/*0x6000*/
#define QT_QUADRATURE_COUNT_MODE		4	/*0x8000*/
#define QT_SIGNED_COUNT_MODE			5	/*0xA000*/
#define QT_TRIGGERED_COUNT_MODE			6	/*0xC000*/
#define QT_CASCADE_COUNT_MODE			7	/*0xE000*/
 /* special modes */
#define QT_ONE_SHOT_MODE				6	/*0xC000*/
#define QT_PULSE_OUTPUT_MODE			1	/*0x2000*/
#define QT_FIXED_FREQ_PWM_MODE			1	/*0x2000*/
#define QT_VARIABLE_FREQ_PWM_MODE		1	/*0x2000*/

/* Primary Count Sources (used in QT_SET_PRIMARY_SOURCE command).
   Secondary Count Sources (used in QT_SET_SECONDARY_SOURCE command). */
#define QT_COUNTER0_INPUT				0	/*0x0000*/
#define QT_COUNTER1_INPUT				1	/*0x0200*/
#define QT_COUNTER2_INPUT				2	/*0x0400*/
#define QT_COUNTER3_INPUT				3	/*0x0600*/
#define QT_COUNTER0_OUTPUT				4	/*0x0800*/
#define QT_COUNTER1_OUTPUT				5	/*0x0A00*/
#define QT_COUNTER2_OUTPUT				6	/*0x0C00*/
#define QT_COUNTER3_OUTPUT				7	/*0x0E00*/
#define QT_PRESCALER_DIV_1				8	/*0x1000*/
#define QT_PRESCALER_DIV_2				9	/*0x1200*/
#define QT_PRESCALER_DIV_4				10	/*0x1400*/
#define QT_PRESCALER_DIV_8				11	/*0x1600*/
#define QT_PRESCALER_DIV_16				12	/*0x1800*/
#define QT_PRESCALER_DIV_32				13	/*0x1A00*/
#define QT_PRESCALER_DIV_64				14	/*0x1C00*/
#define QT_PRESCALER_DIV_128			15	/*0x1E00*/

/* Continuous or one shot counting mode (used in QT_SET_COUNT_ONCE command) */
#define QT_COUNT_REPEATEDLY				false
#define QT_UNTIL_COMPARE_AND_STOP		true

/* Length (used in QT_SET_COUNT_LENGTH command) */
#define QT_ROLL_OVER					false
#define QT_UNTIL_COMPARE_AND_REINIT		true

/* Count Direction (used in QT_SET_COUNT_DIRECTION command) */
#define QT_COUNT_UP						false
#define QT_COUNT_DOWN					true

/* Output Mode (used in QT_SET_OUTPUT_MODE command) */
#define QT_SET_WHILE_ACTIVE				0
#define QT_CLEAR_ON_COMPARE				1
#define QT_SET_ON_COMPARE				2
#define QT_TOGGLE_ON_COMPARE			3
#define QT_TOGGLE_USING_ALT_COMPARE		4
#define QT_CLEAR_ON_SECONDARY			5
#define QT_CLEAR_ON_COUNTER_ROLLOVER	6
#define QT_ASSERT_ON_GATED_CLOCK		7

/* Quad Timer Interrupts Flags and Interrupt Enable bits */
#define QT_COMPARE_FLAG					0x8000
#define QT_OVERFLOW_FLAG				0x2000
#define QT_INPUT_EDGE_FLAG				0x0800
#define QT_VAL_FLAG						0x0008
#define QT_COMPARE_INT					0x4000
#define QT_OVERFLOW_INT					0x1000
#define QT_INPUT_EDGE_INT				0x0400

⌨️ 快捷键说明

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