📄 initialize.c
字号:
#define Initialize_C
#include "allheads.h"
/*void timer0_init(void)
{
TCCR0A=0x00;
TCCR0B=0x03;
TCNT0=0x83;
OCR0A=0x00;
OCR0B=0x00;
}*/
void timer0_init(void)
{ TCCR0B = 0x00; //stop
TCNT0 = Txd_Bit_Delay;//0xD0; //set count
TCCR0A = 0x00;
}
//TIMER2 initialize - prescale:1024
// WGM: Normal
// desired value: 20mSec
// actual value: 19.968mSec (0.2%)
void timer2_init(void)
{
TCCR2B = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT2 = 0x83; //setup
OCR2A = 0x7D;
OCR2B = 0x00;
TCCR2A = 0x00;
TCCR2B = 0x04; //start
}
void initialize(void)
{
// Crystal Oscillator division factor: 1
//#pragma optsize-
asm("cli");//CLI();
CLKPR=0x80;
CLKPR=0x00;
//#ifdef _OPTIMIZE_SIZE_
//#pragma optsize+
//#endif
PORTB=0xFF;
DDRB=0xFF;
PORTC=0xF7;
DDRC=0xf7;//ef;//0xF7;
PORTD=0x60;
DDRD=0x9C;
//TCCR0B = 0x00; //stop
//TCNT0 = 0x83; //set count
//TCCR0A = 0x00;
//TCCR0B = 0x03; //start time
/*
TCCR0A=0x00;
TCCR0B=0x03;
TCNT0=0x06;
OCR0A=0x00;
OCR0B=0x00;*/
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x67;//33;//0xCF; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B =0x98;// 0x18;//0x90
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
timer0_init();
timer2_init();
TCCR2B = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT2 = 0x83; //setup
OCR2A = 0x7D;
OCR2B = 0x00;
TCCR2A = 0x00;
TCCR2B = 0x04; //start
EICRA=0x00;
EIMSK=0x00;
PCICR=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;
// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=0x00;
// Timer/Counter 2 Interrupt(s) initialization
//TIMSK2=0x00;
TIMSK2 = 0x01;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
ADCSRB=0x00;
// Global enable interrupts
//#asm("sei")
asm("sei");// SEI();
}
void delay_ms(uchar i) {
uchar a, b;
for (a = 1; a < i; a++) {
for (b = 1; b; b++) {;}
}
}
void Delay(uint _Delay){
while(--_Delay){;}
}
void DelayLong(uint value){
uint i,j;
for(i=0;i<value;i++){
for(j=0;j<255;j++){;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -