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

論壇索引


Board index » All Posts (Libra)




Re: pic18f57k42燒錄時可以不將EEPROM寫入嗎?
管理員
管理員


可以在Project Properties中的燒錄器設定不要燒錄EEPROM
縮圖

Attach file:



jpg  PIC18F57K42_EEPROM.jpg (184.91 KB)
67979_6189ba1f2ad36.jpg 902X592 px

發表於: 2021/11/9 8:00
頂部


Re: CCP(Capture)與壓縮機干擾
管理員
管理員


請問是哪一顆 sensor呢? 又您是用哪一顆MCU來做sensor的量測呢?

發表於: 2021/11/8 10:17
頂部


Re: External Memory interface (Address[A0:....]/Data[0:15]/nCS/nRD/nWE) 有拉出來到2.54mm DIP 插座ARM 32的開發/評估板?
管理員
管理員


你好, 目前有外接Memory介面(EBI/SDRAM)的ARM base MCU, 並沒有提供可以使用2.54 Connector的外接Memory設計, 但是這些有EBI/SDRAM的EVB, 都已經有設計板上的外接SDRAM, 或是有預留EBI LCD的排線接頭, 這些EVB大多有SD Card socket, USB2.0則有分FS或是HS的視你的需求,

EVB相關請參考
Cortex-M4
SAM4E-XPRO
https://www.microchip.com/en-us/development-tool/ATSAM4E-XPRO

Cortex-M7
SAME70 Xplained Ultra Evaluation Kit
https://www.microchip.com/en-us/development-tool/DM320113

SAM V71 Xplained Ultra Evaluation Kit
https://www.microchip.com/en-us/development-tool/ATSAMV71-XULT

發表於: 2021/11/8 10:14
頂部


關於浮點數存儲的問題
管理員
管理員


假設有一個浮點數字串 "3.14159", 想要存到 EEPROM 要怎麼做呢?
首先要看你想存的 浮點數 是字串還是真的 float 數值
如果 想直接存入 字串時,
char PI[7] = "3.14159";
EEPROM_WriteAddressPIsizeofPI ) );


如果想存入 float 數值時,
1. 要先將字串轉為 float 數值, 可以使用 C string function 來達成
char PI[7]="3.14159";
float f_PI;
sscanfPI"%f", &f_PI );

此時f_PI內容即為數值 3.14159f

2. 接著要因為EEPROM API寫入的內容為 Bytes, 因此要知道 浮點數 float 型別的儲存內容為何?
任何 C 變數型別, 依不同的編譯器及平台, 由特定長度的 Byte 來儲存其值,
其中 float 型別依照 IEEE-754 規範以 4 個 Bytes來表示,
因此我們宣告一個 int32 型別來取得 float 變數的 4 個 Byte內容,
方便 EEPROM API來存取,
下面是拆成細部分解來解釋:
char PI[7]="3.14159";  // 浮點數字串
float f_PI;           // 真正的 浮點數
uint8_t i_PI[4];   // 要寫入 EEPROM的 4個Bytes buffer
int32_t *p_PI;    // 指向 4個 Byets的 32 bit 指標

sscanfPI"%f", &f_PI );  // 將字串轉成浮點數 f_PI
p_PI = (int32_t*)i_PI;        // 將32 bit指標指向 4個Bytes buffer
*p_PI = *((int32_t*)(&f_PI));  // 將浮點數 f_PI 存放的 4 個Bytes內容, 複製到 p_PI指向的 Buffer i_PI
EEPROM_Writeaddressi_Pi); // 將 i_PI存入 EEPROM
// ==============
EEPROM_Readaddressi_Pi); // 將 i_PI 自 EEPROM 讀出
p_PI = (int32_t*)i_PI;   // 將32 bit指標指向 4個Bytes buffer
f_PI= *((float*)(p_PI)); // 將p_PI指向的 4個Bytes Buffer i_PI,  複製到浮點數 f_PI
sprintfPI"%f"f_PI ); // 將浮點數 f_PI轉成字串



而實際上了解記憶體型別轉換的概念後, 真正的 code 可以簡化為
char PI[7]="3.14159";  // 浮點數字串
float f_PI;           // 真正的 浮點數
uint8_t i_PI[4];   // 要寫入 EEPROM的 4個Bytes buffer

sscanfPI"%f", &f_PI );  // 將字串轉成浮點數 f_PI
memcpyi_PI, (uint8_t *)(&f_PI), ); // 將 f_PI 所在的 4 bytes內容複製給 i_PI
EEPROM_Writeaddressi_Pi); // 將 i_PI存入 EEPROM
// ==============
EEPROM_Readaddressi_Pi); // 將 i_PI 自 EEPROM 讀出
memcpy( (uint8_t*)(&f_PI), i_PI); // 將 i_PI 所在的 4 bytes內容複製給 f_PI
sprintfPI"%f"f_PI ); // 將浮點數 f_PI轉成字串


或者也這樣寫, 但看起來比較暈

char PI[7]="3.14159";  // 浮點數字串
float f_PI;           // 真正的 浮點數
uint8_t i_PI[4];   // 要寫入 EEPROM的 4個Bytes buffer

sscanfPI"%f", &f_PI );  // 將字串轉成浮點數 f_PI
*((float*)i_PI) = f_PI// 將 f_PI 所在的 4 bytes內容複製給 i_PI
EEPROM_Writeaddressi_Pi); // 將 i_PI存入 EEPROM
// ==============
EEPROM_Readaddressi_Pi); // 將 i_PI 自 EEPROM 讀出
f_PI = *((float*)i_PI); // 將 i_PI 所在的 4 bytes內容複製給 f_PI
sprintfPI"%f"f_PI ); // 將浮點數 f_PI轉成字串

發表於: 2021/11/3 13:42

Edited by Libra on 2021年11月03日 14:02:01
Edited by Libra on 2021年11月03日 15:10:38
Edited by Libra on 2021年11月10日 08:08:27
頂部


Re: 請問台北何時會再有PIC的課程?網頁下面台北的電話都沒人接
管理員
管理員


很可惜呢! 空中教室的 PIC1001課程剛剛才結束, 今年不會再開課
可以上 mu.microchip.com 上面有 MCC相關課程喔!

Microchip University
https://mu.microchip.com/page/tmu

軟體框架
https://mu.microchip.com/page/soft-fmk-tc

嵌入式系統設計
https://mu.microchip.com/page/embedded-design-tc

另外台灣官網也有線上研討會, 剛好有 開發環境介紹, 歡迎參加
11/16 MU 選粹-5 : 玩轉MPLAB X IDE技巧與提示實戰
https://register.gotowebinar.com/register/4415489582009389836

發表於: 2021/10/29 18:25
頂部


Re: 要開啟MHC時,若configuration不是default,會出現錯誤而無法動作
管理員
管理員


Configure 有分
1. Project Configuration (在Project Properties中可以設定不同的Configuration)
以及
2. Harmony Configuration

Harmony 3在改用 yml 當成configuration之後,
便無法在MPLAB X IDE中, 切換不同的 Project Configuration, 來自動產生對應的 Harmony configuration.
因此無論 Project Configuration 有幾個,
一律只有切到新建專案的那個Configuration時, 才能進入Harmony設置

如果要做到不同的 Project Configuration 可以對應不同的 Harmony Configuration時,
可以依照以下步驟來達成
相關步驟可以參考以下連結
https://microchip-mplab-harmony.github ... _mhc_important_files.html

1. 先建立專案並命名 Project Configuration 為 "main"
2. 進入 Harmony 並 Gencode
3. 此時會產生以 "main" 為名的 Harmony Configuration folder
"firmware\src\config\main"
4. 關閉 MPLAB X IDE
5. 執行 [HarmonyFramework]\mhc\runmhc.bat
6. 此時會開啟 standalone MHC GUI
7. 點選 File> New Configuration
8. 專案路徑與專案名稱需設為剛剛新建的專案
9. Configuration Name 設為第二組名稱, 如 "second"
10. Path 中的名稱不會跟著改, 維持顯示 default 是正常的
11. 一樣指定 chip part number
12. 按 [Finish] 即可產生新的 Harmony Configuration "second"
13. 執行一次 Gencode
14. 即可產生以 "second" 命名的 Harmony Configuration Folder
"firmware\src\config\second"
15. 離開 standalone MHC
16. 回到 MPLAB X IDE 打開專案
17. 新增一組 "second" 的 Project Configuration
18. 之後切換 Project configuration 即可切換對應名稱的 Harmony Configuration

