bitCommunication
Dependents: Tourobo2022_TBCMotorDriver
bitCommunication.cpp@1:07e4d319fabf, 2020-03-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |