国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    60

    瀏覽量

    3789
  • 開發板試用
    +關注

    關注

    3

    文章

    303

    瀏覽量

    2745
  • UCM108E
    +關注

    關注

    0

    文章

    13

    瀏覽量

    226
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LoRa1121 FCC&amp;amp;CE認證 多頻段LoRa無線通訊模塊規格書

    LoRa1121 FCC&amp;CE認證 多頻段LoRa無線通訊模塊規格書
    發表于 02-26 14:36 ?0次下載

    探索AMP04精密單電源儀表放大器的卓越性能與應用

    探索AMP04精密單電源儀表放大器的卓越性能與應用 在電子工程師的日常設計工作中,選擇合適的儀表放大器至關重要,它直接影響到整個系統的性能和穩定性。今天,我們就來深入探討一款備受關注的精密單電源儀表
    的頭像 發表于 01-16 11:00 ?208次閱讀

    工業場景下 TE AMP 線束線纜組件選型全攻略

    TE Connectivity(簡稱 TE / 泰科電子)是全球領先的電子互連解決方案供應商,其 AMP Connectors 系列產品覆蓋各種工業及汽車應用場景。AMP 系列包含從基礎連接、端子到整線電纜組件、電源線束解決方
    的頭像 發表于 12-16 14:18 ?488次閱讀
    工業場景下 TE <b class='flag-5'>AMP</b> 線束線纜組件選型全攻略

    【深度實戰】MYD-LR3576 AMP非對稱多核開發指南:從配置到實戰

    一、什么是AMP?為什么重要?AMP(AsymmetricMulti-Processing)非對稱多處理架構,允許單個芯片的不同核心運行不同的操作系統或裸機程序。相比傳統的SMP(對稱
    的頭像 發表于 12-05 08:07 ?7129次閱讀
    【深度實戰】MYD-LR3576 <b class='flag-5'>AMP</b>非對稱多核<b class='flag-5'>開發</b>指南:從配置到實戰

    羅德與施瓦茨宣布推出新頻段 R&amp;amp;amp;S ZNB3000 矢量網絡分析儀,頻率高達 54 GHz

    R&amp;SZNB3000以業界領先的測量速度、出色的擴展能力及一流射頻性能,為中端矢量網絡分析儀市場樹立了新標桿。隨著高頻型號的加入,R&amp;SZNB3000將覆蓋更廣泛的應用場景。羅德與施
    的頭像 發表于 12-04 17:04 ?622次閱讀
    羅德與施瓦茨宣布推出新頻段 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;S ZNB3000 矢量網絡分析儀,頻率高達 54 GHz

    1218 MHz 高輸出 GaN CATV 功率倍增 Amp擴音 skyworksinc

    電子發燒友網為你提供()1218 MHz 高輸出 GaN CATV 功率倍增 Amp擴音相關產品參數、數據手冊,更有1218 MHz 高輸出 GaN CATV 功率倍增
    發表于 09-01 18:30
    1218 MHz 高輸出 GaN CATV 功率倍增<b class='flag-5'>器</b> <b class='flag-5'>Amp</b>擴音<b class='flag-5'>器</b> skyworksinc

    870 MHz、25 dB 增益 CATV 功率倍增 Amp擴音 skyworksinc

    電子發燒友網為你提供()870 MHz、25 dB 增益 CATV 功率倍增 Amp擴音相關產品參數、數據手冊,更有870 MHz、25 dB 增益 CATV 功率倍增
    發表于 09-01 18:30
    870 MHz、25 dB 增益 CATV 功率倍增<b class='flag-5'>器</b> <b class='flag-5'>Amp</b>擴音<b class='flag-5'>器</b> skyworksinc

    1 GHz、28 dB 增益 CATV 功率倍增 Amp擴音 skyworksinc

    電子發燒友網為你提供()1 GHz、28 dB 增益 CATV 功率倍增 Amp擴音相關產品參數、數據手冊,更有1 GHz、28 dB 增益 CATV 功率倍增
    發表于 08-29 18:35
    1 GHz、28 dB 增益 CATV 功率倍增<b class='flag-5'>器</b> <b class='flag-5'>Amp</b>擴音<b class='flag-5'>器</b> skyworksinc

    GRAS 發布全新座艙測試支架 AutoArray:PR0003 &amp;amp;amp; PR0004!

    全球測試和測量領域的領導者AxiometrixSolutions旗下品牌GRASSound&amp;Vibration,宣布推出全新座艙測試支架AutoArrayPR0003和PR0004。這兩款
    的頭像 發表于 08-08 17:39 ?1522次閱讀
    GRAS 發布全新座艙測試支架 AutoArray:PR0003 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; PR0004!

    CS86706適用1~3節鋰電應用,內置升壓模塊,2×30W立體聲&amp;amp;amp;50W單聲道R類音頻功率放大器

    CS86706適用1~3節鋰電應用,內置升壓模塊,2×30W立體聲&amp;amp;50W單聲道R類音頻功率放大器
    的頭像 發表于 07-16 20:42 ?652次閱讀
    CS86706適用1~3節鋰電應用,內置升壓模塊,2×30W立體聲&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;50W單聲道R類音頻功率放大器

    Texas Instruments AMP-PDK-EVM子開發套件數據手冊

    Texas Instruments AMP-PDK-EVM子開發套件設計用于搭配AMP-PDK-EVM主板使用。子套件選項適用于不同封裝
    的頭像 發表于 07-09 14:15 ?849次閱讀
    Texas Instruments <b class='flag-5'>AMP</b>-PDK-EVM子<b class='flag-5'>板</b><b class='flag-5'>開發</b>套件數據手冊

    新知|Verizon與AT&amp;amp;amp;T也可以手機直接連接衛星了

    近日,Verizon與AT&amp;T宣布,手機直連衛星方面取得重要進展,使用普通手機實現了通過衛星的視頻通話。很顯然,Verizon與AT&amp;T的這一舉措是針對此前T-Mobile
    的頭像 發表于 06-19 07:07 ?1140次閱讀
    新知|Verizon與AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T也可以手機直接連接衛星了

    rt-thread studio debug生成了elf &amp;amp;amp; map,為什么不生成反匯編?

    開發中crash后dump出了現場,需要通過反匯編文件確定crash的lr &amp;amp; pc,大部分使用rtthread studio的環境是windows,在windows下倒反匯編文件
    發表于 06-11 06:42

    多模塊配置!YU系列USB、Type-C連接為工控機打造&amp;amp;quot;全能型&amp;amp;quot;數據傳輸方案

    背景介紹工控機是一類用于工業、野外等復雜惡劣環境的專用計算機設備,如何實現穩如磐石的數據傳輸是關鍵?凌科電氣YU-USB&amp;Type-C工業連接,以嚴苛環境適配性及長期穩定的性能表現,成為
    的頭像 發表于 05-07 18:27 ?677次閱讀
    多模塊配置!YU系列USB、Type-C連接<b class='flag-5'>器</b>為工控機打造&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;quot;全能型&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;quot;數據傳輸方案

    TFT&amp;amp;LCD,是電阻屏還是電容屏?

    TFT&amp; LCD是采用薄膜晶體管技術的液晶觸摸顯示,它本身并不決定是電阻屏還是電容屏。電阻屏和電容屏指的是不同的觸摸技術,電容屏在現代設備中更為常見。
    的頭像 發表于 04-14 13:35 ?1908次閱讀
    TFT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;LCD,是電阻屏還是電容屏?