• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#7
新會員
新會員


查看用戶資訊
恩~~~我知道ㄌ~~~那就麻煩大大了~~~
程式
#include     <p30f4012.h> 
#include     <uart.h>    
//----------------------程式簡介-----------------------//
       
先在pic中存入900筆的數值,然後再利用uart將那900筆 
        的資料傳送至電腦中。
//-----------------------------------------------------------------//            
// 將UART函式的原型宣告檔案含入 
#include    <stdio.h>

void    Init_UART(void);   //UART初始化

_FOSC(CSW_FSCM_OFF XT_PLL8);   //    XT with 8xPLL oscillator, Failsafe clock off
_FWDT(WDT_OFF);                  //    Watchdog timer disabled
_FBORPOR(PBOR_OFF MCLR_EN);    //    Brown-out reset disabled, MCLR reset enabled
_FGS(CODE_PROT_OFF);             //    Code protect disabled

struct returnvalue  // Global variable 
{
  
char quo;
  
unsigned int rem;
}
revalue;

unsigned int a[900]; // Global variable 

char hex2char(unsigned char temp//將數值轉換成字元
{
  switch (
temp)
  {
     case 
0:
       return 
'0';
       break;
     case 
1:
       return 
'1';
       break;
     case 
2:
       return 
'2';
       break;
     case 
3:
       return 
'3';
       break;
     case 
4:
       return 
'4';
       break;
     case 
5:
       return 
'5';
       break;
     case 
6:
       return 
'6';
       break;
     case 
7:
       return 
'7';
       break;
     case 
8:
       return 
'8';
       break;
     case 
9:
       return 
'9';
       break;
     case 
10:
       return 
'a';
       break;
     case 
11:
       return 
'b';
       break;
     case 
12:
       return 
'c';
       break;
     case 
13:
       return 
'd';
       break;
     case 
14:
       return 
'e';
       break;
     case 
15:
       return 
'f';
       break;
  }
}
void q_r(void)  // calculate quotient and remainder
{
   
char temp;
   
unsigned int number,i,j,k,divd[]={4096,256,16,1};
 for (
j=0;j<900;j++)
 {
   
number a[j];
   for (
i=0;i<4;i++)
   {
      
revalue.quo number divd[i];
      
revalue.rem number divd[i];
      
number revalue.rem;
      
temp hex2char(revalue.quo);
      
// transmission
      
while(U1STAbits.UTXBF);
                  
U1TXREG temp 0xff;
   }    
      while(!(
U1STAbits.TRMT));
  }
}

/*  main */
int mainvoid )
{
    
unsigned int i,j,k;
    
Init_UART();    //uart初始化
   //------------- 預存900筆資料 ------------------------//
    
for (i=0;i<900;i++)
       
a[i]=10*i;
   
//------------------ 開始傳送 --------------------------//
    
q_r();
   
// ----------------- 關閉uart模組 ---------------------//
    
CloseUART1();
    return 
0;
}

/***********************************************/
// Subroutine to initialize UART module

void    Init_UART(void)
{
      
/* Holds the value of baud register */
     
unsigned int baudvalue;
     
/* Holds the value of uart config reg */
     
unsigned int U1MODEvalue;
     
/* Holds the information regarding uart
            TX & RX interrupt modes */
     
unsigned int U1STAvalue;
     
/* Turn off UART1module */
     
CloseUART1();
    
/* Configure uart1 receive and transmit interrupt */
   
ConfigIntUART1(UART_RX_INT_DIS &   
       
UART_RX_INT_PR6 UART_TX_INT_DIS &  
        
UART_TX_INT_PR2);
   
/* Setup the Buad Rate Generator */
    
baudvalue 10;        
   
//UxBRG = ( (FCY/Desired Baud Rate)/16) – 1
   //baudrate=115200bps;
   /* Configure UART1 module to transmit 8 bit  data 
        with one stopbit.*/
   
U1MODEvalue UART_EN UART_IDLE_CON &
                
UART_DIS_WAKE UART_DIS_LOOPBACK &
                
UART_DIS_ABAUD UART_NO_PAR_8BIT &
                
UART_1STOPBIT UART_ALTRX_ALTTX;
    
U1STAvalue UART_INT_TX_BUF_EMPTY &
                
UART_TX_PIN_NORMAL &
                
UART_TX_ENABLE UART_INT_RX_CHAR &
                
UART_ADR_DETECT_DIS &
                
UART_RX_OVERRUN_CLEAR;
   
OpenUART1(U1MODEvalueU1STAvaluebaudvalue);
}

發表於: 2007/7/18 21:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#6
版主
版主


查看用戶資訊
所以是程式問題, PO 上來大家看一下。

發表於: 2007/7/18 11:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#5
新會員
新會員


查看用戶資訊
大大你好~~~我已經用示波器確認過了,它就是會有訊號一直傳送出來。還是我把我的程式碼PO上來,不知可否請大大幫我看看我哪邊有問題?

發表於: 2007/7/17 13:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#4
版主
版主


查看用戶資訊
用示波器確定你的資料是否連續在傳送?

發表於: 2007/7/17 11:31
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#3
新會員
新會員


查看用戶資訊
謝謝大大~~~不知還有沒有別的方法,因為我的問題是每次我都只想要傳送一個字元然後結束傳送。照理說超級終端機應該只會接收到一個字元,可是不知為啥我的超級終端機卻都一直接收同樣的字元,並且都不會停止,除非我把程式或終端機關閉,不知大大們有沒有解決的辦法呢?

發表於: 2007/7/16 22:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問關於dspic30f4012如何傳送出"中止"字符???
#2
版主
版主


查看用戶資訊
如果你送的是 BIN Code 那就須有編碼的動作,建議資料以ASCII code的方式傳資料並在最後的資料加入 0x0A + 0x0D ( 換行及游標歸位 )。你可以偵測 0x0D 當做資料的結束。

發表於: 2007/7/16 17:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問關於dspic30f4012如何傳送出"中止"字符???
#1
新會員
新會員


查看用戶資訊
大大你好~~~我想一邊計算當計算完後利用uart模組將計算結果傳至PC,然後重復再計算再送出的步驟。請問一下大大要如何才能傳送中止字符。~~~謝謝大大
P.S:我是使用C30來編寫程式 :

發表於: 2007/7/16 9:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------