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

📄 config.c

📁 使用Atmega8单片机开发的一个激光治疗仪的人机接口程序
💻 C
字号:
//////////////////////////////////////////////////////////
// Config Code Configuration File Desined by Huanic.chao//
//////////////////////////////////////////////////////////

#include "config.h"

// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Reg_Init(void)
{
	SREG;
	SP;
//	SPL;
//	SPH;
	SFIOR=0x00;//[--,--,--,ADHSM,ACME,PUD,PSR2,PSR10]//SFIOR=0x04;
	SPMCR;//[SPMIE,RWWSB,--,RWWSRE,BLBSET,PGWRT,PGERS,SPMEN]
	MCUCSR;//[--,--,--,--,WDFR,BORF,EXTRF,PORF]
}

void Oscillator_Init(void)
{
	OSCCAL=0xC0;
}

void Port_Init(void)
{
/*****
	PINB;
	DDRB=0xBD;//DDRB=0xBF;
	PORTB=0B10100000;//PORTB=0x66;   //0B01100110
	PINC;
	DDRC=0x4F;//DDRC=0x0F;
	PORTC=0x00;
	PIND;
	DDRD=0xFF;
	PORTD=0x00;

	DelayMs(200);
***********/
	PINB;
	DDRB=0xBD;//DDRB=0xBF;
	PORTB=0B11100010;//PORTB=0x66;   //0B01100110
	PINC;
	DDRC=0x4F;//DDRC=0x0F;
	PORTC=0xF0;
	PIND;
	DDRD=0xFF;
	PORTD=0x00;
}

void Timer_Init(void)
{
	TCCR0=0x05;//[--,--,--,--,--,CS02,CS01,CS00]
	TCNT0=0x64;
	TCCR1A = 0x08;//TCCR1A = 0x40;//OCIE1A置位//[COM1A1,COM1A0,COM1B1,COM1B0,FOC1A,FOC1B,WGM11,WGM10]
	TCCR1B = 0x01; //start Timer,无分频 //[ICNC1,ICES1,--,WGM13,WGM12,CS12,CS11,CS10]
	TCNT1=0x0000;	
//	TCNT1L;
//	TCNT1H;

	//OCR1A=0x7D00;
	OCR1A=0x3E80;	//  (1/8)*0x3e80*500=1000ms
	//OCR1A=0x1F40;
	//OCR1A=0x0FA0;
	//OCR1A=0x07D0;
	//OCR1A=0x0320;
	//OCR1A=0x00C8;
//	OCR1AL;
//	OCR1AH;
	//OCR1B=0xFFFF;
//	OCR1BL;
//	OCR1BH;
	ICR1=0x0000;
//	ICR1L;
//	ICR1H;
	TCCR2=0x00;//[FOC2,WGM20,COM21,COM20,WGM21,CS22,CS21,CS20]//start Timer,32分频 
	TCNT2=0X00;
	OCR2=0xFA;	//250*1/8*32=1s
	ASSR;//[--,--,--,--,AS2,TCN2UB,OCR2UB,TCR2UB]
	//WDTCR=0x1F;//[--,--,--,WDCE,WDE,WDP2,WDP1,WDP0] //WDTCR=0x1F;
}

void UART_Init(void)
{
	UBRRL;//[UBRR7,UBRR6,UBRR5,UBRR4,UBRR3,UBRR2,UBRR1,UBRR0]
	UBRRH;//[URSEL,--,--,--,UBRR11,UBRR10,UBRR9,UBRR8]
	UCSRA;//[RXC,TXC,UDRE,FE,DOR,PE,U2X,MPCM]
	UCSRB;//[RXCIE,TXCIE,UDRIE,RXEN,TXEN,UCSZ2,RXB8,TXB8]
	UCSRC;//[URSEL,UMSEL,UPM1,UPM0,USBS,UCSZ1,UCSZ0,UCPOL]
	UDR;
/******	
	UBRRH=0;
	UBRRL=23;
	UCSRB=(1<<RXEN)|(1<<TXEN);
**********/
}

void IIC_Init(void)
{
	TWBR;//[TWBR7,TWBR6,TWBR5,TWBR4,TWBR3,TWBR2,TWBR1,TWBR0]
	TWSR;//[TWS7,TWS6,TWS5,TWS4,TWS3,--,TWPS1,TWPS0]
	TWAR;//[TWA6,TWA5,TWA4,TWA3,TWA2,TWA1,TWA0,TWGCE]
	TWDR;//[TWD7,TWD6,TWD5,TWD4,TWD3,TWD2,TWD1,TWD0]
	TWCR;//[TWINT,TWEA,TWSTA,TWSTO,TWWC,TWEN,--,TWIE]
}

void SPI_Init(void)
{
	SPCR;//[SPIE,SPE,DORD,MSTR,CPOL,CPHA,SPR1,SPR0]
	SPSR;//[SPIF,WCOL,--,--,--,--,--,SPI2X]
	SPDR;//[MSB,--,--,--,--,--,--,LSB]
}

void ADC_Init(void)
{
	ADCW;
	/****
	ADCL=0;
	ADCH=0;
	ADCSR=;//[ADEN,ADSC,ADFR,ADIF,ADIE,ADPS2,ADPS1,ADPS0]
	ADMUX=;//[REFS1,REFS0,ADLAR,--,MUX3,MUX2,MUX1,MUX0]
	*****/

 //ADCH=0;
 //ADCL=0;
ADCSRA=0X00; 
ACSR  =(1<<ACD);//关闭模拟比较器  
ADMUX=0x46;
ADCSRA=0xD6;
}

void Comparator_Init(void)
{
	ACSR==0x80;//[ADC,ACBG,ACO,ACI,ACIE,ACIC,ACIS1,ACIS0]
}

void EEPROM_Init(void)
{
	EECR;//[1,1,BLB12,BLB11,EERIE,EEMWE,EEWE,EERELSB]
	EEDR;//[MSB,--,--,--,--,--,--,LSB]
	EEAR;
	EEARL;//[EEAR7,EEAR6,EEAR5,EEAR4,EEAR3,EEAR2,EEAR1,EEAR0]
	EEARH;//[--,--,--,--,--,--,--,EEAR8]
}

void Flash_Init(void)
{
	SPMCR;
}
void Interrupts_Init(void)
{
	TIFR;//[OCF2,TOV2,ICF1,OCF1A,OCF1B,TOV1,--,TOV0]
	TIMSK=0x10;//TIMSK=0x99;//[OCIE2,TOIE2,T1CIE1,OCIE1A,OCIE1B,TOIE1,--,TOIE0]
	GIFR;//[INTF1,INTF0,--,--,--,--,--,--]
	GIMSK;//[INT1,INT0,--,--,--,--,IVSEL,IVCE]
	MCUCR;//[SE,SM2,SM1,SM0,ISC11,ISC10,ISC01,ISC00]
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
	Reg_Init();
	Oscillator_Init();
	Port_Init();
    Timer_Init();
	UART_Init();
	IIC_Init();
	SPI_Init();
	ADC_Init();
	Comparator_Init();
	Interrupts_Init();
}

⌨️ 快捷键说明

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