搜索
bottom↓
回复: 8

请教马老师,用M64总线模式读取AD1674,读不出数据,附原程序,谢谢

[复制链接]

出0入0汤圆

发表于 2008-5-26 15:02:38 | 显示全部楼层 |阅读模式
程序用ICCAVR编译,用总线模式,用PROTEUS仿真看出AD输出有变化,但读入CPU再送显示时没有显示,(显示同样是用发光二极管);
原程序和仿真文件在附件中,为方便查看,贴出部分程序
#include <iom128v.h>
#include <macros.h>
#include <stdlib.h>
#include <stdio.h>
#include "ad574.h"
#define F_CPU 8000000

#define CTRL (*(volatile unsigned char *)0x2FFF)
//控制口
#define ADSEL (*(volatile unsigned char *)0x4FFF)

unsigned int AD574value;
unsigned char hByte;
unsigned char lByte;

void AD574Convert(void)
{
        unsigned int MSB , LSB;
        unsigned char I=0;
// Start a conversion with A0 and A/$C$ low.
   // The convesion takes place on rising CE edge.
   CTRL  = 0x00;
   ADSEL = 0x00;
   // Wait until we have completed a conversion .
   while(I!=0x01)//STS==1?
        {
        I=PINB&0X01;
        //delay_nus(5);
        }
   // Set R/$C$ with A0 low and read the low byte.
   CTRL  = 0x02;
   hByte = ADSEL;
   //PORTF=hByte;
   // Set R/$C$ with A0 high and read the high.
   CTRL  = 0x03;
   lByte = ADSEL;
   //PORTF=lByte;
   MSB=(unsigned int)(hByte << 4);
      LSB=(unsigned int)(lByte >> 4);
   // adc_Res now has the converted data with 12-bit resolution.
   AD574value= MSB + LSB;
   PORTF=AD574value;
   //return;
}

void main(void)
{
    unsigned int delay;
    MCUCR=0X80;
        DDRF = 0xFF;
    PORTF = 0xFF;
        DDRB=0X00;
        PORTB=0X00;
         
  while(1)
  {
    AD574Convert();
    for (delay=0; delay<10000; delay++);
  }
}

我的AD输出接PA口,控制线用PC口的A13,A14,A14直接控制AD的CS脚,所以地址是4FFF以上为程序,请指点,谢谢

ICCAVR原程序和PROTEUS仿真文件ourdev_293333.rar(文件大小:33K) (原文件名:ourdev_291373.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

 楼主| 发表于 2008-5-27 08:42:10 | 显示全部楼层
再次请解答一下

出0入0汤圆

 楼主| 发表于 2008-5-29 11:58:18 | 显示全部楼层

原理图 (原文件名:AD.JPG)

出0入0汤圆

 楼主| 发表于 2008-5-30 22:08:58 | 显示全部楼层
马老师,帮我解答一下吧,谢了

出0入0汤圆

 楼主| 发表于 2008-6-5 15:23:59 | 显示全部楼层
马老师不解答了,有没其他高手可以解答一下?

出0入0汤圆

发表于 2008-6-5 17:49:03 | 显示全部楼层
抱歉,AD1674没用过,另外也没有时间去仔细研究.你既然在PROTUSE模拟,可以单步执行,查看操作是否符合AD1674的规定,每次读到的数据是否正确.

出0入0汤圆

发表于 2010-5-25 11:16:44 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-7-16 16:19:48 | 显示全部楼层
和AD1674有关,我找到的网上文件 给需要的人。顺便做个备份,我还没测试
点击此处下载 ourdev_568227G357GC.doc(文件大小:56K) (原文件名:ad1674.doc)

出0入0汤圆

发表于 2012-8-28 23:26:48 | 显示全部楼层
呵呵呵,两年还能找的到
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 23:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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