求指教,AVR单片机中I/O引脚的PINA为只读寄存器,那为什么还能写?
如下:PING &=0X1F; 书上写的是如果在PIN内写入1,则数据寄存器(PORTX)的该位发生“1,,0的转换”,这句话是什么意思呢?是说本来是1变成0,本来是0变成1么,但是我试了没有发生任何变化额?
完整程序如下: #include <avr/io.h>
int main(void)
{
DDRA=0XFF;
PORTA=0X55;
SFIOR=0x00;
DDRG = 0X00;
PORTG = 0Xff;
while(1)
{
PING &=0X1F;
switch((PING&0x1F))
{
case 0x1E: while((PING&0x1F)==0x1E);PORTA =0x01;break;
case 0x1D: while((PING&0x1F)==0x1D);PORTA =0x02;break;
case 0x1B: while((PING&0x1F)==0x1B);PORTA =0x04;break;
case 0x17: while((PING&0x1F)==0x17);PORTA =0x08;break;
case 0x0F: while((PING&0x1F)==0x0F);PORTA =0x10;break;
}
}
}
|