• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 用PIC18F452如何寫出另外一組 UART ?
#10
版主
版主


查看用戶資訊
軟體裡是這樣定義的,如腳位不適用可以更改的。

發表於: 2008/10/15 11:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#9
初級會員
初級會員


查看用戶資訊
查到設定如下:
請問PORTB的TXPIN4和PORTB的RXPIN5
指的是RB4和RB5嗎???
-----------------------------------------------------------------------
SWTXD equ PORTB ; Transmit pin port and pin
SWTXDpin equ 4
TRIS_SWTXD equ TRISB ; Transmit pin tris and pin
SWRXD equ PORTB ; Receive pin port and pin
SWRXDpin equ 5
TRIS_SWRXD equ TRISB ; Receive pin tris and pin

發表於: 2008/10/14 13:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#8
高級會員
高級會員


查看用戶資訊
請問一下UART延遲函數公式:

DelayTXBitUART 延時
((((2*FOSC) / (4*baud)) + 1) / 2) - 12 週期
DelayRXHalfBitUART 延時:
((((2*FOSC) / (8*baud)) + 1) / 2) - 9 週期
DelayRXBitUART 延時:
((((2*FOSC) / (4*baud)) + 1) / 2) - 14 週期

Q1:baud代4800 ; FOSC = 16Mhz
帶出來的數據由上至下分別是
822(十進制)
408(十進制)
820(十進制)
可為何在終端機鮑率要設定300才能傳呢?
300的速率太慢了 ! 我公式代4800下去算
但是終端機的鮑率卻是300 ???
Q2:因為上敘鮑率問題所以我提高了公式裡面的
Baud數據,我提高來到57600後終於在
終端機這邊可以以4800的鮑率”大略”做接
收,代576002下去算的話數據由上至下分
別是 58 ; 26 ; 56 (十進制),但是終端機
這邊接收的字元部份正常部份亂碼,我也用
示波器下去看了,結果是我延遲的時間要再
短一點,示波器顯示我二位元裡面低位元那
邊的的數據會錯誤掉,錯誤如下
鍵盤敲C跑出G
C = 0110 0011
G = 0110 0111
鍵盤敲J跑出N
J = 0110 1000
N = 0110 1110
在低位元那邊都會有錯,但是有很多的字元也是
正常的,所以我就嘗試改改看程式裡面
DelayTXBitUART
DelayRXHalfBitUART
DelayRXBitUART
這三個的延遲數據,但是怎麼改大概就是在那個Range
請問這是要怎樣算 ?

發表於: 2008/8/22 15:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#7
高級會員
高級會員


查看用戶資訊
更新一下,我IO模擬232在終端機跑出來了,
套用 DelayTXBitUART 延時公式:
((((2*FOSC) / (4*baud)) + 1) / 2) - 12 週期
DelayRXHalfBitUART 延時:
((((2*FOSC) / (8*baud)) + 1) / 2) - 9 週期
DelayRXBitUART 延時:
((((2*FOSC) / (4*baud)) + 1) / 2) - 14 週期

在16MHZ的FOSC下 Delay的時間分別是 ox336 0x198 0x334,


可是有一點很奇怪的事情是,我BAUD是帶4800下去算的,但是在終端機裡面卻得要調成300(太低)才能傳,這是為什麼 ?

發表於: 2008/8/21 18:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#6
高級會員
高級會員


查看用戶資訊
嗯 ~ 我想討論一下關於software UART的Delay 計算
當然我也在這個討論區翻了很多舊文章來看,其中提到
UART的計算延遲函數如下:
*************************************************
DelayTXBitUART 延時:
((((2*FOSC) / (4*baud)) + 1) / 2) - 12 週期
DelayRXHalfBitUART 延時:
((((2*FOSC) / (8*baud)) + 1) / 2) - 9 週期
DelayRXBitUART 延時:
((((2*FOSC) / (4*baud)) + 1) / 2) - 14 週期
*************************************************
接著我看到其中一篇文章
http://www.microchip.com.tw/modules/n ... rev&topic_time=1110959946
所以我就如法泡製了一番 ~
以下是程式碼:
#include <p18f452.h>
#include <sw_uart.h>


