音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

求助!!!!2407A的編程問題!!

作者:boyzrd007 欄目:DSP技術(shù)
求助!!!!2407A的編程問題!!
我需要設(shè)計(jì)一個(gè)數(shù)據(jù)采集系統(tǒng),用2407A自帶的ADC模塊進(jìn)行數(shù)據(jù)采集,采用EVA的T1通用定時(shí)是周期中斷的方式啟動(dòng)AD,每周期采樣128點(diǎn),采樣的數(shù)據(jù)通過串口上傳給PC,要用到2407A的SCI模塊.DSP接收命令采用中斷方式,發(fā)送數(shù)據(jù)采用查詢方式.通信采用空閑線模式,給DSP的地址是001,只有地址相符才接收命令.程序如下:

#include "2407c.h"   
#include <math.h>
#define MAX 128    
void interrupt gptime1(void); /*通用定時(shí)中斷程序*/  
void interrupt scirec(void);    /* SCI中斷程序 */
void SCIREAD(void);    /*SCI讀數(shù)據(jù)子程序*/  
void send_string(CHAR *txd_data,unsigned int data_i); /*發(fā)送字符子程序*/
void send_data(LONG *txd_data);  /*發(fā)送數(shù)據(jù)子程序*/
LONG sum_watt(void);  /*計(jì)算功率子程序*/
void ADInit(void); /* 初始化A/D轉(zhuǎn)換模塊和通用定時(shí)器1聲明 */
void wait(int nWait);/*延時(shí)子程序*/
float bubble_sort(float *R);  /*冒泡排序,找出中間兩個(gè)值,取平均值*/  
CHAR cString[27]={ "The AD is not on work,Over|" };
unsigned int *ADV_Result,*ADI_Result;
int AD_V[MAX],AD_I[MAX];
unsigned int TEMP,tem,count,uWork;
unsigned int uWorks1,uWorks2,uWorks3;
unsigned int uWorkt1,uWorkt2;
LONG int POWER,sort_watt[30],watt;  
float sub_data1[10],sub_data2[10];
float subq1,subq2;  
CHAR dReceive;
int cReceive,require;
unsigned int ADwork;

main()
{
    count=0;    
    asm(" setc INTM");
    asm(" clrc SXM");
    asm(" clrc OVM");
    asm(" clrc CNF");
    *WDCR=0x6f;
    *WDKEY=0x5555;
    *WDKEY=0xaaaa;  /*關(guān)看門狗電路*/
    *SCSR1=0x81fe;    /* 40MHZ      */
    ADV_Result=RESULT0;  /*指針指向AD結(jié)果寄存器*/
    ADI_Result=RESULT1;  /*指針指向AD結(jié)果寄存器*/
    *MCRB=0x00;       
    *MCRC=0x00;  
    uWork=(*MCRA);
    uWork|=0x03;        /* IOPA0和IOPA1分別作SCITXD,SCIRXD用 */
    (*MCRA)=uWork;
    *PADATDIR=(*PADATDIR)|0xf8f8;  /*相應(yīng)AnDIR設(shè)置為1,表示向相應(yīng)IO設(shè)置1或0*/
    *PADATDIR=(*PADATDIR)&0xfff7;  /*IOPA3=0,蜂鳴器響,低電平有效*/  
    *PADATDIR=(*PADATDIR)|0x00f0;   /*IOPA4=1,報(bào)警燈亮 ,高電平有效*/
    wait(100);
    *PADATDIR=(*PADATDIR)|0x0008;/*IOPA3=1,蜂鳴器不響 */
    *PADATDIR=(*PADATDIR)&0xff0f;/*IOPA4=0, 報(bào)警燈不亮 */
    *PFDATDIR=(*PFDATDIR)|0x6060;    /*按鍵口,IOPF5,IOPF6*/
     ADInit();             /*初始化AD*/
    (*SCICCR)=0x07;        /* 8位字符,1停止位,無校驗(yàn),空閑線模式*/
    (*SCICTL1)=0x07;    /* 使能休眠,發(fā)送和接收 */
    (*SCICTL2)=0x02;    /* 禁止發(fā)送中斷,使能接收中斷 */
    (*SCIPRI)=0x60;     /*設(shè)置SCI接收中斷優(yōu)先級(jí)低*/
    (*SCIHBAUD)=0x02;    /* 波特率=208H,40MHZ */
    (*SCILBAUD)=0x08;    /* 208h=40*10^6/(9600*8)-1 */
    (*SCICTL1)=0x27;    /* 使能發(fā)送和接收,復(fù)位SCI */
    (*IMR)=0x12;            /*使能INT2和INT5中斷,即定時(shí)器中斷和SCI接收中斷*/
    (*IFR)=0xffff;       /*清所以中斷標(biāo)志*/   
      asm(" clrc INTM");   /*開中斷*/

     while(1)      /*循環(huán)等待命令或計(jì)算功率*/
        {  
           if(require==0xAA)   /*命令0xAA為啟動(dòng)AD轉(zhuǎn)換*/
             {  asm(" setc INTM");
                *T1CON= 0x1040;
                (*IMR)=0x12;   
                (*IFR)=0xffff;
                 require=0;
                 ADwork=1;
                asm(" clrc INTM");
               }
            
            else if (require==0xAB)  /*命令0xAB為停止AD轉(zhuǎn)換*/
               {  asm(" setc INTM");
                  *T1CON   = 0x1000;/*禁止定時(shí)器工作*/
                  *ADCTRL1=0x4000;  /*復(fù)位AD*/
                  asm("nop");
                  *ADCTRL1=0x0000;
                   ADwork=0;
                   require=0;
                  asm(" clrc INTM");
               }   
                
           else if(require==0xAC) /*命令0xAC為向上位機(jī)發(fā)送功率*/
               {  (*IMR)=0x00;   /*屏蔽中斷*/
                   if (ADwork==1) /*如果AD已經(jīng)開始工作 */
                      { do
                         {
             
2樓: >>參與討論
f702p
sci中斷有很多毛病呀
如題

3樓: >>參與討論
savage_sdj
SCI的中斷向量是否正確?!
SCI的中斷向量是否正確?!

4樓: >>參與討論
lengxb
re
這個(gè)問題先一步步來,不要一起來查毛病。
首先調(diào)好AD,再調(diào)好SCi,然后合起來調(diào)試,解決中斷問題

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教:2407A與2812
推薦]DSP算法大全C語言版本[下載]
有人做過這樣的語音延時(shí)嗎??
請(qǐng)問dsp2812中使用ADC的一個(gè)問題
自制的高速USB2.0DSP仿真器
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)