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


Browsing this Thread:   1 Anonymous Users






Re: ccs程式問題
#3
資深會員
資深會員


查看用戶資訊
參照:

...
printf( ) 會將字串以及變數依照選定的格式輸出至 stdout , 在 CCS 裡的內定值是 USART. 當然 , 修改相關的 Low Level code 也可將輸出導向其他裝置. 但要花點時間 .
...
所以 CCS 的 fprintf( ) 的輸出目的地是 buffer !
...
這兩個函式很好用 , 但是 ..... 很佔空間 .


no, no,

CCS 的 fprintf( ) 的輸出目的地 _不限於_ buffer !

CCS 做 輸出導向其他裝置 ... 一點也不花時間

printf ( putc, "hello world, x = %u", x ) 就送到 STDOUT

依此類推

printf ( lcd_putc, "hello world, x = %u", x );

就送到 LCD 去啦

只要你有一個可以接受字元變數的 lcd_putc ( char c ) 就搞定啦 (CCS 所提供的驅動程式 lcd.c 裡面就有 lcd_putc )

照貓畫虎,還可以搞出一堆好玩的 ...

printf ( i2c_write, ... ) 就送到 I2C 去

或是

printf ( mmc_write, ... ) 就寫到 MMC 記憶卡去

printf ( nic_putc, ... ) 就送到 Ethernet 去

實在是超好用的東東,呵呵

喔,忘了說最基本的用途,多通道軟硬體 RS232

先宣告一個硬體RS232和兩個軟體RS232,以 16F877 或 18F452 為例,如下

#use rs232(baud=9600,xmit=pin_c6, rcv=pin_c7,stream=HOSTPC)
#use rs232(baud=1200,xmit=pin_b1, rcv=pin_b0,stream=GPS)
#use rs232(baud=9600,xmit=pin_b3, stream=DEBUG)

然後

fprintf(DEBUG,"Got a CR\r\n"); 就送到 PIN_B3 去

fputc(c,HOSTPC); 就用硬體 USART 送到 PIN_C6 去

c=fgetc(GPS); 就去讀 PIN_B0 的 GPS 囉

兩三行輕鬆搞定,PIC16 與 PIC18 甚至於 PIC12 都可以 _無痛苦_ 快速移植!

會佔空間嗎? 我手上沒有 Hi-Tech C,也沒有 C18,不過,
CCS 站上有篇老文章可以參考一下 http://www.ccsinfo.com/compare.shtml
看來 CCS 的 printf 的效率要比 Hi-Tech 高太多太多啦 ,有興趣的朋友不妨再測試比較一下吧 http://www.ccsinfo.com/demo.shtml

此外,目前的 CCS 3.226 與四年前的 3.002 相比,可真是有天壤之別喔,呵呵

Enjoy !

發表於: 2005/6/27 23:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: ccs程式問題
#2
管理員
管理員


查看用戶資訊

在高階的應用程式端的一些觀念也常被用於一些小系統 , 其中 stdout 以及 stdin 的使用常常能幫助程式設計者與係統工程師間的快速溝通.

printf( ) 會將字串以及變數依照選定的格式輸出至 stdout , 在 CCS 裡的內定值是 USART. 當然 , 修改相關的 Low Level code 也可將輸出導向其他裝置. 但要花點時間 .

fprintf( ) 在 PC 是將結果輸出至 File Handler , 就是檔案 . 但 PIC 這中 MCU 無法支援有 File System 的系統 , 所以 CCS 的 fprintf( ) 的輸出目的地是 buffer !

這兩個函式很好用 , 但是 ..... 很佔空間 .

發表於: 2005/6/27 23:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


ccs程式問題
#1
資深會員
資深會員


查看用戶資訊
各位大俠好
在CCS中

為什麼常常用到printf 及fprintf
看不懂HELP中的解釋
到底用途在哪裡?

發表於: 2005/6/27 14:48
==== ^^ ^^ ====
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... ]

教育訓練中心

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