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

論壇索引


Board index » All Posts (test838)




Re: 我用UART收GPS資料會停住,一個個敲字不會 ??
#21
中級會員
中級會員


你所謂的卡住是單步執行時過不去嗎?
還是單單指只顯示第一行?

你 uart 用什麼軟體接來看的?
這軟體它遇到 換行或 '\0' 會顯示後面的字嗎?
是否其實有收到, 是顯示軟體的問題?

發表於: 2009/2/25 17:48
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Re: Microchip USB OTG example 一問
#22
中級會員
中級會員


參照:

Ryang 寫道:
Data Sheet 上面有寫的很詳細。

小弟不才,找遍了microchip solution, 找不到 110 mapping 到106 的 datasheet.
天啊, RG12 倒底是什麼東西啊? 我手上又沒 explorer16, 又沒電路圖的

發表於: 2009/2/18 16:52
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


一個怪異的 compile 語法錯誤
#23
中級會員
中級會員


請問底下紅字那行的語法有什麼錯?

#define BAUDRATE2 57600
#define BRG_DIV2 4
#define BRGH2 1

#define BAUD_ERROR ((BAUD_ACTUAL > BAUDRATE2) ? BAUD_ACTUAL-BAUDRATE2 : BAUDRATE2-BAUD_ACTUAL)
#define BAUD_ERROR_PRECENT ((BAUD_ERROR*100+BAUDRATE2/2)/BAUDRATE2)

#if (BAUD_ERROR_PRECENT > 3)
#error UART frequency error is worse than 3%
#elif (BAUD_ERROR_PRECENT > 2)
#warning UART frequency error is worse than 2%
#endif

紅色那行的錯誤訊息如以下
error: missing binary operator before token "("

什麼 binary operator? 為何要 binary operator?

發表於: 2009/2/17 11:55
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Microchip USB OTG example 一問
#24
中級會員
中級會員


大家好,
我使用 PIC24FJ256106 chip 在寫 usb otg, 我現在在看 microchip 的example, 我發現一個看不懂的東西
//Enable VBUS
                
[color=ff0000]VBUS_On;[/color]

                
//Delay 10ms
                
USBOTGDelayMs(10);

                
//Disable VBUS
                
[color=ff0000]VBUS_Off;[/color]

這裡的 VBUS_On, VBUS_Off 定義是
#define VBUS_Off            LATGbits.LATG12 = 0
    #define VBUS_On             LATGbits.LATG12 = 1


我的問題是

1. 這裡的 VBUS_On/VBUS_Off 是做什麼用的? 是必要的東西嗎? 還是只是 Microchip demo board 的指示燈而已?

2.若必要, GB106 並沒有 LATG.12 這 PIN, GB106 相對到 GB110 是要用哪一根 PIN?

在此先感謝各位的指教

發表於: 2009/2/17 10:40
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Re: 請問 bootloader 的中斷向量要怎麼動(搬)
#25
中級會員
中級會員


我想這跟熟不熟tool沒有關係吧
明明 hex 檔不是mplab寫入的,但只要開application,它就會 "假會" 把memory先填進去了
照Ryang所說重讀一遍也不是解法, 因為它只要再compile一次, 還沒燒它就先填 "假memory" 了
單步執行中它會用假memory來誤導開發者
其實,並沒有人要求它要在 compile 後就要立刻填假memory
它可以在使用者真的的燒錄/verify完成後真實的呈現memory狀態即可
假memory的動作真的是多餘的
不然,它也可以在memory上用不同顏色,例如紅或者灰色來代表這並不是確定的memory啊
我想,MicroChip也是要賺錢,若使用者不會出茶包(trouble),很快的完成他的工作,
產品很快上市,對MicroChip何嚐不是一件好事?
若說是不熟我想太說不過去
因為有 bug 的軟體, 你說因為用久懂的避開就便不是軟體的 bug, 那我也只能無言了

以我現在最常用的sillicion來說, 它不會出這種問題, 它debugger(小白)一顆才15xx 含軟體
另一顆 AVR 的 JTag 也是不會出這種茶包, 價錢我是不知道
而 ICD2 很大/很圓一顆便宜的至少也要4000, 但會出茶包, 真不知該如何說

當然啦東西好壞不是價錢決定
你若說 Microchip IC 較便宜,有些東西你要忍耐
其實, 我並沒有要求 ICD2 要有什麼重大功能喔 (記住)
我只是要它不要 "假會"
對了, 還有 "一致性" 問題
很奇怪, 在編輯時, double click 是設定中斷點
但 runtime 時 double click 卻又變成選取字 (昏)
這是設計這套開發 tool 前的 "流程" 沒有定義好的問題
啊~
浪費太多時間了,不講了,以上純粹個人感受,勿筆戰

發表於: 2009/2/11 9:37
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Re: 請問 bootloader 的中斷向量要怎麼動(搬)
#26
中級會員
中級會員


最後...
終於...
成功了

MPLab 真的是 buggy
"Program Memory" Window 根本是假的
還有模擬的假資料
害我一直以為我的 中斷向量表 填寫成功\r
結果原來還有假資料, 是摸擬的
切~~
爛~~~

發表於: 2009/2/10 14:38
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


請問 bootloader 的中斷向量要怎麼動(搬)
#27
中級會員
中級會員


我用 p24FJ256GB106 這顆開發 bootloader, bootloader 是用 Microchip 的 "HID Bootloader - Firmware for PIC24FJ256GB110 Family Devices" 這個 example 改的

我現在寫了 test1 跟 test2 的二個 APP 程式 (二支程式只是閃燈速度及顏色不一樣), 用 bootloader 均可成功上傳更替程式
不過, 當我在 test1 程式上使用 Timer 4 中斷後, 就會一直重新開機

我想問題應該是出在中斷向量表, 因為我沒有搬過中斷向量, 我應該怎麼做呢? 要動 AP 程式? 要動 BL 程式?

以下是我的 gld
[BootLoader gld]
MEMORY
{
data (a!xr) : ORIGIN = 0x800, LENGTH = 0x4000
reset : ORIGIN = 0x0, LENGTH = 0x4
ivt : ORIGIN = 0x4, LENGTH = 0xFC
aivt : ORIGIN = 0x104, LENGTH = 0xFC
program (xr) : ORIGIN = 0x400, LENGTH = 0x1000
config4 : ORIGIN = 0x2ABF8, LENGTH = 0x2
config3 : ORIGIN = 0x2ABFA, LENGTH = 0x2
config2 : ORIGIN = 0x2ABFC, LENGTH = 0x2
config1 : ORIGIN = 0x2ABFE, LENGTH = 0x2
}

__CONFIG3 = 0x2ABFA;
__CONFIG2 = 0x2ABFC;
__CONFIG1 = 0x2ABFE;

__IVT_BASE = 0x4;
__AIVT_BASE = 0x104;
__DATA_BASE = 0x800;
__CODE_BASE = 0x400;

[測試用 APP gld]

MEMORY
{
data (a!xr) : ORIGIN = 0x800, LENGTH = 0x4000
reset : ORIGIN = 0x0, LENGTH = 0x4
ivt : ORIGIN = 0x4, LENGTH = 0xFC
aivt : ORIGIN = 0x104, LENGTH = 0xFC
program (xr) : ORIGIN = 0x1400, LENGTH = 0x297F8
config4 : ORIGIN = 0x2ABF8, LENGTH = 0x2
config3 : ORIGIN = 0x2ABFA, LENGTH = 0x2
config2 : ORIGIN = 0x2ABFC, LENGTH = 0x2
config1 : ORIGIN = 0x2ABFE, LENGTH = 0x2

}

__CONFIG3 = 0x2ABFA;
__CONFIG2 = 0x2ABFC;
__CONFIG1 = 0x2ABFE;

__IVT_BASE = 0x4;
__AIVT_BASE = 0x104;
__DATA_BASE = 0x800;
__CODE_BASE = 0x1400;

發表於: 2009/2/6 18:43
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


請問 USB 的 VID, PID 是要申請才能用嗎?
#28
中級會員
中級會員


請問 USB 的 VID, PID 是要申請過才能用嗎?
若是, 要跟誰申請?
有沒有公眾用的 VID?

謝謝~

發表於: 2009/2/5 9:41
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


_CONFIGx 的疑問
#29
中級會員
中級會員


我在 pic24_code_examples 的 bootloader 裡看到
config2 將 colock 設成 FRC
_CONFIG2(IESO_OFF & FNOSC_FRC & FCKSM_CSECMD & OSCIOFNC_ON & IOL1WAY_OFF & POSCMD_SEL);

但是另一方面他又在 pic24_clockfreq.c 將其設成 FRCPLL
void configClock(void) {
// To be safe: if this was run by a bootloader that chose FRCPLL mode,
// then we can't change the bits below. To do so, first switch to FRC,
// change bits, then switch back to FRCPLL.
switchClock(GET_OSC_SEL_BITS(FNOSC_FRC));
// Ensure that the FRC postscaler is at '1' and not its reset default of '2' (PIC24F family)
// avex, RCDIV2:RCDIV0: FRC Postscaler Select bits, 000 = 8 MHz (divide by 1)
_RCDIV = 0;
switchClock(OSC_SEL_BITS); <--- 這個值是 FRCPLL
}


int main(void)
{
...
configClock();
...
}

我想問的是:
1. 請問當 power on 時, _CONFIG2 和 configClock 的設定值哪一個會先被啟用?

2. _CONFIG2 的運作原理又是如何?

3. 在 GUI 上設 configuration bits跟用程式碼設 _CONFIGx 有什麼差別

發表於: 2009/2/2 17:37
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部


Re: 關於PIC24F 使用I2C 存取EEPROM
#30
中級會員
中級會員


你的 I2C_BRG 算出來值是多少? 你要知道, 你這裡的 C 是 integer, 除完小數後面會被截掉.

建議你用 while 一直讓 I2C 寫出, 讓示波器的 SCL 出現方波, 算一下它是幾 KHZ
EEPROM datasheet 大概會寫可以承受 400 KHz, 但建議不要超過 390.

你也可以暫時不要用公式算, 先用故定值填入試試, 先避開其它不必要的變因, 但也要量一下示波器, 例如
OpenI2C1( I2C_ON, 0x22 /*I2C_BRG*/ );
OpenI2C1( I2C_ON, 0x11 /*I2C_BRG*/ );



發表於: 2009/2/2 14:41
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
頂部



« 1 2 (3) 4 5 6 »



:::

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

教育訓練中心

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