Tôi đang dùng atmega16 và có sử dụng 8 bít của cổng C để đặt địa chỉ bằng switch cứng bên ngoài. nhưng khi đọc giá trị của cổng C thông qua thanh ghi PINC thì cho giá trị không đúng như thực tế switch đã đặt. Nhưng khi dùng cổng B để làm việc này thì không sao cả. mong các bác cho ý kiến giúp đỡ.
Code của tôi như sau:
void main(void)
{
unsigned char address;
//cấu hình cổng C.
DDRC=0x00;//tất cả là inputs.
PORTC=0xFF;//các cổng đều được pull-up.
address=PINC;//giá trị của address không đúng như giá trị thực đã đặt bằng sw.
......
}
Code của tôi như sau:
void main(void)
{
unsigned char address;
//cấu hình cổng C.
DDRC=0x00;//tất cả là inputs.
PORTC=0xFF;//các cổng đều được pull-up.
address=PINC;//giá trị của address không đúng như giá trị thực đã đặt bằng sw.
......
}
Comment