Selama rutin inisialisasi kode saya saya gunakan untuk melakukan hal-hal seperti:
clr r0 ; will always stay zero
dan:
out PORTA, r0; initialize ports
out DDRA, r0
out PORTB, r0
...
Apakah ini sebenarnya perlu? Atau dapatkah saya yakin ini dilakukan secara otomatis setelah reset? Terutama, dapatkah saya mengandalkan semua port untuk ditetapkan sebagai input secara default sehingga tidak ada masalah dengan pemilihan eksternal ketika tidak ada kode yang dieksekusi?
Inisialisasi port SELALU adalah ide yang baik, terlepas dari apa yang dikatakan lembar data.
Jika datasheet tidak mengatakan apa-apa maka itu adalah ide yang sangat vital.
Anda hanya perlu menentukan konten data port jika Anda peduli tentang apa yang akan terjadi ketika program Anda berjalan.
Jika Anda tidak peduli dengan hasilnya, Anda tidak perlu mengatur bit data port :-).
Jika pabrikan mengatakan secara eksplisit di lembar data bahwa bit data port diatur atau dihapus maka mereka mungkin TETAPI itu MASIH merupakan ide yang sangat bagus untuk menginisialisasinya sendiri. "Batas kondisi" adalah di mana sebagian besar kesalahan - misalnya mulai dari satu lingkaran, akhir dari satu lingkaran, penyangga melingkar membungkus titik bulat, .... Startup prosesor adalah perangkat keras yang setara. Dalam dunia nyata dengan kebisingan dan gangguan dan orang-orang di dalamnya, bertanggung jawab atas program Anda sebanyak yang Anda bisa adalah ide yang sangat bagus. Inisialisasi port adalah bagian yang mudah untuk ini.
sumber
Baik register maupun SRAM diinisialisasi setelah reset, hanya beberapa register periferal. Anda harus menginisialisasi hal-hal yang Anda gunakan.
sumber
UCSRC
di lembar data. Bagaimana dengan port I / O, terutama arah data?