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

📄 initial.c

📁 AVR单片机DIY编程器!源代码及原理图都有!
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               
**                               小松工程(ilan2003)出品      
**                                 
** 文   件   名: initial.c
** 最后修改日期: 2005-12-9 0:04
** 描        述: 系统初始化函数
** 版	     本: V1.0
** 主  控  芯 片:M16  晶振频率:7.3728MHZ
** IDE:ICCAVR 6.31
**********************************************************************************************************/

#include <iom16v.h>
#include <macros.h>
#include <eeprom.h>
#include "define.h"

#include "function.h"
#include "externPara.h"
#include "Hvprog.h"
#include "eeprom_add.h"



/**********************************************************************
functionName:void timer1_init(void)
description:定时器1初始化,用于可控频率的输出,ctc模式
**********************************************************************/
void timer1_init(void)
{
	TCCR1B = 0x00; //stop
 	TCNT1H = 0x00; //setup
 	TCNT1L = 0x00;
 	OCR1BH = 0x00;
 	OCR1BL = 0xFF;
 	TCCR1A = 0x10;
 	TCCR1B = 0x01; //start Timer						   
}




/**********************************************************************
functionName:void paraInit(void)
description:变量初始化
**********************************************************************/
void globalParaInit(void)
{
	statusMachine = ST_START;
	paramControllerInit=0x00;
	prgMode=0;
	mssageEndFlag=0;
	
}


/**********************************************************************
functionName:void eepromParaInit(void)
description:对存储在EEPROM的变量初始化
读函数原形:uint16 eepromReadWord(uint16 location);
#define 	EEP_VOL_ADJUST			0x01
#define 	EEP_VOL_TARGET			0x02
**********************************************************************/
void eepromParaInit(void)
{	
	clockSpeed = EEPROMread(EEP_SCK_DURATION);
	vTarget = EEPROMread(EEP_VOL_TARGET);
	vAdjust = EEPROMread(EEP_VOL_ADJUST);
	ocsPscale=EEPROMread(EEP_OCS_PSCALE);					
	ocsCmatch=EEPROMread(EEP_VOL_CMATCH);
}



/**********************************************************************
functionName:void uart0Init(void)
description:串口初始化函数
desired baud rate: UBRRL决定
char size: 8 bit
parity: Disabled
BAUD19200 	23
BAUD57600 	7
BAUD115200	3
**********************************************************************/
void uart0Init(void)
{
 	UCSRB = 0x00; 		//disable while setting baud rate
 	UCSRA = 0x00;
 	UCSRC = 0x06;
	UBRRL = BAUD115200;  	//set baud rate lo  115200	
 	UBRRH = 0x00; 		//set baud rate hi
 	UCSRB = 0x98;	
	//UCSRB = 0x18;		//不产生中断	
}


/**********************************************************************
functionName:void portInit(void)
description:M16 IO初始化
************************************ **********************************/
void portInit(void)
{ 
	   
	DDRA = DDRA_VALUE; 	
	PORTA = PORTA_VALUE;
	
	DDRB = DDRB_VALUE;
 	PORTB = PORTB_VALUE;
	
	DDRC = DDRC_VALUE;
 	PORTC = PORTC_VALUE;
	
 	DDRD = DDRD_VALUE;
 	PORTD = PORTD_VALUE;

	SET_OE;
	SET_WR;
	CLR_BS2;
}

/**********************************************************************
functionName:void ledInit(void)
description:LED 状态初始化
#define		LED_ON_1		CLR_BIT(PORTA,PA1)	//LDE1 ON
#define		LED_OFF_1		SET_BIT(PORTA,PA1)	//LDE1 OFF
************************************ **********************************/
void ledInit(void)
{
	uint08 i;
	LED_ON_3;
	msDelay(255);
	LED_ON_2;
	msDelay(255);
	LED_ON_1;
	msDelay(255);
	LED_OFF_2;
	msDelay(255);
	LED_OFF_3;
	msDelay(255);
	msDelay(255);
	msDelay(255);
}


/**********************************************************************
functionName:void allInit(void)
description:初始化所有的器件以及变量
**********************************************************************/
void allInit(void)
{
 	
 	CLI(); 				//关闭中断源 
 	//portInit();
	exitProgMode();
	uart0Init();
	timer1_init();
	globalParaInit();
	eepromParaInit();
	ledInit();		
	MCUCR = 0x00;
 	GICR  = 0x00;
 	TIMSK = 0x00; 					//定时器0中断源设置
  	//WDTCR=0x0B;					//看门狗使能,看门狗定时时间130ms		
  	SEI(); 							//中断使能
 	//完成所有的初始化工作
}



⌨️ 快捷键说明

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