Hi Team,
I used pwm to trigger task1 of cla, and then the frequency of pwm was set as 19.2k. When I ran the following code, if I only calculated sClaAtaMsgReal[eAtmInvVolReal] and sClaAtaMsgReal[eAtmLineVolReal], the interruption frequency of cla was 19.2k. If I calculated one more sClaAtaMsgReal[eAtmInvIndCurReal], the frequency of cla would drop to about 9.8k. If I calculated all 5, it would only be about 6k. Is this because of cla's insufficient computing capacity?
sClaAtaMsgReal[eAtmInvVolReal] = sClaAtaMsgEpm[eMtaInvVolK]*(ADC_INV_V - sClaAtaMsgAdc[eMtaInvVolMid]) + sClaAtaMsgEpm[eMtaInvVolB]; sClaAtaMsgReal[eAtmLineVolReal] = sClaAtaMsgEpm[eMtaLineVolK]*(ADC_LINE_V - sClaAtaMsgAdc[eMtaLineVolMid]) + sClaAtaMsgEpm[eMtaLineVolB]; sClaAtaMsgReal[eAtmInvIndCurReal] = sClaAtaMsgEpm[eMtaInvIndCurK]*(ADC_IND_I - sClaAtaMsgAdc[eMtaInvIndCurMid]) + sClaAtaMsgEpm[eMtaInvIndCurB]; sClaAtaMsgReal[eAtmInvOutCurReal] = sClaAtaMsgEpm[eMtaInvOutCurK]*(ADC_OUT_I - sClaAtaMsgAdc[eMtaInvOutCurMid]) + sClaAtaMsgEpm[eMtaInvOutCurB]; sClaAtaMsgReal[eAtmInvVolBiasReal] = sClaAtaMsgEpm[eMtaInvVolBiasK]*(ADC_BAIS_V - sClaAtaMsgAdc[eMtaInvBiasVolMid]) + sClaAtaMsgEpm[eMtaInvVolBiasB]; sClaAtaMsgReal[eAtmBusHVolReal] = sClaAtaMsgEpm[eMtaBusHVolK]*ADC_BUSH_V + sClaAtaMsgEpm[eMtaBusHVolB - csClaMtaEpmBottom];
The RAM where the data is stored, namely the cla's own RAM, is as follows.
#pragma DATA_SECTION(sClaAtaMsgReal, "Cla1DataRam1"); int16 sClaAtaMsgReal[csClaAtaAdcLen]; #pragma DATA_SECTION(sClaAtaMsgAdc, "Cla1DataRam1"); Uint16 sClaAtaMsgAdc[csClaMtaAdcFixLen + csClaMtaAdcLen]; #pragma DATA_SECTION(sClaAtaMsgEpm, "Cla1DataRam1"); Uint16 sClaAtaMsgEpm[csClaMtaEpmLen];
Kind regards,
Katherine