:::

論壇索引


Board index » All Posts (mirage315)




Re: APP013上JP2開關之用途
#11
初級會員
初級會員


感謝版主回覆!!

發表於: 2009/10/5 13:10
頂部


APP013上JP2開關之用途
#12
初級會員
初級會員


我將microchip網站上USB CDC - Basic Demo(PICDEM FSUSB)
這個範例燒在Explorer16的PIC18F4550上
用USB接上電腦裝上microchip附的驅動程式後
就會出現虛擬的COM port

但我改成燒錄在APP013的PIC18F4550後
用USB接上電腦會發生找不到驅動程式的問題
指向之前安裝的驅動程式位置也抓不到
照理來說同樣的晶片同樣的程式應該可以直接抓到驅動才對吧?

所以我在想是不是因為兩塊實驗版的差異?
例如Explorer16上PIC18是使用20MHz的震盪器
但APP013上是使用24MHz的震盪器
而且APP013上的JP2開關我目前也看不懂他要怎麼跳才對

請問有人可以給予解答嗎?
謝謝

發表於: 2009/10/2 17:27
頂部


Re: PIC18的SPI進不了中斷的問題
#13
初級會員
初級會員


感謝版主熱心幫我看程式

沒有想到是書上OpenTimer1的地方參數給錯了

我再去測看看SPI是否能正常收到資料進入中斷

有問題再來請教

謝謝

發表於: 2009/9/23 17:05
頂部


Re: PIC18的SPI進不了中斷的問題
#14
初級會員
初級會員


開啟中斷的地方
我是寫在Init_TMR1()裡
用內建的OpenTimer1()函示去做設定的
我也是過直接對暫存器給值做設定的方式
但還是一樣.....
連用MPLAB SIM模擬都進不了中斷
實在是怪了..........

void Init_TMR1 (void){

OpenTimer1( TIMER_INT_ON & // 使用C18編譯器timer函式庫
T1_16BIT_RW & // 初始化設定Timer1
T1_SOURCE_EXT & // 並開啟TIMER1中斷功能(PIE1bits.TMR1IE=1)
T1_PS_1_1 &
T1_OSC1EN_ON &
T1_SYNC_EXT_ON );
WriteTimer1(TMR1_VAL); // 寫入預設值
PIR1bits.TMR1IF = 0; // 清除中斷旗標

}

發表於: 2009/9/18 23:13
頂部


Re: PIC18的SPI進不了中斷的問題
#15
初級會員
初級會員


多謝版主的熱心回覆
我改過以後一樣是進不了中斷
昨天晚上我剛好也去找了版主說的教育訓練來看
希望對C18的撰寫上有幫助
仔細研究了中斷的部分
結果問題還是一樣
我後來把他改成開啟中斷優先序的功能
希望中斷程式進入點比較不會有問題
但還是進不了中斷
==================================
//宣告並安排中斷執行程式記憶體位置
#pragma code high_vector=0x08
void high_interrupt (void)
{
_asm GOTO timer1_isr _endasm
}
#pragma code

#pragma interrupt timer1_isr
==================================
RCONbits.IPEN = 1;
IPR1bits.TMR1IP = 1;
//INTCONbits.PEIE = 1; // 開啟周邊中斷功能
//INTCONbits.GIE = 1; // 開啟全域中斷控制
INTCONbits.GIEH = 1;

發表於: 2009/9/17 17:02
頂部


Re: PIC18的SPI進不了中斷的問題
#16
初級會員
初級會員


我拿了書上Timer中斷的程式做測試
結果連Timer的中斷都無法正常進入
中斷的Flag bit 也都沒有反應
可以請各位板友幫幫忙嗎?
以下是測試的程式
================================
#include     <p18f4520.h>     //納入微控制器定義檔
#include     <timers.h>         //納入計時器函式庫定義檔

// 結構位元定義
#pragma config    OSC=HS, BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF 

#define TMR1_VAL     65536-16384        // Timer1 設定為 500ms 中斷一次 

//宣告函式原型
void Init_TMR1(void);
void timer1_isr (void);

//宣告並安排中斷執行程式記憶體位置
#pragma code low_vector=0x18
void low_interrupt (void)
{
_asm GOTO timer1_isr _endasm
}
#pragma code

#pragma interruptlow timer1_isr

void timer1_isr (void)
{
    
PIR1bits.TMR1IF 0;    // 清除中斷旗標
    
WriteTimer1(TMR1_VAL);    // 當將計數器觸發次數歸零寫入預設值
    
PORTD++;                // 遞加PORTD
}

void main (void) {
    
    
PORTD 0x00;            // 將PORTD清除關閉LED
    
TRISD 0;                 // 將TRISD設為0,PORTD設定為輸出

    
Init_TMR1();            // 初始化設定Timer1函式

    
INTCONbits.PEIE 1;    // 開啟周邊中斷功能
    
INTCONbits.GIE 1;        // 開啟全域中斷控制

    
while (1);                 // 無窮迴圈
}

