📄 config.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 + -