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

📄 hvsp.c

📁 采用mega16设计的avr单片机编程工具
💻 C
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file	HVSP.c
/// @author	Simon Qian(webmaster@SimonQian.com)
/// @date	Last Update on 2008-04-07
/// @brief	HVSP Programming Protocol for AVR
/// @par	license
/// 		AVRminiProg is distributed under the terms and conditions of GPLv2, see License.txt
////////////////////////////////////////////////////////////////////////////////////////////////////
#include <avr/io.h>

#include "../../../type.h"
#include "../../../app_cfg.h"

#include "../../../MCU/gpio.h"

#include "../../../Delay/delay.h"

#include "../HV.h"
#include "HVSP.h"

#if AVRP_HVSP_SHOULD_ENABLE

/// HVSP Communicate
/// @param[in]	sii		data to output on SII
/// @param[in]	sdi		data to output on SDI
/// @return		data read from SDO
uint8 HVSP_Comm(uint8 sii,uint8 sdi)
{
	uint8 i,sdo;

	HVSP_SII_Clr();
	HVSP_SDI_Clr();
	HVSP_SCI_Set();
	sdo = 0;
	HVSP_SCI_Clr();

	for(i = 0;i < 8;i++)
	{
		sdo <<= 1;
		if(HVSP_SDO_Get())
			sdo |= 1;

		if(sii & 0x80)
			HVSP_SII_Set();
		else
			HVSP_SII_Clr();
		if(sdi & 0x80)
			HVSP_SDI_Set();
		else
			HVSP_SDI_Clr();

		HVSP_SCI_Set();
		sdi <<= 1;
		sii <<= 1;
		HVSP_SCI_Clr();
	}

	HVSP_SII_Clr();
	HVSP_SDI_Clr();

	HVSP_SCI_Set();
	HVSP_SCI_Clr();
	HVSP_SCI_Set();
	HVSP_SCI_Clr();

	return sdo;
}

/// HVSP Wait Ready
/// @return		Ready or Not
uint8 HVSP_RDY_Wait(void)
{
	uint16 dly = 0xFFFF;

	while(!HVSP_RDY_Get() && (--dly > 0));

	if(dly)
		return HVSP_Success;
	else
		return HVSP_Error;
}

/// HVSP Initialization
/// @return
void HVSP_Init(void)
{
	HV_Init();

	HVSP_SCI_Clr();
	HVSP_SCI_SetOutput();
	HVSP_SDI_SetOutput();
	HVSP_SII_SetOutput();
}

/// HVSP Finilization
/// @return
void HVSP_Fini(void)
{
	HV_Fini();

	HVSP_SDO_SetInput();
	HVSP_SDI_SetInput();
	HVSP_SII_SetInput();
	HVSP_SCI_SetInput();
}

#endif		// #if AVRP_HVSP_SHOULD_ENABLE

⌨️ 快捷键说明

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