|
请教大虾,ATMEGA162扩展外部SRAM,读出数据正常,但是写到外部SRAM的字节,读出来不是写的数据,也就是数据写不进去,是什么原因?
下面是读写函数:
void SRAM_rd(uint adress)
{
MCUCR|=BIT(SRE); //使能外部存储器接口
PORTB|=BIT(3); //CS=0片选生效
PORTD|=BIT(PD6); //关闭写使能
PORTA = adress;
PORTC = adress>>8;
PORTE&=~BIT(PE1);
PORTE|=BIT(PE1); //ALE产身产生一个上升,外部地址锁存使能
PORTE&=~BIT(PE1); //ALE失效
PORTD&=~BIT(PD7); //读信号使能
MCUCR&=~BIT(SRE); //关闭外部存储器接口
PORTB&=~BIT(3); //CS=1片选失效
// return PORTA ;
}
void SRAM_wr(uchar byte,uint adress)
{
MCUCR|=BIT(SRE); //使能外部存储器接口
PORTD|=BIT(PD7); //关闭读使能
PORTA = adress;
PORTC = adress>>8;
PORTE&=~BIT(PE1);
PORTE|=BIT(PE1); //ALE产身产生一个上升,外部地址锁存使能
PORTE&=~BIT(PE1); //ALE失效
PORTD&=~BIT(PD6); //写信号使能
PORTB|=BIT(3); //CS=0片选生效
delay_us(1);
PORTA=byte;
PORTB&=~BIT(3); //CS=1片选失效
PORTD|=BIT(PD6); //关闭写使能
MCUCR&=~BIT(SRE); //关闭外部存储器接口
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|