void Init_TMR1 (void){
    
    
OpenTimer1TIMER_INT_ON &        // 使用C18編譯器timer函式庫
                
T1_16BIT_RW &        // 初始化設定Timer1
                
T1_SOURCE_EXT &        // 並開啟TIMER1中斷功能(PIE1bits.TMR1IE=1)
                
T1_PS_1_1 &
                
T1_OSC1EN_ON &
                
T1_SYNC_EXT_ON );
    
WriteTimer1(TMR1_VAL);            // 寫入預設值    
    
PIR1bits.TMR1IF 0;            // 清除中斷旗標

}

發表於: 2009/9/16 22:36

Edited by Ryang on 2009年09月17日 10:40:35
頂部


PIC18的SPI進不了中斷的問題
#17
初級會員
初級會員


最近在學習利用SPI做dsPIC33F 與PIC18之間做資料傳輸

我參考了下載中心中有一份用兩塊dsPIC30F

一塊當MASER 一塊當SLAVE把自己模擬成EEPROM

中間利用SPI做資料的儲存與存取的範例程式

我把MASTER的程式改成dsPIC33F可用的

再把SLAVE的程式改成PIC18可用的

但在測試過程中

MASTER感覺是正常運作的

但SLAVE端都沒有收到任何資料

也不會進SPI的中斷

可否請幫忙看看程式中的中斷設定是否正確

謝謝

Attach file:


Link only for registered users

發表於: 2009/9/16 17:45
頂部


Re: Explorer16上dsPIC33F與PIC18F4450通訊問題
#18
初級會員
初級會員


感謝版友熱心回答

Explorer 16, dsPIC33F SPI及PIC18 MSSP的相關Manual

我都有去找來看過了

目前Explorer 16的版子上並無焊接好的PIC24

所以S2開關一定是固定調在PIM位置才可使用

另外J7 Jumper的確是用來選擇要對PIC18F4550
還是插在U1A上的IC PIM(我使用的是dsPIC33F)做燒錄

但實際的使用上我發現同時把兩份程式以Release模式燒錄進2顆IC

J7跳至F4550---PIC18可運作, dsPIC33F不可運作
J7跳至PIC24---PIC18可運作, dsPIC33F可運作

SPI的部分

的確我看過Manual之後

對於程式的撰寫上還是有些疑惑

我會再去研究一下網站上的dsPIC30F的範例

看能不能有更深入的瞭解

謝謝指教

發表於: 2009/9/15 11:38
頂部


Re: Explorer16上dsPIC33F與PIC18F4450通訊問題
#19
初級會員
初級會員


後來偶然間發現了

版子上的PIC18可以在Release mode燒錄後

J7 Jumper不需跳到F4550上也可獨立運作

但版子上的PIM模組即使以Release mode燒錄後

J7 Jumper一定要跳到PIC24上才可運作

=============================
但又有了新問題想要請教

由於我想讓diPIC33F當MASTER, PIC18當SLAVE

由dsPIC33F傳一個BYTE給PIC18後

PIC18把收到的BYTE處理過後再回傳給dsPIC33F

我的問題是資料的收發都是由主控端控制的

那在Slave端寫入SPIBUF時

資料會主動送給MASTER嗎?

還是一定要MASTER送一個空白的BYTE把PIC18要送的值收回來?

對於SPI同時發一個BYTE也會收進一個BYTE的原理用法不是很清楚

麻煩請指教 謝謝

發表於: 2009/9/14 23:07
頂部


Explorer16上dsPIC33F與PIC18F4450通訊問題
#20
初級會員
初級會員


Explorer16 的Manual裡有提到有USB Connectivity的功能

可利用版子上的PIC18F4550對電腦做USB的傳輸

我把版子上的J7 Jumper調到F4550對PIC18做DEMO程式的燒錄

的確可以對電腦使用USB連接做串列傳輸

所以我想進一步的在dsPIC33F與PIC18之間用SPI做資料傳輸

來達到dsPIC33F<-->(SPI)<-->PIC18F4550<-->(USB)<-->PC的傳輸

但我寫好了dsPIC33F端的程式用Release Mode燒錄後

dsPIC33F就可以不靠ICD2獨立RUN上面的程式

然後再將J7 Jumper跳至F4550時

dsPIC33F就沒動作了..........

請問這塊版子上面的這兩顆IC可以都用Release Mode燒錄後

同時運作嗎?

還是Jumper跳至哪顆IC就只能跑那顆IC的程式呢?

如果一次只能RUN一顆IC的話

這樣設計的意義好像怪怪的

請給予指教 謝謝

發表於: 2009/9/14 17:45
頂部



« 1 (2) 3 »



:::

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

教育訓練中心

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