|
Re: 請教安裝C30的一些問題??
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你好,
MPLAB_C30_v3_02-StudentEdition 是免費的版本, 所以直接安裝是 OK 的. 但是 MPLAB_C30_v3_02-Full 則為正式的全功能版本. 所以是須要購買的而且安裝時須要購買當時所附的序號啦 :) Best Regards,
發表於: 2008/3/31 11:18
|
|||
|
||||
|
Re: 為什麼TBLRD*指令在C18中不能用嵌入式組語?
|
||||
|---|---|---|---|---|
|
管理員
![]() |
Hi 你好,
TBLRD 指令在 MPLAB C18 的嵌入式組合言只能用基本型. 如果要用 C 的話可以參考以下寫法 : ( 取自 Microchip USB bootloader 中 boot.c 的片段 , 若 Install 了 Microchip USB F/W 後可以在 c:\MCHPFSUSB\fw\boot\system\usb\class\boot 找到 :)
void WriteProgMem(void) //TESTED: Passed
發表於: 2008/3/25 18:05
|
|||
|
||||
|
Re: 使用APP013 練習板 練習Bootloader
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你好,
原因可能如下 : 因為在網站上的 Firmware 是新版本的 V1.3 版. 而 V1.3 版加入了以下對 Configuration 的設定. 這是不必要的而且會影響原來的 Configuration 設定. 現在可用的方法為把以下的程式片段用註解區塊 Mark 起來就 OK 了! 還有如果原來的 Boot Loader 不幸因此被毀掉了. 就重新 Import 在 C:\MCHPFSUSB\fw\_factory_hex\ 的 picdemfsusb.hex 然後重新 program 就行了 ! 但要注意的是 APP013 的 Oscillator 是 24 Mhz. 所以在 Configuration Bits 的設定中 , 96 Mhz PLL Prescaler 要設為 "Divide by 6" 再燒錄程式喔 :) #if defined(PIC18F4550_PICDEM_FS_USB) // Configuration bits for PICDEM FS USB Demo Board #pragma config PLLDIV = 5 // (20 MHz crystal on PICDEM FS USB board) #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 // Clock source from 96MHz PLL/2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = OFF #pragma config BOR = ON #pragma config BORV = 3 #pragma config VREGEN = ON //USB Voltage Regulator #pragma config WDT = OFF #pragma config WDTPS = 32768 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF // #pragma config CCP2MX = ON #pragma config STVREN = ON #pragma config LVP = OFF // #pragma config ICPRT = OFF // Dedicated In-Circuit Debug/Programming #pragma config XINST = OFF // Extended Instruction Set #pragma config CP0 = OFF #pragma config CP1 = OFF // #pragma config CP2 = OFF // #pragma config CP3 = OFF #pragma config CPB = OFF // #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF // #pragma config WRT2 = OFF // #pragma config WRT3 = OFF #pragma config WRTB = ON // Boot Block Write Protection #pragma config WRTC = OFF // #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF // #pragma config EBTR2 = OFF // #pragma config EBTR3 = OFF #pragma config EBTRB = OFF #elif defined(PIC18F87J50_FS_USB_PIM) // Configuration bits for PIC18F87J50 FS USB Plug-In Module board #pragma config XINST = OFF // Extended instruction set #pragma config STVREN = ON // Stack overflow reset #pragma config PLLDIV = 3 // (12 MHz crystal used on this board) #pragma config WDTEN = OFF // Watch Dog Timer (WDT) #pragma config CP0 = OFF // Code protect #pragma config CPUDIV = OSC1 // OSC1 = divide by 1 mode #pragma config IESO = OFF // Internal External (clock) Switchover #pragma config FCMEN = OFF // Fail Safe Clock Monitor #pragma config FOSC = HSPLL // Firmware must also set OSCTUNE<PLLEN> to start PLL! #pragma config WDTPS = 32768 // #pragma config WAIT = OFF // Commented choices are // #pragma config BW = 16 // only available on the // #pragma config MODE = MM // 80 pin devices in the // #pragma config EASHFT = OFF // family. #pragma config MSSPMSK = MSK5 // #pragma config PMPMX = DEFAULT // #pragma config ECCPMX = DEFAULT #pragma config CCP2MX = DEFAULT //If using the YOUR_BOARD hardware platform (see usbcfg.h), uncomment below and add pragmas //#elif defined(YOUR_BOARD) //Add the configuration pragmas here for your hardware platform //#pragma config ... = ... #else #error Not a supported board (yet), make sure the proper board is selected in usbcfg.h, and if so, set configuration bits in __FILE__, line __LINE__ #endif
發表於: 2008/3/25 17:41
|
|||
|
||||
|
Re: PIC24FJ32偵測Duty
|
||||
|---|---|---|---|---|
|
管理員
![]() |
Hi,
dsPIC30F Module Training 有關 Timers 的部份已經加入 ! 在 "檔案下載" 的講義及教材分類中: http://www.microchip.com.tw/modules/m ... ds/visit.php?cid=4&lid=77
發表於: 2008/3/20 17:08
|
|||
|
||||
|
Re: 想請教各位大大關於 CAN BUS
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你好,
首先 , 你對於 Loopback & Normal 的觀念是對的 , 那就是 Normal mode 會真的把資料丟出去而 Loopback 只是內部的資料回路而已. 但是 , 因為 Loopback 處於特殊的測試模式 , 所以你的 Message ID = 0x002 , Filter = 0x002 , Mask = 0x7ff 的組合是收得到資料的. 因為此時 CAN 將以 0x002 ID 送出去而由 Loopback 回來的資料視為外部進入的資料而將其接收. 如果切換為 Normal Mode , 送出去的資料雖然在 CAN bus 上而且看起來應該也會進來(大家都應該看得到!) , 但是傳送端是會 Ignor 自己傳送的資料的 ( 只檢查而不接收 ). 如果要使用兩個 CAN node 在 Normal Mode 下面傳輸 , 應該將CAB 的 Filter 互設成對方的 ID 才可以的. 例如 : Node A : Message ID = 0x100 , Filter0 = 0x200 , Mask = 0x7ff Node B: Message ID = 0x200 , Filter0 = 0x100 , Mask = 0x7ff 如此 Node A 與 Node B 才能互通啦 :)
發表於: 2008/3/3 11:26
|
|||
|
||||
|
Re: can18xx8.c 的程式有問題嘛?
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你好,
這其中的玄機就在於 CANCON 暫存器的 bit 1 .. bit 3 啦. 因為 PIC18F 為了要有效率的存取各組不同的 buffer (包括 RXB0 , RXB1 , TXB0..TXB2 ) , 就採取了將大家都可以被 Mapping 到 RXB0 的機制 , 此機制由 CANCON 的 bit 1..3 控制. 所以在程式的一開頭有先對 CANCON bit 1..3 做 & and | 的動作 , 就是要將指定的 TX Buffer Mapping 到 RXB0 的區間. 如此一來就可以較快的 Access TX Buffer 的資料了 ( RXB0 的位址位於 PIC18F 的 Access Buffer 區間 , 最有效率 ) 希望您的問題能因此有所解決 :)
發表於: 2008/3/3 11:11
|
|||
|
||||
|
Re: 上課的demo程式不能執行
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你的錯誤訊息為 :
Skipping link step. The project contains no linker script 表示你的 Project 中沒有包含 .lkr 檔. 請將 C:\MCC18\lkr\p18f4550i.lkr 檔加入 Project 中就應該 OK 了. Regards,
發表於: 2008/1/16 16:48
|
|||
|
||||
|
Re: 請教usb問題
|
||||
|---|---|---|---|---|
|
管理員
![]() |
你好,
現在 Microchip 提供的範例程式都是 C 的原因在於容易讓客戶加入自己的功能. 如果用組合語言, 要看懂程式那就花不少時間了. 如果沒有特殊原因, 將 C 逐步的改成組合語言是沒必要的. 而且你所需的功能很簡單. 用 Microchip 的 CDC 或 HID firmware 就好了. Regards,
發表於: 2008/1/16 10:40
|
|||
|
||||
|
Re: APP023-2,3,4 線路及使用手冊
|
||||
|---|---|---|---|---|
|
管理員
![]() |
PIC32 的模組在我們對 PIC32 有更多的瞭解及 Handle 能力後會出 PIC32 for APP023 的 CPU 子卡的 !
關於 QVGA , 因為 Microchip 原廠的 QVGA 價錢已經不錯了, 而且我們若只採購小量的 Graphic LCD Module 有困難. 所以至今尚無計劃啦 :) Thanks & Regards,
發表於: 2008/1/7 18:04
|
|||
|
||||