智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1146|回复: 0
打印 上一主题 下一主题

求大神帮助,有关AD转换的问题

[复制链接]

1

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
139
威望
85
贡献
36
兑换币
38
注册时间
2013-3-9
在线时间
10 小时
毕业学校
唐山师范学院
跳转到指定楼层
1#
发表于 2013-12-7 17:59:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */#include<stdio.h>#include "derivative.h"      /* derivative-specific definitions */int ADvalue0,ADvalue1,ADvalue2,ADvalue3;      void pll_init(void)     //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1){                     //锁相环时钟=2*16*(2+1)/(1+1)  REFDV=1;             //总线时钟=48/2=24MHZ   SYNR=2;  while(!(CRGFLG&&0X08));  CLKSEL =0X08;        //选定锁相环时钟}void AD_init(void) {    ATD0CTL2=0Xc0;   //启动A/D转换模式,快速清零,无中断和外部触发    ATD0CTL3=0XA0;   //采集通道为4个 序列为4;右对齐    ATD0CTL4=0X85;   //时钟设置,2M,且AD转换的是周期是7us,采样为两个时钟周期    ATD0CTL5=0XA0;   //有符号,左对齐,起始转换通道为:0通道    ATD0DIEN=0X00;   //禁止数字的输入    }void pwm0_init()  //此为1MHZ的周期,{   PWME=0  ;    PWMCLK=0X0A;  //通道的时钟选择A或B或SA,或SB  PWMPRCLK=0X33;//A或B的时钟分频选择  8分频  PWMSCLA=150;  PWMSCLB=150;  PWMCTL=0X00; //通道进行连级    PWMPOL_PPOL1=1;//是先输出低电平,极性的输出
  PWMCAE_CAE1=0;  //通道为左对齐输出
  //输出波形的周期 (通道周期/PWMPERX)  //输出的占空比(PWMDTY/PWMPER1*100%)   // PWMCNT1=0xce;  //计数为0;  PWME_PWME1=1;

    }

void AD_zhuanhuan0(void) {  ADvalue0=ATD0DR0L ;  if( ADvalue0==0xff) {      PWMPER1=100;          PWMDTY1=10;      } else if(ADvalue0==0x00){     PWMPER1=100;     PWMDTY1=50;     } else {             PWMPER1=100;        PWMDTY1=90;     } }
void main(void) {  /* put your own code here */    pll_init();    AD_init();     pwm0_init();     for(;;) {   while(!ATD0STAT2_CCF0)     AD_zhuanhuan0();
  } /* loop forever */  /* please make sure that you never leave main */}这个程序是否有问题?如果没有,输入5v的直流电压那P1输出的波形应该是占空比为多少的波形?还有AD 转换的参考电压输入引脚是哪个引脚?我用的单片机是MC9S12XS128MAL型号的。求大神指点,小弟在此拜谢了


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

本版积分规则

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

GMT+8, 2024-12-27 20:34 , Processed in 0.047537 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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