?? init.c
字號:
#include "config.h"
/*****************************************************
IO初始化
*****************************************************/
void Init_IO ( void )
{
// PA接液晶用,狀態輸入,開啟上拉,用7個口,剩PA0 接確認鍵。
PORTA=0xFE;
DDRA=0xFE;
PORTB=0x00;
DDRB=0x00;
/******************************************************************************************************
PC0(SCL) PC1(SDA) PC7( )
******************************************************************************************************/
PORTC=0xF7;
DDRC=0x07;
/*******************************************************************************************************
PD0 (B電機正反轉) PD1(A電機正反轉 ) PD2(傳感器D) PD3(傳感器C)
PD4(CPB) PD5(CPA) PD6(傳感器B) PD7(傳感器A)
********************************************************************************************************/
//PORTD=0XCC;
PORTD=0X00;
DDRD=0X33;
}
/*******************************************************************
T1初始化,輸出兩路脈沖。未開中斷,CTC模式
OCR1A=0x00FF;OCR1B=0x00FF;
*******************************************************************/
void Init_T1( void )
{
TCCR1A=0x00;
TCCR1B=0x0A;
OCR1AH=0x01;
OCR1AL=0xFF;
OCR1BH=0x01;
OCR1BL=0xFF;
}
/*********************************************************************
T0初始化
*********************************************************************/
void Init_T0( void )
{
TCCR0 = 0x00;//停止定時器
TCNT0 = 0x00;//初始值
OCR0 = 0x79;//匹配值
TIMSK |= 0x02;//中斷允許
TCCR0 = 0x0D;//啟動定時器
}
/***********************************************************************
T2初始化
***********************************************************************/
void Init_T2( void )
{
TCCR2 = 0x00;//停止定時器
ASSR = 0x00;//異步時鐘模式
TCNT2 = 0x00;//初始值
OCR2 = 0x3E;//匹配值
TIMSK |= 0x80;//中斷允許
TCCR2 = 0x00;//啟動定時器
}
void Init_device( void )
{
MCUCR=0x00;
MCUCSR=0x80;
// Timer(s)/Counter(s) Interrupt(s) initialization
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
}
void Init_TWI(void)
{
TWCR= 0x00; //禁止TWI
TWBR= 0x15; //波特率15
//當電壓為5V時, 上拉電阻為10K時, SCL和SDA的一個時鐘周期為10us; 上拉電阻為1K時, SCL和SDA的一個時鐘周期為2.5us;
//TWBR值需要仔細調節以配合ZLG7290的IIC頻率要求
TWSR= 0x01; //預分頻系數1,或(0<<TWPS1)|(0<<TWSP0);
//IIC從機地址SLAVE=0xa0
TWCR= 0x04; //使能TWI,禁止中斷,即:TWCR =(1<<TWEN),
//禁止中斷即TWINT被清零,TWI立即開始工作,因此,在
//清零TWINT之前一定要首先完成對地址寄存器TWAR,
//狀態寄存器TWSR,以及數據寄存器TWDR的訪問。
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -