Sangat mudah untuk dilupakan, namun Arduino memanfaatkan C ++. Biasanya, bagian C ++ ada di perpustakaan serta kerangka kerja serta banyak orang hanya cenderung kode program utama mereka memanfaatkan gaya-C hanya memanfaatkan objek perpustakaan seperti ekstensi bahasa-C. [Fredllll] baru saja menghasilkan perpustakaan template desain untuk mempercepat Arduino I / O serta dia membagikannya di GitHub.

Jika Anda pernah melakukan sesuatu yang utama dengan Arduino, Anda kemungkinan besar memahami bahwa sementara digitalwrite berguna, ia melakukan banyak pekerjaan di balik layar untuk memastikan PIN adalah konfigurasi serta menambah overhead ke setiap panggilan. [FREDLLLL] Versi template desain dapat beralih spesifikasi PIN dalam dua siklus. Anda dapat memotongnya menjadi dua jika Anda tidak keberatan mengganggu tentukan pin lain pada port yang sama persis.

Anda dapat memanfaatkan konstanta untuk menghidupkan pin, seperti ini:

switchon <1> ();
Jika Anda tidak suka memanfaatkan angka ajaib (dan itu pintar) Anda dapat mendefinisikan konstan:

const uint8_t ledpin = 1;
switchon ();
Karena Anda kemungkinan besar ingin melakukan waktu yang elegan, ada juga template desain NOP yang memungkinkan Anda menunda sejumlah siklus. Inilah beberapa kode uji dari Reddit yang menghasilkan gelombang persegi 1,3 MHz, misalnya:

const uint8_t mypin = 5;
void loop () {
cli (); // nonaktifkan interupsi karena mereka akan mengacaukan waktu
melakukan {
SwitchOxclusive (); // 1 siklus
nop <5> (); // 5 siklus
switchoffportofpin (); // 1 siklus
nop <3> (); // 3 siklus
} sedangkan (1) // lompat kembali untuk dilakukan adalah 2 siklus
}
Jelas, ini bukan maksimum, karena ada delapan siklus tunda di loop.

Anda tidak perlu memahami banyak tentang template untuk memanfaatkan perpustakaan ini, namun jika Anda ingin lebih memahami, kami telah membahasnya di masa lalu. Kami sudah mencatat sebelumnya bahwa digitalwrite sekitar lima puluh kali lebih lambat dari akses port langsung, serta operasi I / O lainnya tidak jauh lebih baik. Akan mempesona untuk memeriksa apakah template dapat membuat operasi lain jauh lebih efisien.