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

論壇索引


Board index » All Posts (test838)




Re: 無法 從 IDLE 或 SLEEP中喚醒..救命啊~~
#1
中級會員
中級會員


謝謝
這就是複製貼上的缺點
拿以前的code來用
連有這個參數都不曉得
完全沒印象,因為沒用過 sleep


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

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


無法 從 IDLE 或 SLEEP中喚醒..救命啊~~
#2
中級會員
中級會員


我使用的 chip 是 pic24j256gb106

我要作省電功能
我打算用 interrupt 喚醒 Idle/Sleep
但只要一下 Sleep 或 Idle 後 Interrupt 連執行都不能執行
故就不用談後續的喚醒

開了個新專案, 縮減code 如以下
我缺少什麼步驟嗎?

void Tick1Initvoid )
{
    
// Timer1 的中斷優先權設為 7,至少要比 cpu 中斷(0)高, 才可以 wake up from idle mode
    
_T1IP 7;  

    
TMR1 0;
    
PR1 TIMER_PERIOD;
    
T1CON TIMER_ON STOP_TIMER_IN_IDLE_MODE TIMER_SOURCE_INTERNAL |
            
GATED_TIME_DISABLED TIMER_16BIT_MODE TIMER_PRESCALER;

    
_T1IF 0;              //Clear flag
    
_T1IE 1;              //Enable interrupt
    
T1CONbits.TON 1;              //Run timer
    
}

int main()
{
    
volatile int ij;
    
    
// Disable Watch Dog Timer
    
RCONbits.SWDTEN 0;

    
Tick1Init(); // timer 1
   
    
Idle();  <-- 到這行後程式就停止執行interrupt也沒反應
    
//Sleep();
    
    
0;
    while(
1)
    {
             
j++;
                         
printf("j=%i"j);
                          
Delay_MS(1000);
    }    

}




void __attribute__((interruptshadowauto_psv)) _T1Interrupt(void)
{
    
// Clear flag
    
_T1IF 0;
    
tick++;
    
    
// 若是在 sleep mode 中, 檢查是否有按鍵, 若有喚醒
    
if (_IDLE && Key1Pressed)
    {
        
_IDLE 0// <--喚醒
    
}
    
}

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

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


clock 切換失敗求救~~~ >"<
#3
中級會員
中級會員


大家好
我使用PIC24FJ256GB106, 為了省電的關係
我必須要進 sleep mode 後再將 osc 切到 FNOSC_FRCPLL
然後使用者按任何鍵後切回 FNOSC_PRIPLL

但是我遇到一個問題, 那就是我切到 FNOSC_FRCPLL 成功後, 想要再切回來 FNOSC_PRIPLL, 程式就會卡在底下紅色那行程式碼上, 請問我少作了什麼動作嗎


main()
{
........
......
SwitchClock(GET_OSC_SEL_BITS(FNOSC_FRC)); // 可以切換成功r
iOSCOSCCON// 偵測, 讀取 OSCCON, debug 用 only

_TUN 0;
SwitchClock(GET_OSC_SEL_BITS(FNOSC_PRIPLL)); //  切不回來, 卡在下方紅色字那裡

}
//---------------------------------------------------------------------------
void SwitchClock(unsigned char u8_source)
{
    
// Create a union that mirrors the OSCCON structure
    // with all its bit names but is also byte-accessable.
    
OSCCONBITS OSCCONBITS_copy;
    
    
// Switch clock to use new choice specified by u8_choice.
    // Valid values are 0-7.
    
    // 1. Disable interrupts per 7.11.2 FRM rev B under
    //    "A recommended code sequence for a clock switch
    //     includes the following:" heading.
    //    Assumes there are no priority 7 interrupts enabled.
    
asm("DISI #0x3FFF"); // Disable interrupts for a long time
    // 2. Switch to the PLL. Use compiler built-ins to unlock
    //    clock switch registers. See 7.11.1 of the FRM rev B.
    
OSCCONBITS_copy OSCCONbits;      // Copy OSCCON bits
    
OSCCONBITS_copy.NOSC u8_source;  // Select new clock source
    
OSCCONBITS_copy.OSWEN 1;         // Request clock switch
    // First write high byte, containing new clock source NOSC
    
__builtin_write_OSCCONH(BITS2BYTEH(OSCCONBITS_copy));
    
// Then write low byte, requesting clock switch with OSWEN
    
__builtin_write_OSCCONL(BITS2BYTEL(OSCCONBITS_copy));
    
asm("DISI #0");     // Re-enable them at the next instruction

    //#define SIM
    #ifndef SIM
    // 3. Wait for switch to complete.
    //    Note that oscillator switching is not supported by
    //    the simulator, causing the statements below to
    //    run forever.
    
    
while (_OSWEN == 1);

    
// 4. Wait for the PLL to lock if using the PLL.
    
if ( (u8_source == GET_OSC_SEL_BITS(FNOSC_FRCPLL)) ||
      (
u8_source == GET_OSC_SEL_BITS(FNOSC_PRIPLL)) )
    while (
_LOCK == 0);
    
    
#endif

}

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

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


Re: 快瘋了,debug問題,單步一直進interrupt
#4
中級會員
中級會員


參照:

calvin 寫道:
你好 ,

請在選擇MPLAB ICD2 為 Debugger 後, 在主功能表中使用 Debugger -> Setting - Freeze 來選擇在 CPU 被 HALT 時要被停止的周邊就好了 :)

Regards,


這不對啊,我debug不想進 interrupt 而已,並不是要停止他
他一停止我所有功能都要靠它咧...


有解嗎?

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

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


Re: 請問IOLock 可以 lock 但卻不能 Unlock 原因為何?
#5
中級會員
中級會員


沒有人知道?

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

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


請問IOLock 可以 lock 但卻不能 Unlock 原因為何?
#6
中級會員
中級會員


請問IOLock 可以 lock 但卻不能 Unlock 原因為何?

說明如下:

#include "pps.h"

PPSLock; <-- 此時 OSCCON => 01100010
PPSUnLock; <-- 此時 OSCCON => 01100010 , 理應 00100010

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

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


快瘋了,debug問題,單步一直進interrupt
#7
中級會員
中級會員


大家好, 我使用 MPLab + ICD2 為環境 開發我的程式
因為我有一個 1ms 中斷一次 的 Timer
當我要單步中斷一步一步執行時,它就拼命跑 _T4Interrupt , 請問要怎麼設才會讓它不一直跑這個中斷呢?


註: 要 debug 需要中斷功能, 一定不能停掉它

void __attribute__((interrupt, shadow, auto_psv)) _T4Interrupt(void)
{
// Clear flag
IFS1bits.T4IF = 0;
tick++;
}

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

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


PIC24FStarter kit 一插到電腦 MPLab IDE 3.0 就當機
#8
中級會員
中級會員


你好

本來用的好好的, 但昨天開始我的 PIC24FStarter kit 一插到電腦 MPLab IDE 8.3 就當機 (debugger USB port)
但一拔掉 MPLab 馬上變正常. 看似 MPLab IDE 會因 PIC24FStarter kit 而當掉, 以為是 MPLab IDE 有 bug
但換另一片 PIC24FStarter kit 則又正常, 燒錄/debug 均正常
有人有遇到這樣問題嗎? 要怎麼解決 (最好是我可以自行解決)


若不能解決, 我是在你們的研討會上買的, 維修要去哪裡處理?


ps: mplab 當機是畫面一片白,沒有反應

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

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


uart 收資料會有奇怪的重複現象
#9
中級會員
中級會員


我的 MCU 是 PIC24F
我從 HyperTerminal 送 0123456789 到 MCU
用 Starter Kits debug
一步一步執行, 收到的資料是 0123455555555555
也就是前面收還正常,但後就不行了

若是大量收再中斷則會正常,例如收10位元組再中斷 0123456789 會全收到, 但再下一次則會收到 999999999
何解?

用PC Uart 大量傳 0123...abc....xyz 則也會只收到一半後, 面一直重複某字元 例如 0123...abc...ggggggggggggggg

請問這是什麼原因?

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

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


Re: UART2 資料進不來
#10
中級會員
中級會員


經過綪確的測試是底下這段要在 main file , 沒人知道為嗎? 中斷處理程式亂搬到任何 file 皆可
U2Brg = (((GetSystemClock()/2)+(BRG_DIV2/2*BAUDRATE2))/BRG_DIV2/BAUDRATE2-1);
    
    
U2MODEvalue UART_EN UART_IDLE_CON 
                    
UART_DIS_WAKE  UART_DIS_LOOPBACK |
                    
UART_DIS_ABAUD UART_NO_PAR_8BIT |
            
UART_1STOPBIT;

    
U2STAvalue UART_INT_TX_BUF_EMPTY |
                
UART_IrDA_POL_INV_ZERO UART_SYNC_BREAK_DISABLED |
                
UART_TX_DISABLE UART_INT_RX_CHAR |
                
UART_ADR_DETECT_DIS |     UART_RX_OVERRUN_CLEAR;
    
    
OpenUART2(U2MODEvalueU2STAvalueU2Brg);

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

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



(1) 2 3 4 ... 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... ]

教育訓練中心

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