智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3115|回复: 3
打印 上一主题 下一主题

关于CW的在线调试和芯片实际连续运行的特大区别!

[复制链接]

10

主题

126

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2604
威望
567
贡献
1795
兑换币
130
注册时间
2009-6-6
在线时间
121 小时
跳转到指定楼层
1#
发表于 2010-5-13 16:57:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */



void main(void) {
int ad[14];
int i,k;
  ATD0CTL1=0x00;  //八位精度,无采样预充电,禁止外部触发
  ATD0CTL2=0x40;  //快速清零,停止模式下AD转换停止,忽略外部触发,开中断,禁止比较中断
  ATD0CTL3=0xE8;  //右对齐,13位长度,noFIFO,Freeze模式下继续转换
  ATD0CTL4=0x05;  //四倍采样时钟,PRS=10,ATDclock=[busclock/2*(PRS+1)]=12/6=2MHZ
  ATD0CTL5=0x30;  //禁止特殊转换模式,连续转换模式,多通道采样,通道0
  ATD0DIEN=0x00;  //禁止数字输入
DDRB=0XFF;
PORTB=0X00;
  for(;;) {
           while(ATD0STAT0_SCF==1){
      ad[1]=ATD0DR7;
      ad[2]=ATD0DR6;
      ad[3]=ATD0DR5;
      ad[4]=ATD0DR4;
      ad[5]=ATD0DR3;
      ad[6]=ATD0DR2;
      ad[7]=ATD0DR1;
      ad[8]=ATD0DR0;
      ad[9]=ATD0DR8;
      ad[10]=ATD0DR9;
      ad[11]=ATD0DR10;
      ad[12]=ATD0DR11;
      ad[13]=ATD0DR12;
           }
           for(i=1;i<14;i++){
                     if(ad[i]<155)
                     ad[i]=1;
                     else
                     ad[i]=0;
           }
           PORTB_PB0=ad[13];
           PORTB_PB1=ad[12];
           PORTB_PB2=ad[11];
           PORTB_PB3=ad[10];
           PORTB_PB4=ad[9];
           PORTB_PB5=ad[8];
           PORTB_PB6=ad[7];
           PORTB_PB7=ad[6];
   
           
  }
}
这样单步运行的话SCF实际上永远是1,所以理论上AD的采样永远就循环于while(ATD0STAT0_SCF==1){....}之中,也就是说他不会执行之后的程序。而且如果你单步运行的话就是如此。但是当把程序烧进去以后芯片自己运行他就会跳出这个循环执行以后的程序。这个是为什么?很奇怪~

10

主题

126

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2604
威望
567
贡献
1795
兑换币
130
注册时间
2009-6-6
在线时间
121 小时
2#
 楼主| 发表于 2010-5-13 17:00:16 | 只看该作者
补充,这就是AD采样以后跟155比较,小的就是1,打的就是0,然后给PB口亮灯,单步运行不可以,但实际运行就可以实现了,想问一下为什么?
回复 支持 反对

使用道具 举报

2

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
QQ
威望
262
贡献
50
兑换币
0
注册时间
2010-3-18
在线时间
16 小时
3#
发表于 2010-5-13 19:46:46 | 只看该作者
见识了!
回复 支持 反对

使用道具 举报

5

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
QQ
威望
290
贡献
27
兑换币
6
注册时间
2010-3-29
在线时间
7 小时
4#
发表于 2010-5-14 09:31:44 | 只看该作者
不懂,经验:在while中SCF清零,试试看呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 15:09 , Processed in 0.077288 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表