打印
[技术问答]

新唐 N76E003官方ADC例程问题求助!

[复制链接]
3194|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jack5288|  楼主 | 2018-8-2 08:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
官方例程如下:
void main (void)
{
        InitialUART0_Timer1(115200);

        Enable_ADC_AIN0;                        // Enable AIN0 P1.7 as ADC input, Find in "Function_define.h" - "ADC INIT"
        while(1)
    {
            clr_ADCF;
            set_ADCS;                                   // ADC start trig signal
      while(ADCF == 0);
            printf ("\n Value = 0x%bx",ADCRH);
            printf ("\n Value = 0x%bx",ADCRL);
            Timer0_Delay1ms(100);
    }
}
这个ADC例程在KEIL中编译没有错误也没有警告,下载后调试到
while(ADCF == 0);就不动了。

各位知道原因吗?
沙发
jasontu| | 2018-8-2 08:36 | 只看该作者
解NE76E003 adc,在ice停下來後,再跑會卡住的問題,有2個解法
1,        freerun不停。
2,        確認ADCS=0時,可以在後面下斷點停下來。
不要將斷點設在clr_adcf及set_adcs這2個地方,ice停下來,會造成adc clock停止,poll adcf卡住的情況

使用特权

评论回复
板凳
jack5288|  楼主 | 2018-8-2 10:37 | 只看该作者
jasontu 发表于 2018-8-2 08:36
解NE76E003 adc,在ice停下來後,再跑會卡住的問題,有2個解法
1,        freerun不停。
2,        確認ADCS=0時,可以 ...

断点设在后面就更加动不了?不知这个官方程序是否有问题

使用特权

评论回复
地板
734774645| | 2018-8-2 18:21 | 只看该作者
用的哪个版本的例子,最新的是1.06

使用特权

评论回复
5
598330983| | 2018-8-3 13:16 | 只看该作者
void main (void) 
{
                InitialUART0_Timer1(115200);

                Enable_ADC_AIN3;                                                // Enable AIN0 P1.7 as ADC input, Find in "Function_define.h" - "ADC INIT"
                while(1)
    {
                        clr_ADCF;
                        set_ADCS;                                                                        // ADC start trig signal
      while(ADCF == 0);
                        printf ("\n Value = 0x%bx",ADCRH);
                        printf ("\n Value = 0x%bx",ADCRL);
                        Timer0_Delay1ms(100);
    }
}

使用特权

评论回复
6
598330983| | 2018-8-3 13:16 | 只看该作者
试试这个,我看例子是AIN3,试试看,如果可以,可能两个端口又区别。

使用特权

评论回复
7
jack5288|  楼主 | 2018-8-3 17:31 | 只看该作者
598330983 发表于 2018-8-3 13:16
试试这个,我看例子是AIN3,试试看,如果可以,可能两个端口又区别。

我用的是1.06版的,改为AIN3或其它端口都是一样。

使用特权

评论回复
8
小灵通2018| | 2018-8-5 20:07 | 只看该作者
也就是说例子又有问题?

使用特权

评论回复
9
jack5288|  楼主 | 2018-8-6 08:43 | 只看该作者
新唐的FAE在吗?能帮助一下吗?

使用特权

评论回复
10
jasontu| | 2018-8-6 17:55 | 只看该作者
把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行就可以了。

使用特权

评论回复
11
zhuotuzi| | 2018-8-6 19:09 | 只看该作者
啥情况,找到原因了吗

使用特权

评论回复
12
jack5288|  楼主 | 2018-8-7 15:20 | 只看该作者
jasontu 发表于 2018-8-6 17:55
把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行就可以了。

把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行,更加动不了。
新唐的FAE能动手帮忙试试这个问题吗?

使用特权

评论回复
13
jack5288|  楼主 | 2018-8-11 10:44 | 只看该作者
新唐的FAE在吗?

使用特权

评论回复
14
主控主控现| | 2018-8-17 10:24 | 只看该作者
有输入输出么?在对应管脚接上3.3V电压试试

使用特权

评论回复
15
观海| | 2018-8-18 13:56 | 只看该作者
时钟偶没偶问题

使用特权

评论回复
16
tianxj01| | 2018-8-18 16:57 | 只看该作者
jack5288 发表于 2018-8-7 15:20
把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行,更加动不了。
新唐的FAE能动手帮忙试试这个问题 ...

N76E003的OCD系统还有另一个限制,就是正在运行用户程序时不能执行非侵入命令。非侵入命令可以
用调试器访问MCU的存储单元、状态或控制寄存器,一个读或写控制寄存器必须在MCU停止的条件下进
行。
所以,这种直接以内部寄存器的某值为条件的行是不能打断点的。

使用特权

评论回复
17
晓伍| | 2018-8-20 10:32 | 只看该作者
供电有没有问题

使用特权

评论回复
18
lomo1316| | 2018-9-20 10:55 | 只看该作者
我也发现这个问题了,楼主解决了吗

使用特权

评论回复
19
lomo1316| | 2018-9-20 11:01 | 只看该作者
ADC 使能位  可能是这里没有使能吧

使用特权

评论回复
20
caigx1970| | 2018-10-18 21:59 | 只看该作者
我也发现这个问题,在 clr_ADCF 前 加上Enable_ADC;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