|
哪位高手调通过M16读AT88SC0104的程序啊,我们公司以前调通过atmel9261读at88sc0104,我只是把底层几个函数给改了,但就是读不出正确的数据,我读的是at880104 0x60寄存器的值,改的底层函数如下:
void _scl_config_out(void)
{
sbi(DDRC,0);
}
void _sda_config_out(void)
{
sbi(DDRC,1);
}
void _sda_config_in(void)
{
cbi(DDRC,1);
}
/* ****************************the most lowest level ope ***********************************/
void scl_out_high(void)
{
sbi(PORTC,0);
_scl_config_out();
}
void scl_out_low(void)
{
cbi(PORTC,0);
_scl_config_out();
}
void sda_out_high(void)
{
sbi(PORTC,1);
_sda_config_out();
}
void sda_out_low(void)
{
cbi(PORTC,1);
_sda_config_out();
}
unsigned int sda_in(void)
{
unsigned long val;
_sda_config_in();
nopp();
val = PINC;
//val=AT91F_PIO_GetInput(AT91C_BASE_PIOA);
//printf("pioa %x \n\r",val);
val=val&(1<<1);
if(val==0)
{
return 0;
}
else{
return 1;
}
}
而且用示波器看了波形跟atmel9261的一样,只是速率有所不同。
|
|