3章:サンプルプログラムのファイル構造の変更とカスタマイズ

    作成2014.08.04

  1. パッケージ化されたサンプルプログラムのァイル構造
     パッケージ化されたサンプルプログラムのァイル構造は以下のように大変複雑で扱いにくい問題があります。
    Noファイル名
    1src\apps\usb\device\cdc_basic\firmware\MPLAB.X\funclist
    2src\apps\usb\device\cdc_basic\firmware\MPLAB.X\l.obj
    3src\apps\usb\device\cdc_basic\firmware\MPLAB.X\Makefile
    4src\apps\usb\device\cdc_basic\firmware\MPLAB.X\package.log
    5src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_device_cdc_basic.p1
    6src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_device_cdc_basic.p1.d
    7src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_device_cdc_basic.pre
    8src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_led_usb_status.p1
    9src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_led_usb_status.p1.d
    10src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\app_led_usb_status.pre
    11src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\main.p1
    12src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\main.p1.d
    13src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\main.pre
    14src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\usb_descriptors.p1
    15src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\usb_descriptors.p1.d
    16src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\1360937237\usb_descriptors.pre
    17src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\155687496\system.p1
    18src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\155687496\system.p1.d
    19src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\155687496\system.pre
    20src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\adc.p1
    21src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\adc.p1.d
    22src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\adc.pre
    23src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\buttons.p1
    24src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\buttons.p1.d
    25src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\buttons.pre
    26src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\leds.p1
    27src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\leds.p1.d
    28src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\2009317633\leds.pre
    29src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device.p1
    30src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device.p1.d
    31src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device.pre
    32src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device_cdc.p1
    33src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device_cdc.p1.d
    34src\apps\usb\device\cdc_basic\firmware\MPLAB.X\build\PICDEM_FSUSB\production\_ext\838585624\usb_device_cdc.pre
    35src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.cmf
    36src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.elf
    37src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.hex
    38src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.hxl
    39src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.lst
    40src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.map
    41src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.obj
    42src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.rlf
    43src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.sdb
    44src\apps\usb\device\cdc_basic\firmware\MPLAB.X\dist\PICDEM_FSUSB\production\MPLAB.X.production.sym
    45src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\configurations.xml
    46src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-genesis.properties
    47src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-impl.mk
    48src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-local-LPCUSBDK_16F1459.mk
    49src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-local-PICDEM_FSUSB.mk
    50src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-LPCUSBDK_16F1459.mk
    51src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-PICDEM_FSUSB.mk
    52src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Makefile-variables.mk
    53src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Package-LPCUSBDK_16F1459.bash
    54src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\Package-PICDEM_FSUSB.bash
    55src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\project.xml
    56src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\private\configurations.xml
    57src\apps\usb\device\cdc_basic\firmware\MPLAB.X\nbproject\private\private.xml
    58src\apps\usb\device\cdc_basic\firmware\src\app_device_cdc_basic.c
    59src\apps\usb\device\cdc_basic\firmware\src\app_device_cdc_basic.h
    60src\apps\usb\device\cdc_basic\firmware\src\app_led_usb_status.c
    61src\apps\usb\device\cdc_basic\firmware\src\app_led_usb_status.h
    62src\apps\usb\device\cdc_basic\firmware\src\main.c
    63src\apps\usb\device\cdc_basic\firmware\src\system_config.h
    64src\apps\usb\device\cdc_basic\firmware\src\usb_config.h
    65src\apps\usb\device\cdc_basic\firmware\src\usb_descriptors.c
    66src\apps\usb\device\cdc_basic\firmware\src\system_config\dspic33e_usb_starter_kit\io_mapping.h
    67src\apps\usb\device\cdc_basic\firmware\src\system_config\dspic33e_usb_starter_kit\system.c
    68src\apps\usb\device\cdc_basic\firmware\src\system_config\dspic33e_usb_starter_kit\system.h
    69src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep256mu506_pim\io_mapping.h
    70src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep256mu506_pim\system.c
    71src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep256mu506_pim\system.h
    72src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep512mu810_pim\io_mapping.h
    73src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep512mu810_pim\system.c
    74src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\dspic33ep512mu810_pim\system.h
    75src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24ep512gu810_pim\io_mapping.h
    76src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24ep512gu810_pim\system.c
    77src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24ep512gu810_pim\system.h
    78src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj128gb204_pim\io_mapping.h
    79src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj128gb204_pim\system.c
    80src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj128gb204_pim\system.h
    81src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb110_pim\io_mapping.h
    82src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb110_pim\system.c
    83src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb110_pim\system.h
    84src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb210_pim\io_mapping.h
    85src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb210_pim\system.c
    86src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj256gb210_pim\system.h
    87src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj64gb004_pim\io_mapping.h
    88src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj64gb004_pim\system.c
    89src\apps\usb\device\cdc_basic\firmware\src\system_config\exp16\pic24fj64gb004_pim\system.h
    90src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic16f1459\fixed_address_memory.h
    91src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic16f1459\io_mapping.h
    92src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic16f1459\system.c
    93src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic16f1459\system.h
    94src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic18f14k50\fixed_address_memory.h
    95src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic18f14k50\io_mapping.h
    96src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic18f14k50\system.c
    97src\apps\usb\device\cdc_basic\firmware\src\system_config\low_pin_count_usb_development_kit\pic18f14k50\system.h
    98src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f46j50_pim\io_mapping.h
    99src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f46j50_pim\system.c
    100src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f46j50_pim\system.h
    101src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f47j53_pim\io_mapping.h
    102src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f47j53_pim\system.c
    103src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f47j53_pim\system.h
    104src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j50_pim\io_mapping.h
    105src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j50_pim\system.c
    106src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j50_pim\system.h
    107src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j94_pim\io_mapping.h
    108src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j94_pim\system.c
    109src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f87j94_pim\system.h
    110src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f97j94_pim\io_mapping.h
    111src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f97j94_pim\system.c
    112src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f97j94_pim\system.h
    113src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f_starter_kit\io_mapping.h
    114src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f_starter_kit\system.c
    115src\apps\usb\device\cdc_basic\firmware\src\system_config\pic18f_starter_kit\system.h
    116src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24e_usb_starter_kit\io_mapping.h
    117src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24e_usb_starter_kit\system.c
    118src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24e_usb_starter_kit\system.h
    119src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24fj256da210_dev_board\io_mapping.h
    120src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24fj256da210_dev_board\system.c
    121src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24fj256da210_dev_board\system.h
    122src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_analog_starter_kit\io_mapping.h
    123src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_analog_starter_kit\system.c
    124src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_analog_starter_kit\system.h
    125src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_starter_kit\io_mapping.h
    126src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_starter_kit\system.c
    127src\apps\usb\device\cdc_basic\firmware\src\system_config\pic24f_starter_kit\system.h
    128src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb\fixed_address_memory.h
    129src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb\io_mapping.h
    130src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb\system.c
    131src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb\system.h
    132src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb_k50\fixed_address_memory.h
    133src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb_k50\io_mapping.h
    134src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb_k50\system.c
    135src\apps\usb\device\cdc_basic\firmware\src\system_config\picdem_fs_usb_k50\system.h
    136src\bsp\picdem_fs_usb\adc.c
    137src\bsp\picdem_fs_usb\adc.h
    138src\bsp\picdem_fs_usb\buttons.c
    139src\bsp\picdem_fs_usb\buttons.h
    140src\bsp\picdem_fs_usb\leds.c
    141src\bsp\picdem_fs_usb\leds.h
    142src\bsp\picdem_fs_usb\power.h
    143src\framework\usb\usb.h
    144src\framework\usb\usb_ch9.h
    145src\framework\usb\usb_common.h
    146src\framework\usb\usb_device.h
    147src\framework\usb\usb_device_cdc.h
    148src\framework\usb\usb_hal.h
    149src\framework\usb\usb_hal_pic16f1.h
    150src\framework\usb\usb_hal_pic18.h
    151src\framework\usb\usb_hal_pic24.h
    152src\framework\usb\usb_hal_pic24e.h
    153src\framework\usb\usb_hal_pic24f.h
    154src\framework\usb\src\usb_device.c
    155src\framework\usb\src\usb_device_cdc.c
    156src\framework\usb\src\usb_device_local.h


  2. ファイル構造の変更とカスタマイズ後のファイル構造
     ソース.cファイルとヘッダ.hファイルはシンプルな配置に変更しました。その他は自動生成ファイルです。
    Noファイル名
    1My-CDC-Basic.X\app_device_cdc_basic.c
    2My-CDC-Basic.X\app_device_cdc_basic.h
    3My-CDC-Basic.X\fixed_address_memory.h
    4My-CDC-Basic.X\funclist
    5My-CDC-Basic.X\l.obj
    6My-CDC-Basic.X\main.c
    7My-CDC-Basic.X\Makefile
    8My-CDC-Basic.X\system.c
    9My-CDC-Basic.X\system.h
    10My-CDC-Basic.X\system_config.h
    11My-CDC-Basic.X\usb.h
    12My-CDC-Basic.X\usb_ch9.h
    13My-CDC-Basic.X\usb_common.h
    14My-CDC-Basic.X\usb_config.h
    15My-CDC-Basic.X\usb_descriptors.c
    16My-CDC-Basic.X\usb_device.c
    17My-CDC-Basic.X\usb_device.h
    18My-CDC-Basic.X\usb_device_cdc.c
    19My-CDC-Basic.X\usb_device_cdc.h
    20My-CDC-Basic.X\usb_device_local.h
    21My-CDC-Basic.X\usb_hal.h
    22My-CDC-Basic.X\usb_hal_pic18.h
    23My-CDC-Basic.X\build\default\debug\app_device_cdc_basic.p1
    24My-CDC-Basic.X\build\default\debug\app_device_cdc_basic.p1.d
    25My-CDC-Basic.X\build\default\debug\app_device_cdc_basic.pre
    26My-CDC-Basic.X\build\default\debug\main.p1
    27My-CDC-Basic.X\build\default\debug\main.p1.d
    28My-CDC-Basic.X\build\default\debug\main.pre
    29My-CDC-Basic.X\build\default\debug\system.p1
    30My-CDC-Basic.X\build\default\debug\system.p1.d
    31My-CDC-Basic.X\build\default\debug\system.pre
    32My-CDC-Basic.X\build\default\debug\usb_descriptors.p1
    33My-CDC-Basic.X\build\default\debug\usb_descriptors.p1.d
    34My-CDC-Basic.X\build\default\debug\usb_descriptors.pre
    35My-CDC-Basic.X\build\default\debug\usb_device.p1
    36My-CDC-Basic.X\build\default\debug\usb_device.p1.d
    37My-CDC-Basic.X\build\default\debug\usb_device.pre
    38My-CDC-Basic.X\build\default\debug\usb_device_cdc.p1
    39My-CDC-Basic.X\build\default\debug\usb_device_cdc.p1.d
    40My-CDC-Basic.X\build\default\debug\usb_device_cdc.pre
    41My-CDC-Basic.X\build\default\production\app_device_cdc_basic.p1
    42My-CDC-Basic.X\build\default\production\app_device_cdc_basic.p1.d
    43My-CDC-Basic.X\build\default\production\app_device_cdc_basic.pre
    44My-CDC-Basic.X\build\default\production\main.p1
    45My-CDC-Basic.X\build\default\production\main.p1.d
    46My-CDC-Basic.X\build\default\production\main.pre
    47My-CDC-Basic.X\build\default\production\system.p1
    48My-CDC-Basic.X\build\default\production\system.p1.d
    49My-CDC-Basic.X\build\default\production\system.pre
    50My-CDC-Basic.X\build\default\production\usb_descriptors.p1
    51My-CDC-Basic.X\build\default\production\usb_descriptors.p1.d
    52My-CDC-Basic.X\build\default\production\usb_descriptors.pre
    53My-CDC-Basic.X\build\default\production\usb_device.p1
    54My-CDC-Basic.X\build\default\production\usb_device.p1.d
    55My-CDC-Basic.X\build\default\production\usb_device.pre
    56My-CDC-Basic.X\build\default\production\usb_device_cdc.p1
    57My-CDC-Basic.X\build\default\production\usb_device_cdc.p1.d
    58My-CDC-Basic.X\build\default\production\usb_device_cdc.pre
    59My-CDC-Basic.X\dist\default\debug\doprnt.d
    60My-CDC-Basic.X\dist\default\debug\doprnt.p1
    61My-CDC-Basic.X\dist\default\debug\doprnt.pre
    62My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.cmf
    63My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.elf
    64My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.hxl
    65My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.lst
    66My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.map
    67My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.obj
    68My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.rlf
    69My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.sdb
    70My-CDC-Basic.X\dist\default\debug\My-CDC-Basic.X.debug.sym
    71My-CDC-Basic.X\dist\default\production\doprnt.d
    72My-CDC-Basic.X\dist\default\production\doprnt.p1
    73My-CDC-Basic.X\dist\default\production\doprnt.pre
    74My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.cmf
    75My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.elf
    76My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.hex
    77My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.hxl
    78My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.lst
    79My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.map
    80My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.obj
    81My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.rlf
    82My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.sdb
    83My-CDC-Basic.X\dist\default\production\My-CDC-Basic.X.production.sym
    84My-CDC-Basic.X\nbproject\configurations.xml
    85My-CDC-Basic.X\nbproject\Makefile-default.mk
    86My-CDC-Basic.X\nbproject\Makefile-genesis.properties
    87My-CDC-Basic.X\nbproject\Makefile-impl.mk
    88My-CDC-Basic.X\nbproject\Makefile-local-default.mk
    89My-CDC-Basic.X\nbproject\Makefile-variables.mk
    90My-CDC-Basic.X\nbproject\Package-default.bash
    91My-CDC-Basic.X\nbproject\project.properties
    92My-CDC-Basic.X\nbproject\project.xml
    93My-CDC-Basic.X\nbproject\private\configurations.xml
    94My-CDC-Basic.X\nbproject\private\private.properties
    95My-CDC-Basic.X\nbproject\private\private.xml


  3. ファイル構造の変更方法
    (1)My-CDC-Basicプロジェクトを新規に作成します。
     手順は「PIC18F4553マイコンとPICkit3」2章:秋月電子通商サンプルプログラム「MPLABを使った使用例1」の実行と同じになります。
    (2)ソース.cファイルとヘッダ.hファイルをMy-CDC-Basic.Xフォルダー内にコピーします。
    (3)ProjectのSource Filesアイコンの右クリックして、Add Existing Itemを選択します。

    (4)ソース.cファイルを選択して、Selectボタンを押します。

    (5)全てのソース.cファイルをMy-CDC-Basicプロジェクトに加えます。
    (6)同様にProjectのHeader Filesアイコンの右クリックして、Add Existing Itemを選択します。
    (7)ヘッダ.hファイルを選択して、Selectボタンを押します。
    (8)全てのヘッダ.hファイルををMy-CDC-Basicプロジェクトに加えます。

    (9)My-CDC-Basicプロジェクトに加えたヘッダ.hファイルの#include分を修正します。
     My-CDC-Basicプロジェクト固有のヘッダは#include "usb.h"のように変更します。
     C言語共通のヘッダファイルは#include のままとします。
     変更箇所は非常に多くなりますが、同じ操作の繰り返しとなります。

    (10)「Run」_「Clean and Build Project」を選択しビルドします。
    (11)以下の表示で成功です。
    BUILD SUCCESSFUL (total time: 274ms)
    Loading code from C:/microchip/MPLAB X IDE v2.00-my/f41/41-3/My-CDC-Basic/My-CDC-Basic.X/dist/default/production/My-CDC-Basic.X.production.hex...
    Loading completed


  4. ボタンとLEDとADC関連ファイルの削除
    (1)ボタンとLEDとADC機能に関しては、初期条件として不要なため削除しました。
    (2)まず、ボタンとLEDとADC機能に関連したコードを削除します。
    (3)ボタンとLEDとADC関連ファイルを削除しても問題無い状態になったら、My-CDC-Basicプロジェクトから削除します。
    (4)削除するファイルを右クリックして、Remove From Projectを選択します。

    (5)My-CDC-Basicプロジェクトから削除したファイルは消去可能です。


  5. My-CDC-Basicプロジェクト独自機能の追加
     パソコンから加算を実行するコマンドとデータを送信して、加算の結果をパソコンに返します。
    (1)main.cの変更
    //APP_DeviceCDCBasicDemoTasks();//を削除
    MyCDCBasicTasks();//を追加

    (2)app_device_cdc_basic.hの変更
     void MyCDCBasicTasks();//を追加

    (3)app_device_cdc_basic.cの変更
    #include <stdlib.h>//を追加
    #include <stdio.h>//を追加

    //以下を追加
    void MyCDCBasicTasks()
    {
        if( USBUSARTIsTxTrfReady() == true)
        {
            uint8_t i,j,k;
            uint8_t numBytesRead;
            unsigned char FIN[5][20];
            double X1,X2,X3;
            numBytesRead = getsUSBUSART(readBuffer, sizeof(readBuffer));
    
            if(numBytesRead > 0)
            {
                j=0;k=0;
                for(i=0;i5){j=4;}
                        k=0;
                    }
                    else
                    {
                        FIN[j][k]=readBuffer[i];
                        k++;if(k>20){k=19;}
                    }
                }
                if(FIN[0][0]=='A' && FIN[0][1]=='A' && FIN[0][2]==0)
                {
                    X1=atof((const char *)FIN[1]);
                    X2=atof((const char *)FIN[2]);
                    X3=X1+X2;
    
                    sprintf(writeBuffer,"%.2f + %.2f = %.2f\r\n",X1,X2,X3);
                    numBytesRead = strlen(writeBuffer);
                    putUSBUSART(writeBuffer,numBytesRead);
                }
            }
        }
        CDCTxService();
    }
    


  6.  完成プログラムは「41-3.zip」ファイルをダウンロードしてください。
    [41-34zip]をダウンロードする。

     解凍するとフォルダー内に
    My-CDC-Basic.X
    フォルダーがあります。
    *My-CDC-Basic.Xフォルダー内に全ての関連ファイルがあります。


  7. My-CDC-Basicプロジェクトの実行
    (1)AE-USBPIC44基板への電源供給方法
     AE-USBPIC44基板への電源供給方法はいろいろ選択可能となっています。
     プログラム書込み時は、PICKit3から電源供給できますが、外部電源またはUSB接続側から電源を供給した方が動作が安定します。
    *5V、USB接続側から電源を供給を選択しました。(この場合、PICKit3から電源供給は不要です。)
    (2)以下の手順でプログラムを書込みます。
    (3)AE-USBPIC44基板とPICkit3を接続し、USBをパソコンに接続します。
    (4)AE-USBPIC44基板のUSBをパソコンに接続します。(電源供給設定は5VのUSBとします。)
    (5)Make and Program Device(Project USB Device-CDC-Basic)ボタンを押します。

    (6)プログラムを書込みが終了するとAE-USBPIC44基板は実行状態になります。
    (7)WindoWsサンプルプログラムを起動します。
    (8)C:\microchip\mla\v2013_12_20\apps\usb\device\cdc_basic\utilities\bin¥dynamic_cdc_demo.exeがWindoWsサンプルプログラムです。
    (9)dynamic_cdc_demo.exe起動画面でSend Dataに「AA#3.14#2.15#」を入力してSend Dataボタンを押すと加算結果「3.14 + 2.15 = 5.29」が表示されます。

    (10)上記画面において、#がデータの区切り記号になっています。
    (11)コマンドAA#以外では、加算は実行されません。
    (12)データは符号付の小数点を扱うことができます。
    (13)この機能はパソコンからAE-USBPIC44基板の制御指令の基本形となります。


  8. 結果の検討
    (1)My-CDC-Basicプロジェクトでは、ファイル構造をかなりシンプルに纏めることができました。
    (2)USB通信の基本部分のコードは難解で容易には理解できません。
    (3)しかし、USB通信の基本部分コードを理解しなくても容易に活用できます。
    (4)ボタン、LED、ADCに関するプログラムはわかりやすく容易です。
    (5)このため、ボタン、LED、ADCに関するプログラム部分は削除しました。
    (6)My-CDC-BasicプロジェクトのUSB通信は文字列通信となっていますが、バイナリー通信と比較して文字や浮動少数点データの扱いが簡単です。




4章:床下ファン駆動用タイマーの製作に行く。

トップページに戻る。