Saya menerima data melalui UART dari AVR lain. Namun saya sedang melakukan hal-hal lain jadi saya tidak ingin terus-menerus memilih UART. Saya tahu ada interupsi, tetapi saya hanya bisa melihat satu untuk menerima lengkap, yang saya anggap masih mengharuskan saya untuk polling untuk menyelesaikan transfer.
10
Jawaban:
Ada vektor interupsi untuk RXC dan TXC (RX dan TX complete) pada AVR. Anda tidak harus melakukan polling untuk ini kecuali Anda mau.
AVRFreaks memiliki postingan yang bagus tentang ini, dan begitu pula produsennya .
sumber
Interupsi rutin menyimpan data dalam buffer (buffer melingkar dengan put dan get pointer berfungsi dengan baik). Loop utama memeriksa untuk melihat apakah ada data di buffer dan ketika ada, mengeluarkannya. Loop utama dapat melakukan hal-hal lain tetapi perlu memeriksa dan menghapus data sebelum buffer overflow meluap (ketika put bertemu dengan get).
Itu tidak akan dikompilasi tetapi ini menggambarkan metode.
sumber