網頁

2024年12月1日 星期日

豬肚料理二三事

 1. 乾的(沒水)的豬肚,用麵粉洗 加入中式湯匙約4湯匙(成山狀);揉捏後感覺不夠,下次用5湯匙,揉捏約半個小時,此時麵粉已成粉面狀 !! (煎蛋餅的麵糊狀)

2. 用壓力鍋煮,水開後20分鐘(已爛掉咬得動),改小火繼續主20分鐘;如要有嚼勁大概大火約15分鐘 ! (王剛:8分鐘-稍軟)


註一:

食材:

豬肚一顆600g、仿土雞肉1200g、薑25g(不包括川燙)、枸杞1湯匙、青蒜適量 調味: 白胡椒粒35g、水2800cc、鹽1 1/4茶匙、米酒1湯匙

註二:
蔥段大火熬煮不要超過40分鐘

2024年11月25日 星期一

逐次逼近("successive approximation”)過程的範例

 

逐次逼近("successive approximation”)過程的範例

假設輸入電壓 V in =2.7 V,逐次逼近的步驟如下:

1. 初始數位輸出為 1000(假設第3bit=1),代表中間值,逼近值(Sx)為參考電壓5V之半=2.5,初始時增減值量(Dx)為參考電壓5V之半=2.5

2.7>2.5,因此 MSB 保持 1

A. 因輸入電壓大於逼近數值(Sx),所以增減值量為(+)增減值量;第3bit保留為11000否則為00000)

B. 新增減值量(D3)=原增減值量(原逼近值Dx)/2=2.5/2=1.25

C. 新逼近值(S3)=舊逼近值(Sx) +新增減值量(D3) = 2.5+1.25=3.75

2. 嘗試 1100 (3.75 V)(假設第2bit=1)

2.7<3.75,因此次高位為 0

A. 因輸入電壓小於逼近數值(S3),所以增減值量為(-)增減值量;第2bit01000否則為11100)

B. 新增減值量(D2)=原增減值量(D3)/2=1.25/2=0.625

C. 新逼近值(S2)=舊逼近值(S3) +(-增減值量(D2)) = 3.75+(-0.625)=3.125

3.      嘗試 1010 (3.125 V)(假設第1bit=1)

2.7<3.125,因此次次高位為 0

A. 因輸入電壓小於逼近數值(S2),所以增減值量為(-)增減值量;第1bit01000否則為11010)

B. 新增減值量(D1)=舊增減值量(D2)/2=0.625/2=0.3125

C. 新逼近值(S1)=舊逼近值(S2) +(-增減值量(D1)) = 3.125+(-0.3125)=2.8125

4. 嘗試 1001 (2.8125 V)(假設第0bit=1)

2.7<2.8125,因此次次次高位為 0

A. 因輸入電壓小於逼近數值(S1),所以增減值量為(-)增減值量;第0bit01000否則為11001)

B. 新增減值量(D0)=舊增減值量(D1)/2=0.3125/2=0.15625

C. 新逼近值(S0)=舊逼近值(S1) +(-增減值量(D0)) = 2.8125+(-0.15625)=2.65625

結果為 1000(二進制) (2.52.8125(電壓十進制)),對應數位值為 8(二進制)


2024年10月30日 星期三

N化物

01. 2410310218(30晚) 15ml 朝天辣椒王

02.2411020258(01晚) 15ml 名揚

03.2411030110(023晚) 15ml 朝天辣椒王

04.

2024年10月24日 星期四

不詳電話:5102032390

 不詳電話:5102032390 王先生 ?


2024年10月8日 星期二

AVR 的 LIbrary 查找 ?

 


https://www.nongnu.org/


search:avr-libc 


AVR C Runtime Library


Homepage


Online Users Manual


Library Reference


<util/delay.h>: Convenience functions for busy-wait delay loops

2024年9月27日 星期五

Arduino 202409 AVRDUDESS 燒錄設定

使用的是: ATmega328P-PU 單晶片 Arduino微控制器 32KB Flash 20MHz晶片

軟體版本:目前最新版本 avrdude version 8.0 AVRDUDESS 2.18
 Programmer(-c):arduino_as_isp....(AVR as programmer with and Arduino-as-ISP FW)

上圖片:



2024年8月7日 星期三

2024年7月28日 星期日

Arduino 筆記(下)

<<:左移運算子,將數字 1 向左移 x 個位元。

| :"或 / or"運算子。將兩個運算元的對應位元進行或運算,只要有一個位元為 1,結果的對應位元就為 1。任一為1 為1,否則為 0 一。

& :"和 / and"運算子。將兩個運算元的對應位元進行或運算,只要有兩個位元為 1,結果的對應位元就為 1。倆著為1 為1,否則為 0 一。

頻率(f):在每單位時間內(即每秒)重複發生的次數(週期數,即循環次數)

週期(T):定義為重複事件發生的最小時間間隔。


同底數(冪)相乘,底數不變,指數相加:

a^m*a^n=a^(m+n)

同底數(冪)相除,底數不變,指數相減:

a^m/a^n=a^(m-n)

同指數(冪)相除,指數不變,底數相除(b不為0)

a^n/b^n=(a/b)^n

Atmega328P 的默認時鐘頻為8MHz。

-------------------------------------------------

"CLKPR" 是 Clock Prescaler Register 的縮寫,中文翻譯為「時鐘預分頻器寄存器」

"CLKPCE" 通常是指 "Clock Prescaler Change Enable" 的縮寫,中文翻譯為「時鐘預分頻器更改啟用」, 它是一個控制位。

"TCCR0A" 是指 Timer/Counter 0 的控制(C)寄存器 A。(0210/584) 控制 TCNT0 的計數模式 , 時鐘源波形模式比較器

"TCCR0B" 是指 Timer/Counter 0 的控制(C)寄存器 B。(0211/589)

"OCRnB"  Output Compare Register nB 的縮寫。(0253/937)

"OCFnB  Output Compare Flag nB 的縮寫,中文翻譯為「輸出比較旗標 nB」。(256/960)

"TCNT0" 是指 Timer/Counter 0 的計數器寄存器。(0208/576)

"TIFR0" 是 Timer/Counter 0 Interrupt Flag Register 的縮寫,中文翻譯為"計時器/計數器中斷標誌寄存器 0"

"TOV0”是 Timer/Counter Overflow Flag 0 的縮寫,中文翻譯為「計數器溢出旗標 0」

"OCFnA Output Compare Flag nA 的縮寫,中文翻譯為「輸出比較旗標 nA」。(0255/952)


"OCRnA"  Output Compare Register nA 的縮寫。

"OCRnA"  "OCRnB" 都是輸出比對寄存器,

"OCFnX "是微控制器 (MCU) 中輸出比較模組 (Output Compare Module) 的一個旗標 (flag)。

"CTC模式”通常被翻譯為“單週期計數模式” CTC模式)。CTC 模式是一種定時器操作模式,定時器從 0 計數到比較值(OCRx),然後重設為



2024年7月21日 星期日

二進制中,一般寫法 0xF2 其中字母大小寫有分嗎?另外 0x01 與 0x1 及 0x00 與 0x0 相同嗎?

在十六進位表示法(一種使用基數 16 表示數字的方法)中,字母不區分大小寫。這意味著十六進位數 0xF2 相當於 0xf2、0XF2和0xHf2。十六進制數字可以是大寫或小寫,並且表示的值保持不變。

這種不區分大小寫的情況是由於十六進制數字的編碼方式所造成的。每個十六進位數字對應於 16 進位數字系統中的一個特定值:

0到9:以對應的數字表示(0、1、2、3 、... 、9 )

A到F:用字母A到F表示,對應16進位的值10到15

由於底層值表示不受字母大小寫的影響,因此十六進制數字被認為不區分大小寫。


關於第二個問題:

0x01和0x1代表相同的值,即十進制的1。

0x00和0x0代表同一個值,都是十進制的0。

這是因為十六進位表示法中的前導零不會影響所表示的值。十六進制數的值由其數字的組合決定,從最高有效數字開始,向最低有效數字移動。在 0x01 和 0x00 的情況下,單一數字 1 或 0 是唯一有效的數字,前導零對整體值沒有貢獻。

2024年7月20日 星期六

WORD 快速到指定頁面

 

快速到指定頁面 - F5

按下F5快捷鍵 跳出小視窗 輸入欲到第幾張頁面 OK !!



2024年7月19日 星期五

此($2^8-1$) 中$代表何意?

 01. 此($2^8-1$) 中$代表何意?

在數學中,符號 $ 表示一個數學表達式的開始或結束,這在許多數學文獻中是常見的用法。在這個上下文中,$2^8-1$ 是一個數學表達式,表示計算 

28 的值然後減去 1。

這個表示法在數學和程式設計中都很常見,特別是在討論位元運算和計數器時。

2. 為什麼8位元數值的最大值是255而不是256 ?

8 位元數值的最大值是 255 而不是 256,是因為在二進位計算中,8 個位元可以表示的最大數值是 11111111,換算成十進位就是 255。以下是更詳細的解釋:

二進位計算

在二進位計算中,每個位元可以是 0 或 1。從右到左,每個位元的權重是 $2^0, 2^1, 2^2, ..., 2^7$。一個 8 位元的二進位數字可以表示的範圍是:00000000(2) to 11111111(2)

十進位換算

將這些二進位數字換算成十進位,可以得到:
00000000_{(2)}&=0\times 2^7+0\times 2^6+0\times 2^5+0\times 2^4+0\times 2^3+0\times 2^2+0\times 2^1+0\times 2^0=0_{(10)}\\11111111_{(2)}&=1\times 2^7+1\times 2^6+1\times 2^5+1\times 2^4+1\times 2^3+1\times 2^2+1\times 2^1+1\times 2^0\\&=128+64+32+16+8+4+2+1=255_{(10)}\end{align*}$$所以8位元的二進位數字的最大值是11111111,換算成十進位就是255。##總結8位元可以表示的數值範圍是從0到255,共計256個數值。但是最大值是255而不是256,是因為0也算作一個數值,所以實際上只有256個數值,從0到255。