Saya sedang mengerjakan proyek V-USB yang muncul sebagai Keyboard menggunakan ATmega328p. Bagian USB berfungsi dengan baik (ini bukan proyek V-USB pertama saya), tetapi setelah saya memulai tumpukan V-USB usbInit(), semua panggilan ke perpustakaan kartu SD gagal. Jika saya memanggil fungsi yang sama sebelumnya usbInit(), semuanya berfungsi dengan baik.
Saya menggunakan klon Arduino yang disebut Diavolino, tetapi tanpa kerangka kerja Arduino / kabel. Saya memiliki USB yang terhubung ke I / O 2 dan 3 digital, dan kartu SD ke 10-13 (jalur SPI bawaan).
Saya melihat-lihat perpustakaan kartu SD dan tidak menemukan tanda-tanda menggunakan interupsi atau register selain SPxx. Saya juga sudah grepmemikirkan kode V-USB, tetapi bahkan tidak menyentuh SPxxregister.
Tanda pertama dari masalah adalah ketika perangkat terputus ketika seharusnya mengakses kartu SD. Kemudian saya meletakkan usbPoll()dan wdt_reset()memanggil semua loop penanganan kartu SD, dan menemukan bahwa dalam kasus penulisan, kartu menunggu selamanya untuk pengakuan dari kartu setelah mengirim dua byte terakhir (CRC-16).
Perpustakaan kartu SD yang saya gunakan adalah sd_rawoleh Roland Riegel.