📄 dowmload.c
字号:
#define EXT_DOWNLOAD_GLOBALS
#include "includes.h"
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
void TransmitChar(unsigned char OneChar)
{
while (!(UCSRA & (1<<UDRE))); // 等待发送缓冲器为空
UDR = OneChar; // 发送数据
}
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
void ImformPCStart(void)
{
TransmitChar(0xFF); //发送字节长度
TransmitChar(0x01); //
}
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
void NackToPc(void)
{
TransmitChar(0xFF); //发送字节长度
TransmitChar(0x04); //
}
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
void AckToPc(void)
{
TransmitChar(0xFF); //发送字节长度
TransmitChar(0x03); //
}
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
void DownLoadDispose(void)
{
TestCounter=0;
ImformPCStart( );
SET_DOWN_LOAD_ENABLE; //充许下载,不是实时控制。
SET_UART_REC_READY; //充许接收
SET_DL_STOP_FLAG; //下载没有开始的标志
DL_OVER_FLAG=0;
DL_REALY_OVER=0;
UART_ERROR_FLAG=0;
LastMode = EEPROM_read(LASTMODE_AD);
for(GerneralCount=0;GerneralCount<3000;GerneralCount++)
{
_delay_us(10);
while(IS_DL_CONTINUE_FLAG) //下载开始的标志?
{
if(UART_ERROR_FLAG)
{
NackToPc();
UART_ERROR_FLAG=0;
}
if(IS_UART_DADA_DISPOSE) //如果下载完成了一条信息
{
if(DL_REALY_OVER) //如果下载完成
{
EEPROM_write(INTERVAL_AD,Interval);
EEPROM_write(ModeBuffer*2,(unsigned char)(BigStepNum[ModeBuffer]/256));
EEPROM_write(ModeBuffer*2+1,(unsigned char)(BigStepNum[ModeBuffer]%256)); //这里应该把步长写到eeprom中
EEPROM_write(HSTIME_AD,HStartTime);
EEPROM_write(LSTIME_AD,LStartTime);
WriteBigStep( ModeBuffer,((int)(BigStepBuffer0))*256+ (BigStepBuffer1-1) );
SET_DOWN_LOAD_DISABLE; ////下载完成
SET_DL_STOP_FLAG;
}
else
{
WriteBigStep( ModeBuffer,((int)(BigStepBuffer0))*256+ (BigStepBuffer1-1) );
AckToPc();
TestCounter++;
}
SET_UART_REC_READY; //充许下载
}
}
}
//SET_UART_REC_READY; //充许下载
SET_DOWN_LOAD_DISABLE;
SET_DL_STOP_FLAG;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -