2/29/2008

AUTORUN.INF 語法

最近工作上的需要
需使用到AUTORUN.INF
也就寫下了這篇


使用一般記事本或編寫工具
[AutoRun] //使用autorun 格式
OPEN = SETUP.EXE //開啟的執行檔
ICON = SETUP.ICO //指定所要使用的光碟圖示

如果執行的程式不是EXE檔
則需加 START
ex: open = start readme.txt

如要開啟的是網頁而不是檔案則為
[autorun]
open=Explorer.exe http://tw.yahoo.com

因每人所使用的瀏覽器不同
所以直接呼叫檔案總管
使用內定瀏覽器開啟網頁
而不是使用IEXPLORE.EXE

如需開啟其它檔也是使用以上例子
讓檔案總管直接以內定的程式開啟

看了以上說明
腦筋動的快的
就能寫出一個害人的程式了 :P

2/27/2008

MCU,SOC,嵌入式之我見

我想很多剛入門的人
都會被這些名詞搞混
我也是其中之一

所以也就寫下我對這三個名詞的見解


MCU(Municipal Credit Union)
也就是簡化式的CPU
沒有其它複雜的功能
只有基本的腳位和TIMER UART INTERRUPT
就像是8051,ARM7等等的"核心結構"
如果需要其他功能就需自已設計其它線路
設計上較為麻煩

SOC(System On Chip)
也就是IC設計廠購買了8051 MUC的IP(智產權)
在整合一些其他的週邊設備讓它能有更多的功能
如USB,SD,AUDIO,MP4,PPU等等的功能
如此,只需購買SOC晶片就能省掉許多的線路
和功能設計上的麻煩

嵌入式(Embedded System)
依據英國電機工程師協會的定義
【嵌入式系統為控制、監視或輔助設備、機器或甚至工廠運作的裝置】
這是網路上所查到的資料
很多人認為單晶片的設計就算是嵌入式
但我認為嵌入式只是架構在SOC上的軟體
使的使用更為方便和人性化

以上是我的想法
如果有錯請指教謝謝

2/19/2008

尋書

之前看過二本書
只記得大約的書名
1.C++ BUILDER 與 RS-232 串列通訊控制
2.AVR 高速8位元單晶片控制-基礎篇


第1本是大約4年前的書了
目前以絕版,出版社也不在出了
好像也沒聽說要改版
在某次機會下看到此書
覺的內容寫的不錯
所以想買下來
找了好多中古書店
也都沒有此書
本來也不在抱有任何希望
卻因無意間在某個討論區留言
想買此書,沒想到很快的有了回應
也因為買下了第一本

而第二本是約10年的書了
我想要找到更是困難了
所以只能等緣份
或是另一本
"AVR高速16位元PD單晶片微控器應用-基礎篇"
不過此書也沒了
而我也沒看過此書
所以也不太確定是不是我想要的

所以各位朋友如果有在中古書店看到第二本
請和我連絡囉

2/02/2008

AT89S51

剛開始進入單晶片世界是工作上的關係
一開始使用的是atmel mega系列
一開始有人帶,所以很快的就學會了
但使用的是C不是組語。


換工作後,就改玩 SUNPLUS GLP162002
使用的是組語和C,後來想想
大家好像都是由8051系列開始玩起的
那我怎可跳過51呢?
於是就網上找了許多資料,線路圖
跑去買了一些材料,DIY,焊了二天
做出了二片板子和一片電源模組。
還蠻好玩的:P
先貼個照片有空在補上電路圖。

1版

後來又加上個開關
2版

都是直接使用USB供電,ISP DOWNLOAD,DOWNLOAD完後,調JUMP在接IO PORT就能使用了
電源模組 可輸入DC6~16V 轉為DC5V USB接頭


電路圖 PROTEL DXP 格式
電路圖 PDF 格式

2/01/2008

PWM USER TIMER MODE (SOFTWARE MODE)

如果硬體沒有提供 PWM 輸出,則必需自已用 TIMER
來模擬做出 PWM ,軟體可分為二種做法。
精準(中斷法)
不精準(系統LOOP)


當使用 SYSTEM LOOP 需注意其它程式的執行時間,
其它程式執行時間過長,則會延長 PWM 的輸出,
或是可在其它程式中間插入 PWM 函式,用以檢查
是否以過週期。

Ex:假設需要在 50ms 週期,固定 20ms 的輸出則

output = high;
unsigned int timer_count;

timer_interrupt( )
{
timer_count ++;
}
while(1)
{
if(timer_count < 50)
{
if(timer_count < 20)
output=high;
else
output=low;
}
else
{
timer_count=0;
output=high;
}
}

GPL162002 PWM USER HARDWARE (FORMULA)

經過幾天的試驗發現GPL162002 programming guild
的硬體PWM 公式好像有點問題,或許是我資質不夠吧
看不太懂它的說明,無法套用它的公式。


以下是我的速算公式:

Timer?_Preload = T_time * source clock /65536-X ;
Timer?_CCP = Timer?_Preload + t_timer * source clock;

Ex: 假設需要在 500ms 週期,固定 200ms 的輸出則
define source clock 8192

Timer?_Preload = 0.5(500ms) * 8192 /65536-X
X = 61440 (0xF000)
Timer?_CCP = 61440 + 0.2(200ms) * 8192;
= 63078.4 (0xF666)

Timer?_Preload = 0xF000;
Timer?_CCP = 0xF666;