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

📄 hvpp.c

📁 采用mega16设计的avr单片机编程工具
💻 C
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file	HVPP.c
/// @author	Simon Qian(webmaster@SimonQian.com)
/// @date	Last Update on 2008-04-07
/// @brief	HVPP 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 "HVPP.h"


#if AVRP_HVPP_SHOULD_ENABLE

extern uint8 hvControlStack[32];

/// HVPP Change Control Line
/// @param[in]	mode	change to mode
void HVPP_ChangeMode(uint8 mode)
{
	HVPP_CTRL_Out(mode);
}

/// HVPP Write Data
/// @param[in]	mode	Write data in mode
/// @param[in]	data	Data to write
/// @return		Success
uint8 HVPP_WriteData(uint8 mode,uint8 data)
{
	HVPP_ChangeMode(mode);

	HVPP_DATA_SetOutput();
	HVPP_DATA_Out(data);

#ifdef HVPP_SignalDelay_InUS
	DelayUS(HVPP_SignalDelay_InUS);
#endif

	HVPP_XTAL1_PPulse();

#ifdef HVPP_SignalDelay_InUS
	DelayUS(HVPP_SignalDelay_InUS);
#endif

	return HVPP_Success;
}

/// HVPP Initialization
/// @return
void HVPP_Init(void)
{
	HV_Init();

//	HVPP_DATA_SetInput();
	HVPP_XTAL1_Clr();
	HVPP_XTAL1_SetOutput();
	HVPP_CTRL_Out(hvControlStack[0]);
	HVPP_CTRL_SetOutput();
}

/// HVPP Finilization
/// @return
void HVPP_Fini(void)
{
	HV_Fini();

	HVPP_DATA_SetInput();
	HVPP_CTRL_SetInput();
	HVPP_XTAL1_SetInput();
	HVPP_DATA_Out(0);
	HVPP_CTRL_Out(0);
	HVPP_XTAL1_Clr();
}

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

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

	if(dly)
		return HVPP_Success;
	else
		return HVPP_Error;
}

#endif		// #if AVRP_HVPP_SHOULD_ENABLE

⌨️ 快捷键说明

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