求指教,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;
}
}
}
|