|
发表于 2007-4-24 07:50:47
|
显示全部楼层
很久以前写的一个控制1415的函数,有用的人看看吧,可以参考。
//control BF1415
#define DAT PINA0
#define CLK PINA1
#define EN PINA2
//***************************************************************************
// 1415控制函数
//***************************************************************************
void FreqSet(unsigned int Freq,unsigned char St)
{
unsigned char i;
unsigned int Shift=0;
//get Shift data
Shift = Freq;
Shift |= 0x4000;
if(St == 1) Shift |= 0x0800;
else Shift &= 0xf7ff;
//send 16 bit data to BF1415
sbi(PORTA,EN); //chip ensable
delay1(10);
for(i=0;i<16;i++)
{
if( (Shift & 1) == 1) sbi(PORTA,DAT);
else cbi(PORTA,DAT);
Shift = Shift>>1;
//send a clock
delay1(10);
sbi(PORTA,CLK);
delay1(10);
cbi(PORTA,CLK);
}
delay1(10);
cbi(PORTA,EN); //chip disable
}
不过现在winavr不支持 sbi和cbi了,自己改改吧。呵呵。 |
|