[技术问答] 新唐 N76E003官方ADC例程问题求助!

[复制链接]
3771|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
598330983 发表于 2018-8-3 13:16 | 显示全部楼层
  1. void main (void)
  2. {
  3.                 InitialUART0_Timer1(115200);

  4.                 Enable_ADC_AIN3;                                                // Enable AIN0 P1.7 as ADC input, Find in "Function_define.h" - "ADC INIT"
  5.                 while(1)
  6.     {
  7.                         clr_ADCF;
  8.                         set_ADCS;                                                                        // ADC start trig signal
  9.       while(ADCF == 0);
  10.                         printf ("\n Value = 0x%bx",ADCRH);
  11.                         printf ("\n Value = 0x%bx",ADCRL);
  12.                         Timer0_Delay1ms(100);
  13.     }
  14. }
598330983 发表于 2018-8-3 13:16 | 显示全部楼层
试试这个,我看例子是AIN3,试试看,如果可以,可能两个端口又区别。
 楼主| jack5288 发表于 2018-8-3 17:31 | 显示全部楼层
598330983 发表于 2018-8-3 13:16
试试这个,我看例子是AIN3,试试看,如果可以,可能两个端口又区别。

我用的是1.06版的,改为AIN3或其它端口都是一样。
小灵通2018 发表于 2018-8-5 20:07 | 显示全部楼层
也就是说例子又有问题?
 楼主| jack5288 发表于 2018-8-6 08:43 | 显示全部楼层
新唐的FAE在吗?能帮助一下吗?
jasontu 发表于 2018-8-6 17:55 | 显示全部楼层
把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行就可以了。
zhuotuzi 发表于 2018-8-6 19:09 | 显示全部楼层
啥情况,找到原因了吗
 楼主| 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能动手帮忙试试这个问题吗?
 楼主| jack5288 发表于 2018-8-11 10:44 | 显示全部楼层
新唐的FAE在吗?
主控主控现 发表于 2018-8-17 10:24 | 显示全部楼层
有输入输出么?在对应管脚接上3.3V电压试试
观海 发表于 2018-8-18 13:56 | 显示全部楼层
时钟偶没偶问题
tianxj01 发表于 2018-8-18 16:57 | 显示全部楼层
jack5288 发表于 2018-8-7 15:20
把斷點設在 printf ("\n Value = 0x%bx",ADCRL);這一行,更加动不了。
新唐的FAE能动手帮忙试试这个问题 ...

N76E003的OCD系统还有另一个限制,就是正在运行用户程序时不能执行非侵入命令。非侵入命令可以
用调试器访问MCU的存储单元、状态或控制寄存器,一个读或写控制寄存器必须在MCU停止的条件下进
行。
所以,这种直接以内部寄存器的某值为条件的行是不能打断点的。
晓伍 发表于 2018-8-20 10:32 | 显示全部楼层
供电有没有问题
lomo1316 发表于 2018-9-20 10:55 | 显示全部楼层
我也发现这个问题了,楼主解决了吗
lomo1316 发表于 2018-9-20 11:01 | 显示全部楼层
ADC 使能位  可能是这里没有使能吧
caigx1970 发表于 2018-10-18 21:59 | 显示全部楼层
我也发现这个问题,在 clr_ADCF 前 加上Enable_ADC;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部