1: 2016-03-30 (水) 17:43:46 takaboo | 2: 2016-03-30 (水) 18:10:04 takaboo | ||
---|---|---|---|
Line 1: | Line 1: | ||
**概要 [#va21cbfb] | **概要 [#va21cbfb] | ||
- | [[DXMIO>#DXMIO]]に搭載されたLPC824のペリフェラルを応用したライブラリ集のドキュメントとサンプルプログラムです。~ | + | [[DXMIO>DXMIO]]に搭載されたLPC824のペリフェラルを応用したライブラリ集です。~ |
GCC Developer Liteにはほとんどの各マイコンボード用にGPIOやシリアル通信に関する簡単なライブラリが含まれていますが、それ以外のペリフェラル等を活用するとなるとゼロからプログラムしなくてはなりません。その場合、プログラムコードの大半がそれらの初期化ルーチンや制御ルーチンで埋め尽くされ、1つのソースコードの編集しか許容していないGCC Developer Liteでは大きな負担となります。~ | GCC Developer Liteにはほとんどの各マイコンボード用にGPIOやシリアル通信に関する簡単なライブラリが含まれていますが、それ以外のペリフェラル等を活用するとなるとゼロからプログラムしなくてはなりません。その場合、プログラムコードの大半がそれらの初期化ルーチンや制御ルーチンで埋め尽くされ、1つのソースコードの編集しか許容していないGCC Developer Liteでは大きな負担となります。~ | ||
もちろんGCC Develoer Liteにこだわらなければ、その他の便利な開発環境を使用する事で、標準で提供されるペリフェラルライブラリが使えたり、複数ソースのコンパイルや編集が可能です。~ | もちろんGCC Develoer Liteにこだわらなければ、その他の便利な開発環境を使用する事で、標準で提供されるペリフェラルライブラリが使えたり、複数ソースのコンパイルや編集が可能です。~ | ||
Line 19: | Line 19: | ||
-[[ディレイ>#zedbb449]]~ | -[[ディレイ>#zedbb449]]~ | ||
正確な時間待ちや経過時間計測。 | 正確な時間待ちや経過時間計測。 | ||
- | -[[CRCチェックサム>#]]~ | + | -[[CRCチェックサム>#i0bff965]]~ |
。 | 。 | ||
- | -[[内蔵フラッシュ>#]]~ | + | -[[内蔵フラッシュ>#k264c73f]]~ |
マイコンに内蔵されたフラッシュメモリの書き換え。 | マイコンに内蔵されたフラッシュメモリの書き換え。 | ||
-[[I2C>#]]~ | -[[I2C>#]]~ | ||
Line 46: | Line 46: | ||
***ディレイ [#zedbb449] | ***ディレイ [#zedbb449] | ||
- | 正確な時間を元に時間待ちや経過時間を計測します。元となるクロックはMRT(Multi-Rate Timer)を使用しています。 | + | 正確な時間を元に時間待ちや経過時間を計測します。元となるクロックはMRT(Multi-Rate Timer)を使用しているため、各APIを定期的にコールする際は67秒以内(2147483647/32MHz)に行う必要があります。 |
****delay_us [#o27b86b3] | ****delay_us [#o27b86b3] | ||
Line 57: | Line 57: | ||
extern void (*delay_csw) (void); | extern void (*delay_csw) (void); | ||
***CRCチェックサム [#i0bff965] | ***CRCチェックサム [#i0bff965] | ||
- | X^16+X^15+X^2+1の多項式に限定したチェックサムを算出します。DynamixelプロトコルV2に使用されるチェックサムを目的としているため、それ以外のCRCを算出する用途には使えません。 | + | X^16+X^15+X^2+1の多項式に限定したチェックサムを算出します。DynamixelプロトコルV2に使用されるチェックサムを目的としているため、それ以外のCRCを算出する用途には使えません。~ |
+ | なお、内蔵ペリフェラルもしくはソフトウェアによるCRCの算出が選択できます。 | ||
****ushpfunc [#p84a9123] | ****ushpfunc [#p84a9123] | ||
Line 74: | Line 75: | ||
extern void CRC_Writes3 (uint16_t *pCRC, ushpfunc pf, uint8_t *src, uint16_t len); | extern void CRC_Writes3 (uint16_t *pCRC, ushpfunc pf, uint8_t *src, uint16_t len); | ||
****CRC_Get [#qa44eba5] | ****CRC_Get [#qa44eba5] | ||
- | extern uint16_t CRC_Get (uint16_t *pCRC); | + | uint16_t CRC_Get (uint16_t *pCRC); |
+ | ***内蔵フラッシュ [#k264c73f] | ||
+ | ****FLASH_Write [#q20989cf] | ||
+ | bool FLASH_Write (uint32_t destaddr, uint8_t *dat8, uint32_t DataLengthByte); |