Re: 我用UART收GPS資料會停住,一個個敲字不會 ??
|
||||
---|---|---|---|---|
中級會員
|
你所謂的卡住是單步執行時過不去嗎?
還是單單指只顯示第一行? 你 uart 用什麼軟體接來看的? 這軟體它遇到 換行或 '\0' 會顯示後面的字嗎? 是否其實有收到, 是顯示軟體的問題?
發表於: 2009/2/25 17:48
|
|||
|
Re: Microchip USB OTG example 一問
|
||||
---|---|---|---|---|
中級會員
|
參照:
小弟不才,找遍了microchip solution, 找不到 110 mapping 到106 的 datasheet. 天啊, RG12 倒底是什麼東西啊? 我手上又沒 explorer16, 又沒電路圖的
發表於: 2009/2/18 16:52
|
|||
|
Microchip USB OTG example 一問
|
||||
---|---|---|---|---|
中級會員
|
大家好,
我使用 PIC24FJ256106 chip 在寫 usb otg, 我現在在看 microchip 的example, 我發現一個看不懂的東西
//Enable VBUS
這裡的 VBUS_On, VBUS_Off 定義是
#define VBUS_Off LATGbits.LATG12 = 0
我的問題是 1. 這裡的 VBUS_On/VBUS_Off 是做什麼用的? 是必要的東西嗎? 還是只是 Microchip demo board 的指示燈而已? 2.若必要, GB106 並沒有 LATG.12 這 PIN, GB106 相對到 GB110 是要用哪一根 PIN? 在此先感謝各位的指教
發表於: 2009/2/17 10:40
|
|||
|
Re: 請問 bootloader 的中斷向量要怎麼動(搬)
|
||||
---|---|---|---|---|
中級會員
|
我想這跟熟不熟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
|
|||
|
Re: 請問 bootloader 的中斷向量要怎麼動(搬)
|
||||
---|---|---|---|---|
中級會員
|
最後...
終於... 成功了 MPLab 真的是 buggy "Program Memory" Window 根本是假的 還有模擬的假資料 害我一直以為我的 中斷向量表 填寫成功\r 結果原來還有假資料, 是摸擬的 切~~ 爛~~~
發表於: 2009/2/10 14:38
|
|||
|
請問 bootloader 的中斷向量要怎麼動(搬)
|
||||
---|---|---|---|---|
中級會員
|
我用 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
|
|||
|
請問 USB 的 VID, PID 是要申請才能用嗎?
|
||||
---|---|---|---|---|
中級會員
|
請問 USB 的 VID, PID 是要申請過才能用嗎?
若是, 要跟誰申請? 有沒有公眾用的 VID? 謝謝~
發表於: 2009/2/5 9:41
|
|||
|
_CONFIGx 的疑問
|
||||
---|---|---|---|---|
中級會員
|
我在 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
|
|||
|
Re: 關於PIC24F 使用I2C 存取EEPROM
|
||||
---|---|---|---|---|
中級會員
|
你的 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
|
|||
|