ADC on FRDM board using PE

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

ADC on FRDM board using PE

2,278 次查看
steve_fae
Senior Contributor I

I am using the Typical Example code provided for the higher level component AD1.  I basically followed the One conversion example of all channels, with interrupt service.

I selected two channels to be enabled in the component and selected the pins, but when the interrupt fires off and I command

AD1_Measure(TRUE) then

AD1_GetValue(Values);

only channel 0 shows a value. channel 1 is always 0 value in the variable view.  My code looks at the value as ADC_Value[0] and ADC_Value[1]

What might I be missing?

0 项奖励
回复
9 回复数

1,794 次查看
Petr_H
NXP Employee
NXP Employee

Hi,

Could you please post the sample project with you settings ?

best regards

Petr Hradsky

Processor Expert Support Team

0 项奖励
回复

1,794 次查看
steve_fae
Senior Contributor I

I can't load the project due to some customer info included.

full project uploaded under TIC 1-1005917641

below is a screen capture of the bean settings.

/* User includes (#include below this line is not maintained by Processor Expert) */

bool ValuesAvailable = FALSE;  // control variable

unsigned int ADC_Value[2];

LDD_TError Error;

unsigned int i,j;

LDD_TDeviceData *MyDataPtr;

unsigned int timer_done=FALSE;

unsigned int ADC_Total,ADC_Avg;

unsigned int temp;

bool ValuesAvailable;


And here is the code I used its all tabbed corrrectly:

      AD1_Measure(TRUE);
          AD1_GetValue(ADC_Value);
Wait_ADC:        
             while(!ValuesAvailable)goto Wait_ADC; /* wait for interrupt saying ADC is complete */
             ValuesAvailable = FALSE;

pastedImage_0.png

0 项奖励
回复

1,794 次查看
steve_fae
Senior Contributor I

Alright, I have tried everything.  I put the get value inside the interrupt routine rather then in main, I tried to convert just channel 1, I even tried AD1_Measure(FALSE); to get the second conversion to happen like the typical usage example.  I always get a value in the first element and only 0 in the second element.  Could someone spin the most simple example either polling or through interrupt of getting two channels to convert?

0 项奖励
回复

1,794 次查看
Petr_H
NXP Employee
NXP Employee

Hi,

from you code, it seems that the problem could be that you have declared results as array of unsigned ints, but the results are 16-bit and int is 32bit.

Try to use 'word' instead.

You can see also attached simple example.

best regards

Petr Hradsky

Processor Expert Support Team

0 项奖励
回复

1,794 次查看
steve_fae
Senior Contributor I

I am new to the community, where do I go for attachments?

0 项奖励
回复

1,794 次查看
Petr_H
NXP Employee
NXP Employee

It's within my last post.

You were probably looking only in inbox notifications. Try to see the whole thread by clicking on the title or use this link: Re: ADC on FRDM board using PE

best regards

Petr Hradsky

Processor Expert Support Team

0 项奖励
回复

1,794 次查看
adriansc
Contributor IV

Hi,

It is hard to say what you are missing, there is a lot of possibilities for the reasons of your problem.

Try to follow the examples that you can find in Help of component: right click on the component->Help on component->typical usage. Unfortunately are examples just for one channel.


In the attachments you will find and example reading 4 ADC channels without interrupt and there is another one with one channel and with interrupt. (it is one way you can do it, could be many ways more).


Hope this helps.

0 项奖励
回复

1,793 次查看
steve_fae
Senior Contributor I

Adrian, the TIC provide the file which I attached to my documents. FRDM-ADC-PEx.zip

I still only see one value shown in the debugger for Measured Values, I changed the first two pins to PTE20, and PTE22 which the real application uses.  Can you confirm this project is working correctly.?

pastedImage_0.png

0 项奖励
回复

1,793 次查看
steve_fae
Senior Contributor I

You mentioned attachments, which are you referring to?

0 项奖励
回复