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

論壇索引


Board index » All Posts (b9015038)




Re: SAME54 WDT範例 - Clock顯示問題(Harmony)
#41
資深會員
資深會員


感謝協助

原來Content Manager中,
Remote Packages只負責確認此Package是否有下載
Local Packages中才是確認目前的版本

我剛才更新過後再看了一次的確是有修正了

再看了一下旁邊的Application Browser,似乎想要使用裡面的範例的話,應該要從這裡選擇,再按Copy Selected,我以前都直接從MHC目錄下開啟...


要從Local Packages中更新版本是沒什麼問題,但這個好像沒有跳出提醒,我們平常也不會沒事跑進去看,這樣要是有什麼更新就無法即時得知,會比較麻煩

希望以後資料庫不要再出事啦,多排程備份一下吧,這是十多年來大家技術交流的成果,消失了實在很可惜

發表於: 2021/5/4 11:07
頂部


SAME54 Bootloader範例請教
#42
資深會員
資深會員


最近看到Harmony v3的更新中加了些範例,其中Bootloadrer新增了ethernet、I2C、SD Card

Bootloader Library Help的Introduction中可看到更新檔有Binary File與Normalized Hex File兩種

關於Binary File的部份,我參考SD Card範例,看到流程大致上是從檔案中每次讀取512Bytes(1個Page),然後呼叫NVMCTRL_PageWrite來寫入整個Page

請問有Binary File的相關說明嗎?包含:(因MPLAB X compile出來預設只有hex檔)
.如何產生Binary File?
.是否有bin檔(Binary File)格式的說明?

發表於: 2021/5/3 14:08
頂部


Re: SAME54 WDT範例 - Clock顯示問題(Harmony)
#43
資深會員
資深會員


最近又有空再試了一次,
MPLAB X 5.45
XC32 2.50
進Harmony 3 Content Manager把所有東西都按了下載之後再進去看

開harmony的Clock Configuraton,WDT的值是32768,旁邊的OSCULP1K是1024

似乎和上一次看到的圖一樣,沒有什麼改變

請問怎麼確認 CSP 版本?
你們那裡開起來已經修正了嗎?


-----------------------------
另外遇到一個問題是MHC開起來的時候會出錯,錯誤訊息:
Unable to launch Harmony tool suite for this configuration
問題及解法參考
簡單說就是自己到GitHub上下載MHC項目,然後手動覆蓋至Harmony的下載目錄中

這個問題與解法跟大家分享一下

這表示Local端的內容與GitHub上的版本並沒有確實同步,我現在開MHC時會出現有新版本要我下載,但用MPLAB X看plugin卻沒有新版本(仍顯示Version: 3.6.4),Check for update無內容,但GitHub的Release Note已到v3.7.1



隨便提一下,
上次發的圖這麼快就失效了嗎,你們的新網頁除了舊資料消失,新資料也會消失,Google搜尋問題很多都出現無效的連結,找學生來打工做網頁應該都不至於弄成這樣吧...

Attach file:



jpg  MHC版本問題.jpg (107.53 KB)
4537_608f72c93f45b.jpg 1259X1007 px

發表於: 2021/5/3 12:41
頂部


XC8 - 請問C99模式下怎麼做數值轉字串?
#44
資深會員
資深會員


最近用MPLAB X, MCC, XC8開始做新的project,
剛測試時發現裡面沒有itoa、ultoa之類的函數,查了一下好像是因為C99下不能用?
(目前的XC8中stdlib.h中沒有相關的header)
但XC8裝完預設就是用C99,相關的字串、數字轉換應該要在哪找?


另外教學區的XC8T v1.0中,「XC8 函數庫」(p.132 - p.133)中有提到一個Link in C Library的選項,但現在已經沒有了

這個教學用的版本是1.2.1,現在都已經是2.3了,也過期的太久,版大該更新一下了吧?

發表於: 2020/12/21 12:47
頂部


請問XC8的區域變數可以開到多大?
#45
資深會員
資深會員


我找了一下,有篇相關的討論

裡面有人好像開到128過,這看起來比C18大滿多的

請問免費版的XC8在function中用的local variable能到多大?有資料可以查嗎?

發表於: 2020/12/17 11:28
頂部


Re: 請問PIC18F由MCC所產生的SPI.h中的SPI1_DEFAULT在哪定義?
#46
資深會員
資深會員


是說SPI1_DEFAULT的位置?
在mcc_generated_files目錄裡的spi1.h / spi2.h裡吧


/* SPI interfaces */
typedef enum {
SPI1_DEFAULT
} spi1_modes_t;


使用時就:
SPI1_Open(SPI1_DEFAULT);

發表於: 2020/12/17 11:20
頂部


Re: 使用MCC產生的callback問題
#47
資深會員
資深會員


感謝版大還去找了範例來發給我...

不過callback的操作是沒什麼問題啦,我主要的問題是,
在callback裡的操作,限制至少是和在ISR內操作是一樣的

即不應轉跳,不應執行秏時的工作
以前的建議甚至是,進中斷後,做完必要的接收、狀態設定後就儘快離開,以免影響中斷的觸發

但在MCC裡一點這種提示都沒有,MCC中幾乎所有的範例都直接在callback裡執行動作,但做的都是些簡單的點LED功能(版大給的範例看起來也是改個IO狀態就離開了)
,如果這樣,那也不值得用callback做兩次轉跳,只為了不修改到MCC產生的code

以uart為例,要是在接收的callback中,直接把parser加在後面,
或是在Timer中,把一些定時執行的routine放進去,可能就會因秏時過長而影響中斷?

XC8是會把isr的callback轉成inline嗎,不然怎麼敢做這麼多jump...?

發表於: 2020/12/9 16:05
頂部


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


以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
頂部


SAME54 RTC範例問題
#49
資深會員
資深會員


我想測試RTC的日曆功能,使用範例:
HarmonyV3\csp\apps\rtc\rtc_alarm\firmware\sam_e54_xpro.X

有幾個問題:

1. sys_time.tm_wday應該不是必須的,設定它的原因是?

2. sys_time.tm_year在範例說明裡寫since 1900,但RTC_RTCCTimeSet裡面是
((TM_STRUCT_REFERENCE_YEAR initialTime->tm_year) - REFERENCE_YEAR)


2.1 請說明一下這個計算方式(閏年與1900參考值的關係),為什麼要設定leap year?,Spec中也沒有看到與1900有相關(見附圖spec部份紅框)

2.2 RTC_RTCCTimeSet及讀取應該要隱藏這種莫名奇妙的計算,讓使用者直接輸入想要的年份,struct tm裡的每一個欄位都是int,也沒有什麼大小不夠用的問題。內部想用UNIX time沒問題,但應該讓使用者選擇自己想要的輸入方式。想要2018年,就輸入2018,還要自己手算的話弄成API幹嘛?

3. 因為我想用RTC當日曆,請問可以用它來做UTC與Local time的轉換嗎?即裡面跑UTC時間,要取出用時,可轉換為想要的local time。這種基本的功能我覺得應該要包在API裡面...

4. 可以說明一下Tamper的作用嗎?我看說明覺得它好像是接受外部異常觸發,然後儲存異常時間點(或一些額外資訊?)用的,我這樣理解對嗎?

5. 隨便抱怨一下,這個範例竟然在while(1)裡面直接print取出的時間,我一啟動之後,terminal程式就爆了,寫出這種範例的人是和開發者有仇嗎?



//15-01-2018 12:00:00 Monday
    
sys_time.tm_hour 12;      /* hour [0,23] */
    
sys_time.tm_sec 00;       /* seconds [0,61] */
    
sys_time.tm_min 00;       /* minutes [0,59] */
    
sys_time.tm_mon 0;        /* month of year [0,11] */
    
sys_time.tm_year 118;     /* years since 1900 */
    
sys_time.tm_mday 15;      /* day of month [1,31] */
    
sys_time.tm_wday 1;       /* day of week [0,6] (Sunday = 0) */
                                /* tm_yday - day of year [0,365] */
                                /* tm_isdst - daylight savings flag */

...
...

    
printf("nr---------------------------------------------------------");
    
printf("nr                    RTC Demo                 ");
    
printf("nr---------------------------------------------------------nr");

    
RTC_RTCCCallbackRegister(RTC_Callback, (uintptr_tNULL);

    
RTC_RTCCTimeSet(&sys_time);

Attach file:



jpg  (0.00 KB)


jpg  (0.00 KB)


jpg  (0.00 KB)


jpg  (0.00 KB)


發表於: 2020/7/7 16:20
頂部


SAME54 WDT範例 - Clock顯示問題(Harmony)
#50
資深會員
資深會員


我這邊在測試SAM E54 XPLAINED PRO的範例時,開harmony的Clock Configuraton,發現WDT的值是32768,但旁邊的OSCULP1K是1024(參考附圖紅框)

程式註解寫4秒後重開,看Config欄位的設定值應該是1024沒錯


看起來是Clock的圖畫錯了?


範例:
HarmonyV3\csp\apps\wdt\wdt_timeout\firmware

MPLAB X 5.40
Harmony Configurator 3: Version: 3.5.0
XC32 2.41

Attach file:



jpg  (0.00 KB)


jpg  (0.00 KB)


jpg  (0.00 KB)


發表於: 2020/7/3 12:11
頂部



« 1 2 3 4 (5) 6 7 8 ... 18 »



:::

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

教育訓練中心

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