Re: c18 piclf46k22 eeprom 燒錄初始問題
|
||||
---|---|---|---|---|
版主
|
是的,C18 所提供的 lkr 是基本的標準檔,如果要加入一些特殊的記憶體使用就必須做些特殊的宣告。
你可以用強制指定 eeprom 的程式位址的方式來制定位址如下所示: 程式中加入: #pragma romdata EEDATA=0xF00000 rom unsigned char Temp_Setting[ ] = {0xE7,0x03,0x00,0x00} // 設定 EEPROM 溫度範圍初始設定值 (0.0OC ~ 99.9OC) // 0x03E7 = 99.9OC , 0x0000 = 0.0OC 擺放在 Internal EEPROM Addr. 0x00 ~ 0x03 位址 #pragma romdata 使用 PIC18Fxxxx EEPROM 的程式範例及PPT 教材可以參考 W402T v2.0 PIC18F整合應用課程 教育訓練的第四章的說明。
發表於: 2021/7/9 14:08
|
|||
|
Re: c18 piclf46k22 eeprom 燒錄初始問題
|
||||
---|---|---|---|---|
版主
|
有關 PIC18F 內建 EEPROM 內容值的初始設定依使用的 compiler 在用法上是不同的。
使用 XC8 及 C18 的方法是不同,如下: 1. XC8 是使用巨集指令的方式在 pic.h 的標頭檔內定義的。(可參考 XC8T v1.0 的教材內說明)。 2. C18 則是使用 link 描述檔去指定 (比較複雜)。 相關資料及教材,C18 可以參考 "W401 v3 MPLAB C18 C Compiler Workshop" 第二天的教材,如貼圖所示。
發表於: 2021/7/8 13:24
|
|||
|
Re: 暫存器設定波浪號問題
|
||||
---|---|---|---|---|
版主
|
一般使用 XC8 compiler 只要引用萬用的標頭檔即可: #include
xc.h 檔是第一 層含入檔,之後他會依據 X IDE 所傳遞專案裡所使用的元件名稱後開始到第二層處理....直到第四層找出 pic18_chip_select.h 裡的元件 如: pic18f45k22.h
/********************************************************************************
有關這興標頭檔的層次及相關內容可以參考 XC8T 的中文教育訓練教材內的說明。
發表於: 2021/7/8 13:10
|
|||
|
Re: DM330018實驗板
|
||||
---|---|---|---|---|
版主
|
應該是有 delay 函數的支援,請下載一下 XC16 的 U'ser Guide 裡面有詳細的說明頻率與延遲的設定需求。
C:\Program Files (x86)\Microchip\xc16\v1.36\docs\MPLAB_XC16_C_Compiler_Users_Guide.pdf
發表於: 2021/7/7 14:43
|
|||
|
Re: XC8 錯誤問題
|
||||
---|---|---|---|---|
版主
|
我沒有辦法複製出你的錯誤。typeSub( ) 不存在且是在 I2C 裡呼叫的。
一樣建議看一下教育訓練光碟下的教材: http://www.microchip.com.tw/RTC/RTC_DVD/ 8-Bits MCU 相關課程 --> MCC201 v3.0x MPLABC® Code Configurator 這份教材使用 MCC 元件是 PIC18F45K22 與你使用的元件是同一系列的,裡面一 I2C 的章節及範例請參考一下。
發表於: 2021/7/7 14:38
|
|||
|
Re: dsPIC30F3011 UART問題
|
||||
---|---|---|---|---|
版主
|
1. 請再看一下 dsPIC30F4011 的 UASRT 方塊圖。傳送事先送到 UxTXERG 的 4 層 FIFO 的暫存區,之後資料會在載入到 U2TSR 傳送出去。看不到 FIFO U2TXREG 是正常的。
同樣接收也是有四層接收 FIFO的。 2. TRMT status bit in the UxSTA SFR Bit is cleared if Transmit Shift Register (UxTSR) is busy or a transmission is pending 建議先檢查 TRMT 位元的狀態後再傳送資料。 3. 你有使用 dsPIC30F4011 的周邊函數庫,所以需使用 C30 的編譯器,XC16 線不支援就的周邊函數改由MCC 來支援爭邊函數。 4. 你的問題我無法一行一行的看,建議你參考我之前寫的教材: http://www.microchip.com.tw/RTC/RTC_DVD/ 16-Bits MCU 相關課程 --> dsPICMOD dsPIC30F Module Training 裡面有USART 的章節,有投影教材及三個城市範例可以參考看看。
發表於: 2021/7/7 14:31
|
|||
|
Re: Dspic33FJ64MC508A Timer1設定問題
|
||||
---|---|---|---|---|
版主
|
1. 使用外部石英晶體震盪期輸入的頻率範圍是1.6 ~ 16MHz. 最高 Fosc 輸出頻率為 80Mhz. 參考地下例子。
建議使用 MCC 來建立系統的設定及周邊函數庫。
// Configure Oscillator to operate the device at 80Mhz
2. dsPIC33FJ 系列沒有 Reference Frequency 的輸出腳位。所以只能透過 I/O 在 while( ) 回圈內 Toggle 運算用示波器量一下 I/O 輸出的頻率。 3. 使用 Timer 的 I/O Toggle 的測量 有一點很重要的就是要先確定 Fosc 的頻率是你需要的。
發表於: 2021/7/6 12:19
|
|||
|
Re: ATSAMC21J18A 編譯錯誤
|
||||
---|---|---|---|---|
版主
|
" 我使用 MPLAB X IDE: V4.15 ,XC32: V2.50 "
謝謝 Darren 的提示,你的 MPLAB X IDE 太舊了,希望可以全部更新。
發表於: 2021/7/5 14:15
|
|||
|
Re: dsPIC30F3011 RS232共地問題
|
||||
---|---|---|---|---|
版主
|
RS-232 是屬於裝置對裝置的連線,這無關雙方裝置所使用的電源,因為 RS-232 有它自的硬體架構及基本的通訊協定。
RS-232 的輸出電壓是 +-9V ~ +-15V 。如果是使用 9-pin D-T ype 接頭的話,那就是在 DTE 邊是 2-PIN 傳送,3-PIN接收,第 7-PIN 是共地,連線時要雙方要接接在一起才可以通訊。 要先搞清處 RS-232 誰是 DTE and DCE 這樣收發接線才不會誤接。 拜一下 Google 查一下。
發表於: 2021/7/4 14:50
Edited by Ryang on 2021年07月04日 16:02:47
|
|||
|