色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【御芯微UCM108E開發板試用體驗】UCM108E二次開發-外部中斷&&定時器&&PWM使用

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-24 17:03 ? 次閱讀

本文來源電子發燒友社區,作者:許鵬虎, 帖子地址:https://bbs.elecfans.com/jishu_2287620_1_1.html

UCM108E二次開發-外部中斷&&定時器&&PWM使用

這節內容主要是介紹UCM108E的片內外設使用情況,同樣也是用官方提供的二次開發demo來做進一步的開發。

GPIO外部中斷

UC8188的GPIO使用起來比較簡單,官方也提供了比較全面的函數庫。GPIO控制器可以驅動或者獲取信號/數據。通過相應的寄存器,可以定義I/O的功能、方向、狀態以及中斷。

GPIO的主要特點

??-?受控I/O個數微29
??-?I/O輸入/輸出可配
??-?輸入/輸出狀態:上拉、浮空
??-?所有I/O均可作為中斷源,觸發方式可配:低電平、高電平、上升沿、下降沿
??-?I/O功能多重復用

同時也需要指出,GPIO的功能并沒有類似于STM32類型的MCU多,比如IO都不支持下拉功能,所以在進行硬件設計的時候,需要詳細參考GPIO特性,在硬件設計上面不足或者規避這些不足。

編寫示例函數

操作GPIO為外部中斷觸發模式,主要是由以下幾個步驟:

  1. 將IO設置為輸入模式-->設置中斷觸發類型-->使能中斷-->使能全局中斷
static void trigger_gpio_init(void)
{
    gpio_set_pin_direction(UC_GPIO, TRIGGER_GPS_PPS_GPIO, GPIO_DIR_IN);
    gpio_set_irq_type(UC_GPIO, TRIGGER_GPS_PPS_GPIO, GPIO_IT_RISE_EDGE);
    gpio_set_irq_en(UC_GPIO, TRIGGER_GPS_PPS_GPIO, 1);
    gpio_int_enable();//enable gpio interrupt
    printf("trigger gpio pin init done.rn");
}
  1. 編寫中斷服務函數-->獲取中斷狀態-->清除中斷標記位
/*
 * [url=home.php?mod=space&uid=2666770]@Brief[/url]   GPIO interrupt service function
 * [url=home.php?mod=space&uid=3142012]@param[/url] 	None
 * @retval  None
 */
void gpio_handler(void)
{
    uint32_t pin, status;

    status = gpio_get_irq_status(UC_GPIO);  // get gpip irq status
    gpio_int_clear_pending();               // clear gpio interrupt pending

    for (pin = GPIO_PIN_0; pin <= GPIO_PIN_29; pin++) {
        if (status & (1 << pin)) {
            printf("GPIO %d INTERRPUTrn", pin);
        }
    }
}

注意:

  1. 中斷標記位一定要在中斷服務函數里面清除,不然下次無法繼續觸發中斷
  2. 中斷服務函數的入口是gpio_handler,在UC8188的單獨示例中,中斷服務函數是ISR_GPIO
  3. 在本示例工程的libraries/HAL_Drivers/drv_gpio.c中也有gpio_handler需要將此先屏蔽,然后自己實現這個中斷服務函數

燒錄運行

將上述代碼編譯完成后,燒錄到開發板運行,然后手動觸發GPIO25,可以看到中斷打印

Time: 2022/6/18 19:53:38.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
Time: 2022/6/18 19:53:39.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
Time: 2022/6/18 19:53:40.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
Time: 2022/6/18 19:53:41.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
GPIO 25 INTERRPUT
Time: 2022/6/18 19:53:42.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
GPIO 25 INTERRPUT
Time: 2022/6/18 19:53:43.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
GPIO 25 INTERRPUT
Time: 2022/6/18 19:53:44.00
POS: ST 10, tLon 1.899968, tLat 0.596802, fAlt: 38.554977
GPIO 25 INTERRPUT

定時器

UC8188有兩個獨立的定時器,設計的也比較簡單。

主要特點

  • 32位加計數器
  • 3位可編程(可以實時修改)預分頻器,定時器時鐘=系統時鐘/(預分頻系數+1)
  • 兩種中斷或事件類型可選擇,即計數器溢出和比較結果相等觸發

編寫示例函數

我主要是用定時器來做一個精確計時,所以只用了定時中斷功能。在確定定時時間之前,需要確定系統主頻,分頻系數等關鍵指標。通過研讀代碼我們可知在啟動函數那里,配置了系統主頻

addi   x11, x0, 70  //131.072Mhz-->0xc80000, 115200 for sim
  jal  uart_set_cfg
  1. 配置分頻系數和計數值-->工作在計數模式-->使能計數溢出中斷-->使能總中斷
cfg.pre = 7;
	cfg.cnt = 0xffffffffU - ((SYSTEM_CLK>>8)/(cfg.pre+1))*1;// 1/256 S
	cfg.cmp = 0;//It must be 0 in this mode.
	timer_init(UC_TIMER1, &cfg);
	timer_enable(UC_TIMER1);
	timer_int_enable(UC_TIMER1, TIMER_IT_OVF);
	int_enable();
  1. 編寫中斷服務函數-->清除中斷-->重新裝入計數值-->做自己的業務
static int cnt = 0;

	timer_int_clear_pending(UC_TIMER1, TIMER_IT_OVF);
	// 這里和上面的初始化是一樣的,簡化了一下算法
	timer_set_count(UC_TIMER1, 0xffffffffU - (SYSTEM_CLK>>11));//1S]
    cnt++;
    if(cnt%0xff == 0){
        printf("timer1 overflow interrupt!!!rn");
    }

燒錄運行

編譯上述代碼,在串口工具中應該會每隔1s打印一下

timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!
timer1 overflow interrupt!!!

PWM

PWM外設相對來說也是比較簡單。

特點

  • 四路獨立輸出PWM
  • 可配置周期和占空比

編寫示例函數

我的需求是,可以調節一個燈的亮度,并且可以周期的控制燈的閃爍邏輯。

  1. 確定PWM外接的GPIO管腳,使能對應的PWM--> 設置周期-->設置占空比
pwm_enable(UC_PWM3);
    pwm_set_period(UC_PWM3, 1000);
    pwm_set_duty(UC_PWM3, 300);
  1. 周期閃爍
while(1)
    {
        printf("cnt : %drn", cnt++);
        pwm_set_duty(UC_PWM3, 30);  // led on light:3%
        delay_ms(500);
        pwm_set_duty(UC_PWM3, 0);  // led off
        delay_ms(500);
    }

注意:這里我嘗試使用pwm_enablepwm_disable來控制燈的亮滅,但是發現pwm_disable后GPIO默認是高電平,不符合我的設計需求,故用占空比為0表示燈滅,由于PWM外設過于簡單,在做硬件設計的時候需要注意這里。

燒錄運行

將上述代碼燒錄到開發板,可以看到1s一次打印cnt值,同時LED燈也在閃爍,改變duty可以改變led亮度

pwm test
cnt : 0
cnt : 1
cnt : 2
cnt : 3
cnt : 4
cnt : 5

總結

UC8188的外設使用起來很簡單,也很實用。但是在做相關硬件設計時,需要注意。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 御芯微
    +關注

    關注

    4

    文章

    57

    瀏覽量

    3324
  • 開發板試用
    +關注

    關注

    3

    文章

    301

    瀏覽量

    2109
  • UCM108E
    +關注

    關注

    0

    文章

    13

    瀏覽量

    152
收藏 人收藏

    評論

    相關推薦

    如何判斷產品需不需要做AT&amp;amp;amp;T認證?AT&amp;amp;amp;T測試內容和要求分享

    隨著經濟全球化的發展,國內越來越多產品廠商選擇將自家產品出口到北美市場,而這時候各位廠商都會面臨產品需不需要做AT&amp;T的問題。今天英利檢測針對這一問題整理了一些關于AT&amp;T認證中
    的頭像 發表于 12-23 17:46 ?127次閱讀
    如何判斷產品需不需要做AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T認證?AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T測試內容和要求分享

    北美運營商AT&amp;amp;amp;T認證中的VoLTE測試項

    北美運營商AT&amp;T的認證測試內容涵蓋了多個方面,以確保設備和服務的質量、兼容性以及用戶體驗。在AT&amp;T的認證測試中,VoLTE(VoiceoverLTE)測試項是一個重要的組成部分
    的頭像 發表于 12-06 16:52 ?156次閱讀
    北美運營商AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T認證中的VoLTE測試項

    能力再次提升! 迅為RK3588/RK3568開發板&amp;amp;amp;核心新增定制分區鏡像

    能力再次提升! 迅為RK3588/RK3568開發板&amp;核心新增定制分區鏡像
    的頭像 發表于 11-06 15:11 ?530次閱讀
    能力再次提升! 迅為RK3588/RK3568<b class='flag-5'>開發板</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;核心<b class='flag-5'>板</b>新增定制分區鏡像

    迅為itop-3568開發板AMP雙系統使用手冊之燒寫AMP鏡像

    迅為itop-3568開發板AMP雙系統使用手冊之燒寫AMP鏡像
    的頭像 發表于 11-04 15:00 ?502次閱讀
    迅為itop-3568<b class='flag-5'>開發板</b><b class='flag-5'>AMP</b>雙系統使用手冊之燒寫<b class='flag-5'>AMP</b>鏡像

    北美運營商AT&amp;amp;amp;T認證的費用受哪些因素影響

    申請北美運營商AT&amp;T認證的價格因多種因素而異,包括產品類型、認證范圍、測試難度等。一般來說,申請AT&amp;T認證的費用可能相對較高,因為AT&amp;T作為北美地區的主要電信運營商,其
    的頭像 發表于 10-16 17:10 ?227次閱讀
    北美運營商AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T認證的費用受哪些因素影響

    onsemi LV/MV MOSFET 產品介紹 &amp;amp;amp; 行業應用

    01直播介紹直播時間2024/10/281430直播內容1.onsemiLV/MVMOSFET產品優勢&amp;市場地位。2.onsemiLV/MVMOSFETRoadmap。3.onsemiT10
    的頭像 發表于 10-13 08:06 ?419次閱讀
    onsemi LV/MV MOSFET 產品介紹 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行業應用

    OC7201C資料(PCB &amp;amp; 原理圖)

    電子發燒友網站提供《OC7201C資料(PCB &amp; 原理圖).zip》資料免費下載
    發表于 07-18 16:19 ?1次下載

    FS201資料(pcb &amp;amp; DEMO &amp;amp; 原理圖)

    電子發燒友網站提供《FS201資料(pcb &amp; DEMO &amp; 原理圖).zip》資料免費下載
    發表于 07-16 11:24 ?0次下載

    北美運營商AT&amp;amp;amp;T認證入庫產品范圍名單相關

    AT&amp;T作為全球領先的通信服務運營商之一,通過AT&amp;T認證不僅是對產品質量的認可,更是產品打開北美市場大門的重要憑證。然而,或許您還不清楚AT&amp;T認證入庫的產品范圍,接下來
    的頭像 發表于 06-28 16:58 ?463次閱讀
    北美運營商AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T認證入庫產品范圍名單相關

    解讀北美運營商,AT&amp;amp;amp;T的認證分類與認證內容分享

    在數字化日益深入的今天,通信技術的穩定與安全對于個人、企業乃至整個國家都至關重要。作為北美通信領域的領軍者,AT&amp;T一直致力于為用戶提供高效、可靠的通信服務。而在這背后,AT&amp;T
    的頭像 發表于 06-05 17:27 ?624次閱讀
    解讀北美運營商,AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T的認證分類與認證內容分享

    RK3568開發板支持AMP雙系統

    RK3568開發板支持AMP雙系統
    的頭像 發表于 06-04 15:33 ?746次閱讀
    RK3568<b class='flag-5'>開發板</b>支持<b class='flag-5'>AMP</b>雙系統

    安富利帶你揭秘IP&amp;amp;E元器件的賦能之路

    IP&amp;E,是Interconnect(互連)、Passive(無源)和Electromechanical(機電)的縮寫,代表著電子元器件中最為基礎和重要的分支之一。
    的頭像 發表于 03-26 18:18 ?1532次閱讀

    Open RAN的未來及其對AT&amp;amp;T的意義

    3月14日消息,在“Connected America 2024”會議上,AT&amp;T高級副總裁兼網絡首席技術官Yigal Elbaz討論了Open RAN 的未來及其對AT&amp;T的意義。
    的頭像 發表于 03-14 14:40 ?759次閱讀

    【電磁兼容技術文檔分享】頻譜儀應用案例&amp;amp;amp;簡易探頭的制作

    【電磁兼容技術文檔分享】頻譜儀應用案例&amp;簡易探頭的制作
    的頭像 發表于 02-19 13:20 ?1004次閱讀
    【電磁兼容技術文檔分享】頻譜儀應用案例&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;簡易探頭的制作

    RK3568--基于AMP的多通道AD采集開發

    RK3568--基于AMP的多通道AD采集開發
    的頭像 發表于 01-19 10:03 ?1006次閱讀
    RK3568--基于<b class='flag-5'>AMP</b>的多通道AD采集<b class='flag-5'>開發</b>案
    主站蜘蛛池模板: 伊人网综合网| 精品久久久久久久99热| 国产成人无码视频一区二区三区 | 777久久人妻少妇嫩草AV蜜桃| 国产精品18久久久久久欧美| 年轻漂亮的妺妺中文字幕版| 亚洲精品国产AV成人毛片| AV亚洲精品少妇毛片无码| 久久 这里只精品 免费| 亚洲精品无码一区二区三区四虎| 国产精品久久人妻无码网站一区无| 日本超A大片在线观看| 22eee在线播放成人免费视频| 任你躁精品一区二区三区| 国产免费怕怕免费视频观看| 日韩AV爽爽爽久久久久久| HEYZO精品无码一区二区三区| 久欠热视频精品首页| 伊人久久国产精品| 狠狠色综合7777久夜色撩人| 无人区免费一二三四乱码| 丰满少妇被猛烈进出69影院 | 欧美freesex黑人又粗又| 2021自产拍在线观看视频| 色偷偷男人的天堂a v| 处破女免费播放| 日日摸夜夜嗷嗷叫日日拍| 古装性艳史电影在线看| 色偷偷男人的天堂a v| 九九热在线视频| 国产51麻豆二区精品AV视频| 伊人久久久久久久久久| 色戒在线完整观看在线播放版| 久久国产露脸老熟女熟69| 自慰弄湿白丝袜| 麻豆国产成人AV在线| 真人做受120分钟免费看| 欧美zzzoooxxx| 和姐姐做插得很深| 成人免费观看在线视频| 亚洲国产高清在线观看视频|