bitCommunication

Dependents:   Tourobo2022_TBCMotorDriver

Committer:
YutaTogashi
Date:
Fri Mar 06 10:29:15 2020 +0000
Revision:
1:07e4d319fabf
Parent:
0:84d855550633
20200306 AddComment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YutaTogashi 0:84d855550633 1 #include "bitCommunication.h"
YutaTogashi 0:84d855550633 2 #include "mbed.h"
YutaTogashi 0:84d855550633 3
YutaTogashi 0:84d855550633 4 /************************************書き込み*****************************************/
YutaTogashi 0:84d855550633 5 /**変数にreturnするバージョン**/
YutaTogashi 0:84d855550633 6 int bitWrite(int data,int bitNumber,bool content) {
YutaTogashi 0:84d855550633 7 int result;
YutaTogashi 0:84d855550633 8 if(content) {
YutaTogashi 0:84d855550633 9 result = data | (0b00000001 << bitNumber);
YutaTogashi 0:84d855550633 10 } else {
YutaTogashi 0:84d855550633 11 result = data & (~(0b00000001 << bitNumber));
YutaTogashi 0:84d855550633 12 }
YutaTogashi 0:84d855550633 13 return result;
YutaTogashi 0:84d855550633 14 }
YutaTogashi 0:84d855550633 15
YutaTogashi 0:84d855550633 16 /**アドレスを受け取って処理するバージョン**/
YutaTogashi 0:84d855550633 17 void bitWrite(int *dataAdress,int bitNumber,bool content) {
YutaTogashi 0:84d855550633 18 if(content) {
YutaTogashi 0:84d855550633 19 *dataAdress = *dataAdress | (0b00000001 << bitNumber);
YutaTogashi 0:84d855550633 20 } else {
YutaTogashi 0:84d855550633 21 *dataAdress = *dataAdress & (~(0b00000001 << bitNumber));
YutaTogashi 0:84d855550633 22 }
YutaTogashi 0:84d855550633 23 }
YutaTogashi 0:84d855550633 24
YutaTogashi 0:84d855550633 25 /**配列のアドレスを受け取って処理するバージョン**/
YutaTogashi 0:84d855550633 26 void bitWrite(int *dataArray,int arrayNumber,int bitNumber,bool content) {
YutaTogashi 0:84d855550633 27 if(content) {
YutaTogashi 0:84d855550633 28 dataArray[arrayNumber] = dataArray[arrayNumber] | (0b00000001 << bitNumber);
YutaTogashi 0:84d855550633 29 } else {
YutaTogashi 0:84d855550633 30 dataArray[arrayNumber] = dataArray[arrayNumber] & (~(0b00000001 << bitNumber));
YutaTogashi 0:84d855550633 31 }
YutaTogashi 0:84d855550633 32 }
YutaTogashi 0:84d855550633 33
YutaTogashi 0:84d855550633 34 /************************************読み込み******************************************/
YutaTogashi 0:84d855550633 35 /**指定したbitが0or1かをreturn**/
YutaTogashi 0:84d855550633 36 int bitRead(int data,int bitNumber) {
YutaTogashi 0:84d855550633 37 int result=0;
YutaTogashi 0:84d855550633 38 result = (data >> bitNumber) & 0b00000001;
YutaTogashi 0:84d855550633 39 return result;
YutaTogashi 0:84d855550633 40 }