發表於: 2021/10/29 17:42

Edited by Libra on 2021年10月29日 18:26:12
Edited by Libra on 2021年11月01日 08:05:13
Edited by Libra on 2021年11月01日 08:05:39
Edited by Libra on 2021年11月01日 08:07:27
頂部


Re: SAML10 XPLAINED PRO用Microchip Studio 7.0如何實現I2C bootloader?
管理員
管理員


之前有開過Example Project但是現在失敗嗎? 可能有些Module損壞了, 需要重裝

發表於: 2021/10/29 13:21
頂部


Re: MHC 創建 Keil 問題
管理員
管理員


您應該是參考這篇APP note
https://microchip-mplab-harmony.github ... ing_iar_keil_project.html

由於您的舊專案使用的Harmony Framework 版本比較舊,
但是在您電腦中的 Framework 已經升到新版的Framework,
縮圖


當重新使用MHC建立 Keil Project 並Gencode時,
會使用電腦中較新的 Framework 來 Gencode,
導致舊專案中的Application code發生錯誤,
這是因為新的Framework可能採用完全不同的API function或是Definition,
舊專案要能使用時,
1. 必須使用當時舊版的Framework版本, 或是
2. 將舊專案的Application改寫成可以使用新版Framework的用法.

在Harmony Content Manager中可以, 選擇將當前的 Framework 降版, 如果降版發生錯誤時, 請刪除該 Module 重新下載一次之後, 再降版
縮圖

Attach file:



jpg  Framework_diff.jpg (131.10 KB)
67979_617b77685647b.jpg 781X376 px

jpg  Framework_downgrade.jpg (127.73 KB)
67979_617b777c2f205.jpg 588X520 px

發表於: 2021/10/29 12:24
頂部


Re: MHC 創建 Keil 問題
管理員
管理員


我嘗試轉了一個SAM2002的Lab, 在Keil下編譯並沒有出錯.
方便將專案寄給我測試看看嗎?
libra.chien@microchip.com

發表於: 2021/10/29 9:46
頂部


Re: 請問MHC有沒有操作LCD (12864 - ST7565P)的組件?
管理員
管理員


Harmony GFX主要是在大顯示幕的開發比較方便, 小屏開發時的效率不高,
因為GFX本身就是一個很大Graphic Library,
1. GFX做出來的Display Driver狀態機太複雜, 刷新速度慢.
2. 小的螢幕如果有觸控功能時, 放上Harmony互動式Widget(按鈕/選單/滑條)效果不好,
3. GFX提供的字型建立雖然方便, 但是因為整體Library太複雜效率差.

建議使用PLIB或是SPI Driver直接寫Display Driver效率比較好.
英文字型可以用bitmap貼方式達成, 其他語言如果只是固定文字時也可採用貼圖方式達成
下面是我做的血氧計範例, 用的是SSD1036單色顯示OLED
畫面上的英文字母是圖檔切割而組合而來, 中文字則是整張Bitmap
縮圖

縮圖

縮圖

縮圖


如果真的要使用Hamrony GFX來畫圖時,
可以搭配 Aria 或 Legato 這兩個GFX Library,
縮圖

加上external controller自行建立自己的Display Dirver, 就可以使用GFX設計自己的GUI
縮圖

Attach file:



jpg  Oximeter_1.jpg (141.99 KB)
67979_617b4026cbeb8.jpg 625X434 px

jpg  CString4.jpg (2.12 KB)
67979_617b408ade712.jpg 52X16 px

jpg  CString5.jpg (2.10 KB)
67979_617b40ab0b153.jpg 52X16 px

jpg  Font7x16.jpg (16.37 KB)
67979_617b40f9102b0.jpg 665X16 px

jpg  Harmony_GFX.jpg (176.77 KB)
67979_617b413814cf6.jpg 1031X319 px

jpg  Harmony_GFX_Legato_Config.jpg (217.37 KB)
67979_617b4151835e5.jpg 537X909 px

發表於: 2021/10/29 8:28
頂部



« 1 ... 9 10 11 (12) 13 14 15 ... 33 »



:::

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... ]

教育訓練中心

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