|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
看看程序錯在那里 |
| 作者:chuandaoxy 欄目:單片機 |
#include<reg51.h> #include<intrins.h> #ifndef NULL #define NULL ((void*)0L) #endif #define DB_MAXSIZE 0X10 unsgined CHAR db_head,db_tail,db_buffer[DB_MAXSIZE]; /*************************************************************/ function:debug_init DESCRIPTION:將串口設(shè)置位調(diào)試端口,把緩沖區(qū)指針設(shè)為0 parameters:無 return:無 /************************************************************/ void debug_init(void) { SCON=0X90;使用串行通訊模式2 de_head=db_tail=0; ES=1; } /************************************************************/ function:debug_insert DESCRIPTION:把所指向的存儲區(qū)數(shù)據(jù)拷貝到緩沖區(qū) parameters:base- 指針,只想要拷貝數(shù)據(jù)的頭地址 size- 所要拷貝數(shù)據(jù)的數(shù)量 return:無 /************************************************************/ void debug_insert(unsigned CHAR data *base, unsigned CHAR size) { bit sendit=0;//標志位,表明是否要進行串行傳輸初始化 unsigned CHAR i=0; if (!size|| base==NULL) { return;}//測試參數(shù)是否有效 if (db_tail==db_head) sendit=1; } while (db_tail!=db_head&& i<size)//當緩沖區(qū)有空間并且數(shù)據(jù)區(qū)還有數(shù)據(jù)時進行拷貝 { db_buffer[db_tail]=base[i];//拷貝當前字節(jié) i++; db_tail++;//移動指針 if (db_tail==DB_MAXAIZE)//指針是否超出范圍 { db_tail=0; } } if (sendit)//是否要傳輸一個字節(jié) { SBUF=db_buffer[db_head]; } } /*********************************************************************/ function: debug_output DESCRIPTION:串行口中斷服務(wù)程序,增加緩沖區(qū)指針,如果頭指針不等于尾指針輸出下一個字節(jié) parameters:無 return:無 /*********************************************************************/ void debug_output(void) interrupt 4 { RI=0; if (_testbit_(TI)) db_head++; if (db_head==DB_MAXAIZE) { db_head=0; } if (db_head!=db_tail) SBUF=db_buffer[db_head]; } } } main () { int n,base[10],*ptr=base; for(n=0;n<=9;n++) debug_init(); while(1); { debug_insert(base, 10); debug_output(); } } |
| 2樓: | >>參與討論 |
| 作者: xgh1217 于 2006/7/13 10:36:00 發(fā)布:
你說一下編譯時的情況,好對癥下藥 for(n=0;n<=9;n++) debug_init(); 初始了10篇呢 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |