• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::

論壇索引


Board index » All Posts




使用MCC產生的callback問題
資深會員
資深會員


以Timer為例,它提供了一個callback:
TMR1_SetInterruptHandler(TMR1_1sInterruptHandler);

讓我們可以從
interrupt_manager.c --> tmr1.c --> 自己的.c
主要的好處應該是可以不用修改interrupt_manager.c及tmr1.c就取得中斷

在範例裡面也都直接在callback裡執行流程(但都是些點LED的動作)
但callback function(本例為TMR1_1sInterruptHandler)實際上還是在ISR中,並沒有轉移控制權,只是call了函式跳出來

以前在寫的時候,一直要注意,不要在ISR裡面jump,也不要在裡面做秏時長的工作,但MCC的範例裡完全沒有這種警告,感覺好像你想在callback裡做什麼都行

我今天是看到一個Warning:
non-reentrant function "_XXX_Read" appears in multiple call graphs and has been duplicated by the compiler

即function在ISR即main中都被被執行,才想到我在Timer的callback裡呼叫了函式

你們對callback內進行的操作有什麼額外的說明嗎?

在MCC裡註冊callback,實際上會跳兩次,先到tmr1.c,再到我們的c檔案,這種方式在XC8裡有什麼特殊處理讓它執行不會出問題嗎?


還有MCC產生的code自己就產生了一堆Warning,什麼xxx is never called我就不說了,其它
比如tmr1.c
void TMR1_WriteTimer(uint16_t timerVal)
{
    if (
T1CONbits.nT1SYNC == 1)
    {
        
// Stop the Timer by writing to TMRxON bit
        
T1CONbits.TMR1ON 0;

        
// Write to the Timer1 register
        
TMR1H = (timerVal >> 8);
        
TMR1L timerVal;

        
// Start the Timer after writing to the register
        
T1CONbits.TMR1ON =1;
    }
    else
    {
        
// Write to the Timer1 register
        
TMR1H = (timerVal >> 8);
        
TMR1L timerVal;
    }
}


Warning:
mcc_generated_files/tmr1.c:129:17warningimplicit conversion loses integer precision'uint16_t' (aka 'unsigned short'to 'unsigned char' [-Wconversion]
        
TMR1L timerVal;
              ~ ^~~~~~~~


spi1.c中:
void SPI1_ExchangeBlock(void *blocksize_t blockSize)
{
    
uint8_t *data block;
    while(
blockSize--)
    {
        
SSP1BUF = *data;
        while(!
PIR1bits.SSP1IF);
        
PIR1bits.SSP1IF 0;
        *
data++ = SSP1BUF;
    }
}


Warning:
mcc_generated_files/spi1.c:108:: warning: (1498pointer (SPI1_ExchangeBlock@datain expression may have no targets


自己工具產生的code應該稍微用點心,把這種訊息給處理了吧,

發表於: 2020/12/8 17:13
頂部


Re: 用PICkit3燒錄18F87K22時發生異常
新會員
新會員


建議檢查一下PGD PGC線路是否異常,包含MCU到燒錄器的所有路徑.

發表於: 2020/12/8 15:15
頂部


Re: enable clock switch會卡在迴圈中
中級會員
中級會員


Ryang大好

我是用dspic33EP64GS502
是用ICD3 搭配硬體跑debug mode
振盪器是8MHz 所以想用PLL提高到40MHz
若沒開PLL 觀察IO腳的output訊號是正常的(代表程式正常作動)
若開PLL 和clock switch 觀察output沒輸出訊號
停止時顯示卡在while (oscconbits.oswen = 0) 迴圈中

發表於: 2020/12/8 13:39
頂部


用PICkit3燒錄18F87K22時發生異常
新會員
新會員


各位先進、前輩日安:
我使用PICkit3燒錄18F87K22時,不管是由目標板供電還是PICkit3供電,燒錄都失敗且出現以下訊息

Programming...
The following memory regions failed to program correctly:
Program Memory
Address: 00000000 Expected Value: 000000ee Received Value: 00000000
Programming failed

每次錯誤的address都一樣是00000000,但是erase跟read卻能成功......
MCU工作在5V,ENVREG接腳有連接至Vdd,Vddcore接腳亦有串接一個10uF的鉭質電容對地
MCLR接腳有接一組10k跟0.1uF的RC做上電延遲,過往其他型號這樣接都能夠正常燒錄,也有嘗試將這組RC去掉,但燒錄還是失敗......
請問是什麼問題會導致這狀況呢?

發表於: 2020/12/8 11:26
頂部


Re: 若要加入4個"觸控"按鍵,請問要買APP046 mTouch實驗板 或 APP-ESS18-2 實驗板 或 APP001 mTouch之 實驗板呢?
高級會員
高級會員


Dear 版主,
mTouch 中文實驗使用手冊及範例程式, 迄12/7的17:00,還沒收到您Maile過來的資料喔!!!
我的E-mail是:hjchen@mail.hdut.edu.tw

再次感謝!!!
陳 鴻 進

發表於: 2020/12/7 17:01
頂部


Re: 請問dsp33ck64mp502這個ad的使用設定
初級會員
初級會員


修正觸發源就可以了,已經處理好了謝謝

發表於: 2020/12/7 16:26
頂部


Re: 請問dsp33ck64mp502的ad使用方式
初級會員
初級會員


已經處理好了謝謝

發表於: 2020/12/7 16:24
頂部


Re: 若要加入4個"觸控"按鍵,請問要買APP046 mTouch實驗板 或 APP-ESS18-2 實驗板 或 APP001 mTouch之 實驗板呢?
版主
版主


mTouch 中文實驗使用手冊及範例程式已經透過 e-mail 寄過去了。

發表於: 2020/12/7 14:47
頂部


Re: enable clock switch會卡在迴圈中
版主
版主


1. 請問是使用哪一顆 PIC ?

2. 是使用軟體模擬嗎? 在模擬下這些震盪穩定位元是不會變成 1 的,必須使用硬體的開發工具來驗證。

發表於: 2020/12/7 14:33
頂部


Re: 請問dsp33ck64mp502這個ad的使用設定
管理員
管理員


在Datasheet ADC章節P.299內部提到ADC的Trigger 方式有很多種
• Multiple Conversion Trigger Options for each Core, including:
- PWM triggers from CPU cores
- MCCP/SCCP modules triggers
- CLC modules triggers
- External pin trigger event (ADTRG31)
- Software trigger

上述的程式是使用,Timer當觸發源進行觸發,ADC相對不會動作。

發表於: 2020/12/7 14:06
頂部



« 1 ... 216 217 218 (219) 220 221 222 ... 7525 »



:::

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

教育訓練中心

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