:::

論壇索引


Board index » All Posts (calvin)




Re: 請教安裝C30的一些問題??
#71
管理員
管理員


你好,

MPLAB_C30_v3_02-StudentEdition 是免費的版本, 所以直接安裝是 OK 的. 但是 MPLAB_C30_v3_02-Full 則為正式的全功能版本. 所以是須要購買的而且安裝時須要購買當時所附的序號啦 :)

Best Regards,

發表於: 2008/3/31 11:18
頂部


Re: 關於ram的問題
#72
管理員
管理員


你好,

我想你的問題出在對 MPLAB C30 的 Data Model 的設定問題. 在 MPLAB IDE 功能表的 Project -> Build Options -> Project 可以打開 此 Project 的設定畫面. 在 MPLAB C30 的選項裡有一個 Memory Model 的項目可以設定 Memory Model ( 包括 Code Model & Data Model ).

預設值為 small model , 也就是說 Data Memory 只會用最前面 8K , 而最前面的 2K 為 Special Function Memory 佔用. 所以啦 , 你只剩 6K 可以用 :)

可以將 Data Model 改為 "Large Data Model" 或將變數以 far 的 attribute 宣告啦.

祝你開發順利 :)

發表於: 2008/3/25 18:15
頂部


Re: 為什麼TBLRD*指令在C18中不能用嵌入式組語?
#73
管理員
管理員


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
{
    
/*
     * The write holding register for the 18F4550 family is
     * actually 32-byte. The code below only tries to write
     * 16-byte because the GUI program only sends out 16-byte
     * at a time.
     * This limitation will be fixed in the future version.
     */
    
dataPacket.ADR.low &= 0b11110000;  //Force 16-byte boundary
    
EECON1 0b10000100;        //Setup writes: EEPGD=1,WREN=1

    //LEN = # of byte to write

    
for (counter 0counter < (dataPacket.len); counter++)
    {
        *((
dataPacket.ADR.pAdr)+counter) = 
        
dataPacket.data[counter];
        if ((
counter 0b00001111) == 0b00001111)
        {
            
StartWrite();
        }
//end if
    
}//end for
}//end WriteProgMem

發表於: 2008/3/25 18:05
頂部


Re: 使用APP013 練習板 練習Bootloader
#74
管理員
管理員


你好,

原因可能如下 : 因為在網站上的 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
#75
管理員
管理員


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
#76
管理員
管理員


你好,

首先 , 你對於 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 的程式有問題嘛?
#77
管理員
管理員


你好,

這其中的玄機就在於 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程式不能執行
#78
管理員
管理員


你的錯誤訊息為 :

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問題
#79
管理員
管理員


你好,
現在 Microchip 提供的範例程式都是 C 的原因在於容易讓客戶加入自己的功能. 如果用組合語言, 要看懂程式那就花不少時間了.
如果沒有特殊原因, 將 C 逐步的改成組合語言是沒必要的. 而且你所需的功能很簡單. 用 Microchip 的 CDC 或 HID firmware 就好了.

Regards,

發表於: 2008/1/16 10:40
頂部


Re: APP023-2,3,4 線路及使用手冊
#80
管理員
管理員


PIC32 的模組在我們對 PIC32 有更多的瞭解及 Handle 能力後會出 PIC32 for APP023 的 CPU 子卡的 !
關於 QVGA , 因為 Microchip 原廠的 QVGA 價錢已經不錯了, 而且我們若只採購小量的 Graphic LCD Module 有困難. 所以至今尚無計劃啦 :)

Thanks & Regards,

發表於: 2008/1/7 18:04
頂部



« 1 ... 5 6 7 (8) 9 10 11 ... 33 »



:::

Microchip連結

https://www.linkedin.com/company/microchiptechnologytaiwan
https://www.facebook.com/microchiptechnologytaiwan/?locale=zh_TW
https://mkpage.microchip.com/l/1082123/2025-03-12/2stnv5
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
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... ]

教育訓練中心

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