ユーザプログラムに複数のOSS-ECAL(同じMCU機能の電子部品)を組み込む方法は、次の例を参考に行ってください。
例 : 電子部品ABC1 Sensor ( ADC type ), 電子部品ABC2 Sensor ( ADC type ), HAL Renesas SSP
Step1 フォルダ作成
1 OSS-ECAL用フォルダ作成(フォルダ名は自由)
2 ABC1およびABC2用フォルダ作成
Step2 ABC1ファイルのコピー
1 ABC1フォルダにABC1のファイルコピー
Step3 ABC2ファイルのコピー
1 ABC2フォルダにABC2のファイルコピー
Step4 共通ファイルのコピー
1 “oss_ecal.h” および “OSS-ECAL Terms of Use.txt” の最新版をコピー
2 ABC1の”user_setting.c” および “user_setting.c” をコピー
Step5 “user_setting.h” にABC1およびABC2のMCU設定
1 ADC_VDDをMCU VDD電圧 3.3 に設定
2 ADC_BITをMCU ADCのbit長 12 に設定
3 CMP_ADC_NUMをADC typeのOSS-ECAL数 2 に設定
4 ADC_ABC1をABC1に用いるADC Group g_adc0 に設定
5 ADC_ABC1_CHをABC1に用いるADC Channel ADC_REG_CHANNEL_0 に設定
6 ABC2の “user_setting.h”からADC_ABC2およびADC_ABC2_CHの#define行をコピー
7 ADC_ABC2をABC2に用いるADC Group g_adc0 に設定
8 ADC_ABC2_CHをABC2に用いるADC Channel ADC_REG_CHANNEL_1 に設定
/*-- File Header Comment Start -----------------------------------------------*/
// File Name : user_setting.h
// Reason for change: 01.00.00 : 15/11/'23 : New Release
// Specifications : -
// HAL : Renesas SSP
// Terms of Use : OSS-ECAL Terms of Use.txt
// Nickname : Blue Dragon
/*-- File Header Comment End -------------------------------------------------*/
// Define to prevent recursive inclusion
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#ifndef __USER_SETTING_H__
#define __USER_SETTING_H__
// Includes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include "oss_ecal.h"
#include <hal_data.h>
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
// Immediate definitions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADC components common setting
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define ADC_VDD 3.3F // MCU Vdd Configures the reference voltage [V]
#define ADC_BIT 12U // MCU ADC bit Note:iADC_bit is set according to MCU
// Hardware setting by user
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// OSS-ECAL DIO hard wiring
// OSS-ECAL ADC components hard wiring
#define CMP_ADC_NUM 2U // OSS-ECAL ADC components number
#define ADC_ABC1 g_adc0 // ADC Group control( g_adc0 : Generated by configuration )
#define ADC_ABC1_CH ADC_REG_CHANNEL_0 // ABC1 : MCU ADC Channel
#define ADC_ABC2 g_adc0 // ADC Group control( g_adc0 : Generated by configuration )
#define ADC_ABC2_CH ADC_REG_CHANNEL_1 // ABC2 : MCU ADC Channel
// OSS-ECAL SPI components hard wiring
// OSS-ECAL I2C components hard wiring
// OSS-ECAL Wake-up components hard wiring
// Communication setting by user
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Typedef definitions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADC components object struct
typedef struct
{
etCMP cmp; // Components number codes
const adc_instance_t* obj; // ADC object of SSP
adc_register_t const pin; // ADC channel of SSP
}stADC_SSP_OBJ;
// External constants data
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern const stADC_SSP_OBJ tblADC[ CMP_ADC_NUM ];
// Exported global variables
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Exported public functions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __USER_SETTING_H__ */
Step6 “user_setting.c” にABC2の情報追加
1 #include パス変更
2 ABC2の#include追加
3 tblADCにABC2を追加
/*-- File Header Comment Start -----------------------------------------------*/
// File Name : user_setting.c
// Reason for change: 01.00.00 : 15/11/'23 : New Release
// Specifications : -
// HAL : Renesas SSP
// Terms of Use : OSS-ECAL Terms of Use.txt
// Nickname : Blue Dragon
/*-- File Header Comment End -------------------------------------------------*/
// Includes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include "ABC1/oABC1.h"
#include "ABC2/oABC2.h"
// Static variables declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Global variables declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Static constants data declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Global constants data declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HAL GPIO object table for components
// HAL ADC object table for components
const stADC_SSP_OBJ tblADC[ CMP_ADC_NUM ] =
{
{ eABC1 , &ADC_ABC1 , ADC_ABC1_CH },
{ eABC2 , &ADC_ABC2 , ADC_ABC2_CH }
};
// HAL SPI object table for components
// HAL I2C object table for components
// Private functions prototypes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Public functions prototypes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Functions program
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Step7 oABC1関数およびoABC2関数の追加
1. ユーザプログラムのヘッダファイルにABC1およびABC2のヘッダをインクルードする。
// user program header
#include "../oABC1.h"
#include "../oABC2.h"
2. ABC1の”sample.c” を参考にAPI関数をアプリケーションに追加
// user application program
etSTS sts = oABC1( eCMD_START_READ, &vgPHY1 );
または、コマンド型API関数を追加
// user application program
etSTS sts = oABC1_START_READ( &vgPHY1 );
3. ABC2の”sample.c” を参考にAPI関数をアプリケーションに追加
// user application program
etSTS sts = oABC2( eCMD_START_READ, &vgPHY2 );
または、コマンド型API関数を追加
// user application program
etSTS sts = oABC2_START_READ( &vgPHY2 );