#define Nop() {_asm nop _endasm}

int i;
void DelayRXHalfBitUART(void)
{
for(i=0;i<0XC4;i++) Nop();
}
void DelayRXBitUART(void)
{
for(i=0;i<0X5D;i++) Nop();
}
void DelayTXBitUART(void)
{
for(i=0;i<0XC2;i++) Nop();
}

void main ( void )
{
char data;
// configure software UART
OpenUART();

while( 1 )
{
data = ReadUART(); //read a byte
WriteUART ( data ); //bounce it back
}
}

我想問的是在這裡計算延時時間要怎樣算才正確
for(i=0;i<0XC4;i++) Nop();
for(i=0;i<0X5D;i++) Nop();
for(i=0;i<0XC2;i++) Nop();
我需求是4800,震盪頻率16M,使用APP001實驗板
我有改過裡面的16進位數值如下
16M分別是 0x336 0x198 0x334
4M 分別是 0xC4 0x5D 0xC2
燒進去IC以後只有 4M 去計算的數據有在終端機以4800的鮑率
跑出東西來,可惜是亂碼……它是亂碼,所以我要問說應該要
怎樣算4800鮑率的延遲時間。

PS:那篇文章的最後好像有用 CSS 去寫,但是我不懂 CSS
的東C,也不知道如何將CSS弄在程式片斷裡

發表於: 2008/8/21 16:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#5
高級會員
高級會員


查看用戶資訊
以下是 Software UART 的片斷程式,
我想請問OpenUART() 這一段:
先為大家說明一下 ~ OpenUART這一段是用於
用於設定模擬UART的I/O腳使它成為正確的輸入或輸出邏輯
想請教的是要如何寫這一小片段 ? 裡面要怎樣加 ?
PS:不好意思,不太會寫C語言 … 學習ing …….
目前只能懵懵懂懂看的懂做小修改 …. 只好用問的比較快
*******************************
char data;
// configure software UART
OpenUART();
*********************************

#include <p18f452.h>
#include <sw_uart.h>

void main ( void )
{
char data;
// configure software UART
OpenUART();

while( 1 )
{
data = ReadUART(); //read a byte
WriteUART ( data ); //bounce it back
}
}

發表於: 2008/8/20 14:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#4
版主
版主


查看用戶資訊
舊版看不到,重新下載新版本,安裝時都選 Yes 選項就對了。
或 直接看 C18 Libraries Documentation 網站上有。

http://www.microchip.com/stellent/idc ... Id=1406&dDocName=en010014

發表於: 2008/8/14 15:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#3
高級會員
高級會員


查看用戶資訊
我的C碟裡面 MCC18 \ 在來的路經 沒有 \ doc 耶,我的安裝光碟裡面沒有hlpC18Lib.chm 的說明 ... XD

發表於: 2008/8/14 10:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 用PIC18F452如何寫出另外一組 UART ?
#2
版主
版主


查看用戶資訊
C18 的 Library 除了有硬體的周邊函數庫支援外也有支援 Software Peripheral Libraries 。詳細用法請參考 ..\MCC18\doc\hlpC18Lib.chm 的說明。

Software UART Functions
Macros for UART Pin Assignments

The precompiled versions of these functions use default pin assignments that can be changed by redefining the equate (equ) statements in the files writuart.asm, readuart.asm and openuart.asm, found in the src/traditional/pmc/sw_uart or scr/extended/pmc/sw_uart subdirectory of the compiler installation:
:
:

發表於: 2008/8/14 7:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


用PIC18F452如何寫出另外一組 UART ?
#1
高級會員
高級會員


查看用戶資訊
內建的 UART 終於和 終端機對話了 ~ 那麼接著下個階段是我還需要一組 UART ~ 請問有什麼建議方向嗎 ? 我該如何去寫這段模擬 UART 的程式 ? 怎樣的寫法會比較好一點 ?

發表於: 2008/8/13 19:03
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... ]

教育訓練中心

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