Sho Yama
/
DelphiToI2c
Delphi I2c
Fork of Delphi2I2c by
Revision 2:343a0a1ea2fd, committed 2016-02-29
- Comitter:
- yamasho
- Date:
- Mon Feb 29 13:59:52 2016 +0000
- Parent:
- 1:dcd9840bdd66
- Commit message:
- Version 1.00 Comment modify
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r dcd9840bdd66 -r 343a0a1ea2fd main.cpp --- a/main.cpp Mon Feb 29 13:58:55 2016 +0000 +++ b/main.cpp Mon Feb 29 13:59:52 2016 +0000 @@ -20,16 +20,16 @@ /* //////////////////////////////////////////////////////////////////////// */ int I2cWrite(uint8_t I2cAddr, uint8_t len ) { - I2CS.frequency(I2cSpeed); - return I2CS.write(I2cAddr,(char *)I2cDataBuffer, len ); /* I2C シリアル書込み */ + I2CS.frequency(I2cSpeed); + return I2CS.write(I2cAddr,(char *)I2cDataBuffer, len ); /* I2C シリアル書込み */ } /* //////////////////////////////////////////////////////////////////////// */ /* // I2Cシリアル読み込み処理 ///////////////////////////////////////// */ /* //////////////////////////////////////////////////////////////////////// */ -int I2cRead(uint8_t I2cAddr, uint8_t len ) +int I2cRead(uint8_t I2cAddr, uint8_t len ) { - I2CS.frequency(I2cSpeed); - return I2CS.read(I2cAddr,(char *)I2cDataBuffer , len ); /* I2C シリアル読込み */ + I2CS.frequency(I2cSpeed); + return I2CS.read(I2cAddr,(char *)I2cDataBuffer , len ); /* I2C シリアル読込み */ } /* //////////////////////////////////////////////////////////////////////// */ /* // PCへの送信バッファ設定処理 //////////////////////////////////////// */ @@ -46,125 +46,109 @@ uint8_t i; uint8_t Count; if( !PC.readable() ) return; /* PCからの要求がなければ抜け */ - Code = PC.getc(); + Code = PC.getc(); - switch(Code) - { + switch(Code) { /*********** I2C 送信 ************/ - case 'O': - wait_us(200); //100ms 以内 - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; - } - Count = PC.getc(); + case 'O': + wait_us(200); //100ms 以内 + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; + } + Count = PC.getc(); - // PC.printf("size: %2d \n",Count); - wait_us(200); //100ms 以内 - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; - } - I2cAddr = PC.getc(); - - if(Count != 0) Count--; - for( i = 0 ; i < Count ; i++) - { - wait_us(300); - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; - } - I2cDataBuffer[i] = PC.getc(); - } - { - if(!I2cWrite( I2cAddr, Count )) - { - PcReturn('S'); // Success - } - else - { - PcReturn('E'); // Error - } - } - break; + // PC.printf("size: %2d \n",Count); + wait_us(200); //100ms 以内 + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; + } + I2cAddr = PC.getc(); + + if(Count != 0) Count--; + for( i = 0 ; i < Count ; i++) { + wait_us(300); + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; + } + I2cDataBuffer[i] = PC.getc(); + } + { + if(!I2cWrite( I2cAddr, Count )) { + PcReturn('S'); // Success + } else { + PcReturn('E'); // Error + } + } + break; /*********** I2CI BUS ************/ - case 'I': - wait_us(200); - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; /* PCからの要求がなければ抜け */ - } - Count = PC.getc(); + case 'I': + wait_us(200); + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; /* PCからの要求がなければ抜け */ + } + Count = PC.getc(); + +// PC.printf("size: %2d \n",Count); + + wait_us(200); + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; /* PCからの要求がなければ抜け */ + } + I2cAddr = PC.getc(); + + if( Count == 0) { + PcReturn('T'); // Error; + return; + } - // PC.printf("size: %2d \n",Count); - - wait_us(200); - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; /* PCからの要求がなければ抜け */ - } - I2cAddr = PC.getc(); - - if( Count == 0) - { - PcReturn('T'); // Error; - return; - } - - if(!I2cRead(I2cAddr, Count )) - { // success // - PcReturn('I'); // Success; - PcReturn(Count); - for( uint8_t i = 0 ; i < Count ; i ++ ) - { - PcReturn(I2cDataBuffer[i]); - } - } - else - { // ng // - PcReturn('E'); // Error; - } - break; + if(!I2cRead(I2cAddr, Count )) { + // success // + PcReturn('I'); // Success; + PcReturn(Count); + for( uint8_t i = 0 ; i < Count ; i ++ ) { + PcReturn(I2cDataBuffer[i]); + } + } else { + // ng // + PcReturn('E'); // Error; + } + break; /*********** SPI1O BUS ************/ - case 'S': - wait_us(200); //100ms 以内 - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; - } - Code = PC.getc(); - wait_us(200); //100ms 以内 - if( !PC.readable() ) - { - PcReturn('T'); // Error; - return; - } - I2cSpeed = ((uint16_t)Code << 8) | PC.getc(); + case 'S': + wait_us(200); //100ms 以内 + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; + } + Code = PC.getc(); + wait_us(200); //100ms 以内 + if( !PC.readable() ) { + PcReturn('T'); // Error; + return; + } + I2cSpeed = ((uint16_t)Code << 8) | PC.getc(); - PcReturn('S'); // Success; - break; + PcReturn('S'); // Success; + break; } - + } /* //////////////////////////////////////////////////////////////////////// */ /* // メイン処理 ////////////////////////////////////////////////////////// */ /* //////////////////////////////////////////////////////////////////////// */ -int main(void) +int main(void) { - //// PC 通信設定 //////////// - PC.baud(PCBAUD); /* PC間フォーマット設定 ボ-レート */ - I2cSpeed = I2CSPEED; - PC.printf("Progam Start!\n"); - while( true ) - { + //// PC 通信設定 //////////// + PC.baud(PCBAUD); /* PC間フォーマット設定 ボ-レート */ + I2cSpeed = I2CSPEED; + PC.printf("Progam Start!\n"); + while( true ) { Command(); //PC =>PCB Command - } + } } - +