2016年12月30日 星期五

[常識] 顯示●●●密碼(找出被碼掉的密碼)

如何找出忘記的密碼,操作步驟如下:

如果今天忘記帳號密碼又剛好有儲存密碼在瀏覽器理的話,
照以下方式可將被隱藏的密碼●●●顯示為123。

2016年12月10日 星期六

[C51/ARM] 中斷(Interrupt)

Interrupt(中斷)處理機制

C51/ARM中斷產生的來源有兩種
1. External Interrupt(外部中斷): CPU 外的週邊元件所引起的.
(I/O Complete Interrupt, I/O Device error)

2. Internal Interrupt(內部中斷): 不合法事件發生所引起的.
(Debug、Divide-by-zero、overflow)

中斷向量(Interrupt vector)
是中斷服務程式的入口位址,或中斷向量表(它是一個中斷處理程式位址的陣列)的表格, 其表格紀錄每一個中斷服務副程式(ISR)的位址.

中斷服務副程式說明

 



2016年12月7日 星期三

[C51/ARM] 中斷服務程式(Interrupt Service Routine,ISR)

每個中斷事件會提供一小段程式去服務此中斷,
稱之為中斷服務副程式(Interrupt Service Routine, ISR).


規則:
1. ISR不能有返回值
2. ISR不能傳遞參數
3. ISR應該是短而高效的
4.在ISR中做浮點運算是不適當的

2016年12月2日 星期五

[常識] 通訊介面:USB,UART,SPI,I2C

通訊介面 接腳
USB
通用序列匯流排
(Universal Serial Bus)
Vcc,D+,D-,GND

UART
通用非同步收發傳輸器
(Universal Asynchronous Receiver/Transmitter)
Tx,Rx
SPI
串行外設介面
(Serial Peripheral Interface Bus)
SCLK(Serial Clock)
MOSI(Master Output,Slave Input)
MISO(Master Input,Slave Output)
SS(Slave Selected)
I2C
積體電路匯流排
(Inter-Integrated Circuit)
SDA(串列資料線)
SCL(串列時鐘線)


 UART又依電壓準位不同分成

RS232
TTL
邏輯(Logic) '1'
-3 ~ -15 v
>= 2.4 v
邏輯(Logic) '0'
3 ~ 15 v
<= 0.5V


USART多了一隻CLK接腳,可提高速度和同步通訊.




#傳輸介面#通訊介面#USB#UART#SPI#I2C

[常識] 單位換算:T G M k m µ n p f

單位換算:T G M k m µ n p f

單位
符號
10的因數
(tera)
T
1012
十億(giga)
G
109
百萬(mega)
M
106
(kilo)
k
103
(milli)
m
10-3
(micro)
µ
10-6
(毫微)(nano)
n
10-9
(微微)(pico)
p
10-12
(毫微微)(femto)
f
10-15

[C51/ARM] 記憶體配置:heap/stack/bss/data/text

此介紹是給在Keil C編譯器上使用8051(C51)和ARM.
(下列介紹由記憶體位置高排到低)

●heap
通常是給動態記憶配置(dynamic memory allocation)使用,需要programmer自己申請.

●stack
區域變數(local variable)
函式參數(function/method parameter)
函數的返回位址(function/method return address)
Keil官方手冊: 3.4 Stack use in C and C++

●bss (uninitialized data)

●data (initialized data)

●text code (text segment)
CPU instructions stored in here.

2016年12月1日 星期四

[C51/ARM] 關鍵字: volatile


volatile關鍵字可以用來提醒編譯器它後面所定義的變數可能隨時改變

●有volatile:
程式每次需要存儲或讀取這個變數的時候,都會直接從變數地址中讀取數據。

●沒有volatile:
則編譯器可能優化讀取和存儲,可能暫時使用暫存器中的值,如果這個變量由別的程序更新了的話,將出現不一致的現象。

Keil官方說明:volatile