音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

TMS320F240的DEMO板子上的C語言串行通信程序,進(jìn)不去中斷。

作者:iehome 欄目:DSP技術(shù)
TMS320F240DEMO板子上的C語言串行通信程序,進(jìn)不去中斷。
    我編寫了下面這個(gè)C語言通信程序,由于還要和PC機(jī)聯(lián)系,我先只是想用TMS320F240DEMO板子上的LEDS來測(cè)試一下,編譯沒有問題,但是進(jìn)不去中斷的問題(查*SYSIVR老是等于0),在反匯編窗口中老是停在一個(gè)abort段的跳轉(zhuǎn)語句上。

#include "f240regc.h"  
#include "ioports.h"
#define LEDS   port000C
ioport unsigned port000C;

void initial()
{   
    *IFR=0x0ffff;
    asm(" setc SXM");
    asm(" clrc OVM");
    asm(" clrc CNF");
    *CKCR1=0x00BB;
    *CKCR0=0x00C3;                                       
    *SYSCR=0x40C0;
    *WDCR =0x006F;
}

void sci_init()
{   
    *SCICCR=0x17;    /*8個(gè)數(shù)據(jù)位,1個(gè)停止位,使能SCI    */
      *SCICTL1=0x13;   /*使能發(fā)送和接收,使用內(nèi)部時(shí)鐘,禁止SLEEP*/    
      *SCICTL2=0x03;   /*響應(yīng)RX中斷,TX中斷              */
      *SCIHBAUD=0x00;
      *SCILBAUD=0x40;    /*19200bps                       */
      *SCIPC2=0x22;    /*使能TXD和RXD                   */
     *SCIPRI=0x00;      /*高優(yōu)先級(jí)中斷                   */   
      *SCICTL1=0x33;
}
  
void interrupt INT1_ISR()       //中斷服務(wù)程序
{
    if(*SYSIVR==6)
       if(*SCIRXBUF==55)        //測(cè)試數(shù)據(jù)是不是已經(jīng)收到了
             LEDS=0x0AA;   
       
}  

main()
{                                            
    disable();                   //關(guān)總中斷
    *IMR=0x01;                   //允許INT1中斷  
    initial();
    kick_dog();  
    sci_init();         
    enable();  
    *SCITXBUF=55;  
    while(*SCICTL2 & 0x80);      //測(cè)試數(shù)據(jù)有沒有發(fā)送成功了
}


  這個(gè)程序是我參考DSP的一個(gè)匯編程序?qū)懙模▍R編能調(diào)通的),初始化應(yīng)該沒有問題,我只是將下面幾句匯編
WAIT_TX: LDP #(SCICTL2/128)
         BIT SCICTL2,BIT7
         BCND WAIT_TX,NTC
         LDP #00H
LOOP:    B   LOOP
  改成C語言  while(*SCICTL2 & 0x80); 這樣的效果等同嗎?(另外,中斷也改寫了,但現(xiàn)在中斷進(jìn)不去)。問題出在那里呢?

2樓: >>參與討論
kramer
是不是中斷寄存器名寫錯(cuò)了!
   if(*SYSIVR==6)  應(yīng)該是PIVR吧

3樓: >>參與討論
iehome
現(xiàn)在好了
  現(xiàn)在好了,檢查頭文件中所用的模塊的寄存器地址,才知道SCITXBUF的地址錯(cuò)了。ɑ宋液荛L時(shí)間)

4樓: >>參與討論
iehome
接受程序
   現(xiàn)在的問題是:240通過調(diào)試助手發(fā)送程序很正常,但卻不能收到調(diào)試助手發(fā)送的字符。在查看窗口里,明明是*SYSIVR=6,也就是進(jìn)來接收中斷了,這又是為什么呢?
我的部分接受程序如下:
  void   Uartrec( )             
{                        
   static int  receive[10];
   static int j=0;
   receive[j++]=*SCIRXBUF;          
   if(j>9)j = 0;                   
   *IFR=0x0010;             
}

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ADS8364
求TMS320F2806的中文資料
菜鳥請(qǐng)教
幫忙解決捕獲中斷的問題!
FLEX 10K20TC144-4
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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