frdmmcxe31b_emios_input_capture kEMIOS_PEC_Continuous

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

frdmmcxe31b_emios_input_capture kEMIOS_PEC_Continuous

1,202件の閲覧回数
hyf_grass
Contributor I

I am working with the FRDM-MCXE31B development board, and I want to modify the frdmmcxe31b_emios_input_capture example program to enable the continuous counting mode for eMIOS. I have made the modifications as follows,
EMIOS_GetDefaultConfig(&emiosConfig);

emiosConfig.prescale = EXAMPLE_EMIOS_CLK_FREQ / EXAMPLE_COUNTERBUS_FREQ - 1U;
emiosConfig.useGlobalTimeBase = true;
EMIOS_Init(EXAMPLE_EMIOS, &emiosConfig);

ucMCConfig.period = 0xFFFFU;
ucMCConfig.prescale = 0U;
ucMCConfig.ucMode = kEMIOS_MC_UpCount;
ucMCConfig.clockSource = kEMIOS_ClkSrcInternal;
ucMCConfig.prescalerSource = kEMIOS_Prescaler_PrescaledClock;
ucMCConfig.counterResetTiming = kEMIOS_ResetMatchEnd;
ucMCConfig.reloadOutputDelay = 0U;
ucMCConfig.enableFreeze = false;
EMIOS_ConfigModulusCounter(EXAMPLE_EMIOS, &ucMCConfig, EXAMPLE_COUNTERBUS_CHANNEL);

ucICConfig.ucMode = kEMIOS_PEC_Continuous;//kEMIOS_IPWM;
ucICConfig.counterBus = kEMIOS_CounterBus_A;
ucICConfig.edgePolarity = kEMIOS_IC_RisingEdge;
ucICConfig.filterClock = kEMIOS_Filter_PrescaledClock;
ucICConfig.filterWidth = kEMIOS_Filter_16_Cycle;
ucICConfig.enableFreeze = false;
ucICConfig.startTime = 0x90;
ucICConfig.endTime = 0x800;
EMIOS_ConfigInputCapture(EXAMPLE_EMIOS, &ucICConfig, EXAMPLE_IC_CHANNEL);

// EMIOS_EnableUCInterrupt(EXAMPLE_EMIOS, EXAMPLE_IC_CHANNEL);
// (void)EnableIRQ(EXAMPLE_EMIOS_IRQn);

EMIOS_EnableUCPrescaler(EXAMPLE_EMIOS, EXAMPLE_COUNTERBUS_CHANNEL);
EMIOS_EnableUCPrescaler(EXAMPLE_EMIOS, EXAMPLE_IC_CHANNEL);
EMIOS_EnableGlobalPrescaler(EXAMPLE_EMIOS);
but I checked the relevant registers and found no changes at all. Could you please tell me how to configure it correctly, and which register I should read to get the counter value?

ラベル(1)
0 件の賞賛
返信
1 返信

1,177件の閲覧回数
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @hyf_grass 

 

Based on your code, please try the following modifications:

  1. Delete the following two lines, or set both of them to 0:
    ucICConfig.startTime = 0x90;
    ucICConfig.endTime = 0x800;

  2. Make sure the CounterBus is enabled:
    ucMCConfig.ucMode = kEMIOS_MC_UpCount; // Up counter mode
    ucMCConfig.period = 0xFFFF; // Maximum counter value
    ucMCConfig.prescale = 0; // No prescaling, increases counting speed

  3. The pulse count value is read from register A, and you can use the SDK API:
    EMIOS_GetAn(EMIOS_Type *base, uint8_t channel)

 
 
 
