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

📄 dowmload.c

📁 本人用AVR mega32写的一个关于输出32路PWM的程序
💻 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 + -