Apabila data yang diterima pada mesej CAN saya melebihi 327.67, ia berbalik kepada -327.68. Mengapa ini berlaku?
Sebab ia melimpah seperti itu adalah kerana ia adalah nombor bertanda 16bit. Semua saluran dalam Dash adalah bertanda jadi untuk berfungsi dengan betul anda perlu memaksanya menjadi nombor 32bit. Cara untuk melakukan ini bergantung pada di mana saluran itu terletak dalam mesej CAN. Saya telah melampirkan imej dengan beberapa contoh cara menetapkan Offset, Panjang, Topeng dan Pembahagi bergantung pada di mana saluran 'Fuel Used' diletakkan.
Satu perkara yang perlu diperhatikan, jika saluran diletakkan di bait 0, anda perlu menggunakan matematik lanjutan untuk mendapatkan pembahagi yang betul. Dalam kes ini anda memerlukan pembahagi 65536, tetapi parameter pembahagi dalam templat CAN mempunyai nilai maksimum 32767.
Sebab pembahagi adalah kerana topeng berfungsi sebagai 'AND' pada saluran, bukan pergeseran bit.
Kotak tanda bertanda/tidak bertanda masih perlu dipilih dengan betul bergantung sama ada saluran yang diterima adalah bertanda atau tidak.
Komen
0 komen
Sila daftar masuk untuk meninggalkan komen.