BR
Alice 
 
 

 

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2344040%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Efrdmmcxe31b_emios_input_capture%20kEMIOS_PEC_Continuous%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2344040%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%A7%81%E3%81%AFFRDM-MCXE31B%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81eMIOS%E3%81%AE%E9%80%A3%E7%B6%9A%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81frdmmcxe31b_emios_input_capture%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%97%E3%81%9F%E3%81%84%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E4%BB%A5%E4%B8%8B%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E5%8A%A0%E3%81%88%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%20EMIOS_GetDefaultConfig(%26amp%3BemiosConfig)%3B%3C%2FP%3E%3CP%3EemiosConfig.prescale%20%3D%20EXAMPLE_EMIOS_CLK_FREQ%20%2F%20EXAMPLE_COUNTERBUS_FREQ%20-%201U%3B%3CBR%20%2F%3E%20emiosConfig.useGlobalTimeBase%3D%20%E7%9C%9F%3B%3CBR%20%2F%3E%20EMIOS_Init(EXAMPLE_EMIOS%2C%20%26amp%3BemiosConfig)%3B%3C%2FP%3E%3CP%3EucMCConfig.period%20%3D%200xFFFFU%3B%3CBR%20%2F%3E%20ucMCConfig.prescale%20%3D%200U%3B%3CBR%20%2F%3E%20ucMCConfig.ucMode%20%3D%20kEMIOS_MC_UpCount%3B%3CBR%20%2F%3E%20ucMCConfig.clockSource%20%3D%20kEMIOS_ClkSrcInternal%3B%3CBR%20%2F%3E%20ucMCConfig.prescalerSource%3D%20kEMIOS_Prescaler_PrescaledClock%3B%3CBR%20%2F%3E%20ucMCConfig.counterResetTiming%3D%20kEMIOS_ResetMatchEnd%3B%3CBR%20%2F%3E%20ucMCConfig.reloadOutputDelay%3D%200U%3B%3CBR%20%2F%3E%20ucMCConfig.enableFreeze%3D%20%E5%81%BD%3B%3CBR%20%2F%3E%20EMIOS_ConfigModulusCounter(EXAMPLE_EMIOS%2C%20%26amp%3BucMCConfig%2C%20EXAMPLE_COUNTERBUS_CHANNEL)%3B%3C%2FP%3E%3CP%3EucICConfig.ucMode%20%3D%20kEMIOS_PEC_Continuous%3B%2F%2FkEMIOS_IPWM%3B%3CBR%20%2F%3E%20ucICConfig.counterBus%20%3D%20kEMIOS_CounterBus_A%3B%3CBR%20%2F%3E%20ucICConfig.edgePolarity%3D%20kEMIOS_IC_RisingEdge%3B%3CBR%20%2F%3E%20ucICConfig.filterClock%20%3D%20kEMIOS_Filter_PrescaledClock%3B%3CBR%20%2F%3E%20ucICConfig.filterWidth%20%3D%20kEMIOS_Filter_16_Cycle%3B%3CBR%20%2F%3E%20ucICConfig.enableFreeze%3D%20%E5%81%BD%3B%3CBR%20%2F%3E%20ucICConfig.startTime%20%3D%200x90%3B%3CBR%20%2F%3E%20ucICConfig.endTime%20%3D%200x800%3B%3CBR%20%2F%3E%20EMIOS_ConfigInputCapture(EXAMPLE_EMIOS%2C%20%26amp%3BucICConfig%2C%20EXAMPLE_IC_CHANNEL)%3B%3C%2FP%3E%3CP%3E%2F%2F%20EMIOS_EnableUCInterrupt(EXAMPLE_EMIOS%2C%20EXAMPLE_IC_CHANNEL)%3B%3CBR%20%2F%3E%20%2F%2F%20(void)EnableIRQ(EXAMPLE_EMIOS_IRQn)%3B%3C%2FP%3E%3CP%3EEMIOS_EnableUCPrescaler(EXAMPLE_EMIOS%2C%20EXAMPLE_COUNTERBUS_CHANNEL)%3B%3CBR%20%2F%3E%20EMIOS_EnableUCPrescaler(EXAMPLE_EMIOS%2C%20EXAMPLE_IC_CHANNEL)%3B%3CBR%20%2F%3E%20EMIOS_EnableGlobalPrescaler(EXAMPLE_EMIOS)%3B%3CBR%20%2F%3E%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E9%96%A2%E9%80%A3%E3%81%99%E3%82%8B%E8%A8%98%E9%8C%B2%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AF%E5%85%A8%E3%81%8F%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%E6%AD%A3%E3%81%97%E3%81%84%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95%E3%81%A8%E3%80%81%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E3%81%B9%E3%81%8D%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2344040%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EMCX%20C%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2344529%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20frdmmcxe31b_emios_input_capture%20kEMIOS_PEC_Continuous%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2344529%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F231665%22%20target%3D%22_blank%22%3E%40hyf_grass%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%0A%3CDIV%3E%0A%3CP%3E%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E4%BF%AE%E6%AD%A3%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%0A%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AE2%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%81%8B%E3%80%81%E4%B8%A1%E6%96%B9%E3%81%A8%E3%82%820%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3CBR%20%2F%3E%20ucICConfig.startTime%20%3D%200x90%3B%3CBR%20%2F%3E%20ucICConfig.endTime%20%3D%200x800%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3E%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%90%E3%82%B9%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3CBR%20%2F%3E%20ucMCConfig.ucMode%20%3D%20kEMIOS_MC_UpCount%3B%20%2F%2F%20%E3%82%A2%E3%83%83%E3%83%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%BC%E3%83%89%3CBR%20%2F%3EucMCConfig.period%20%3D%200xFFFF%3B%20%2F%2F%20%E6%9C%80%E5%A4%A7%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E5%80%A4%3CBR%20%2F%3EucMCConfig.prescale%20%3D%200%3B%20%2F%2F%20%E4%BA%8B%E5%89%8D%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AA%E3%81%97%E3%80%81%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E9%80%9F%E5%BA%A6%E3%81%8C%E5%90%91%E4%B8%8A%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CP%3E%E3%83%91%E3%83%AB%E3%82%B9%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%80%A4%E3%81%AF%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BFA%E3%81%8B%E3%82%89%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%89%E3%82%8C%E3%80%81SDK%20API%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20EMIOS_GetAn(EMIOS_Type%20*base%2C%20uint8_t%20channel)%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3EBR%3C%2FDIV%3E%0A%3CDIV%3E%E3%82%A2%E3%83%AA%E3%82%B9%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E