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

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

3天內不再提示

【RTT大賽作品連載】AB32VG1評估板到貨控制彩燈測試

磐石90 ? 2021-11-07 19:39 ? 次閱讀

上次發布了一篇文章(【RTT大賽作品連載】AB32VG1評估板到貨點燈測試-電子發燒友網 (elecfans.com)),解決很多愛好者從在RT-ThreadStudio新建項目到對應開發配置及下載等各部分環節的問題!得到了很多愛好者的認可!

poYBAGGHrWyASMyOAAYobxoiuxI615.png

哈哈,先曬點贊的!

pYYBAGGHrb-ACM6mAAX42sJaxqw946.png

重要的是幫好多愛好者解決了實際問題!

接下來看看在如何AB32VG1評估板控制彩燈!

在RT-ThreadStudio新建項目到對應開發配置及下載及驗證測試?。?!

還是詳細點?。?!用截圖-》

新建項目!

poYBAGGHrseAOHNcAAFyO6pqkpc957.png


poYBAGGHr8KAILxwAAFBOz6cLlg570.png

點完成,新建就好了!

接下來是這次會用的軟件包設置?。?!

poYBAGGHsL2AUAC8AAHa1S9PV8Y803.png

設置好后點關閉,會提示保存設置選項,點保存即可!

接下來會用到這幾IO!如圖

pYYBAGGHsdWAOYclAA9a6ZVbpp4963.png

軟件代碼內容暫時直接寫在main函數文件里?。?!

如圖

具體內容如下:

#include
#include "board.h"
#include
#define BUTTON_PIN_0 rt_pin_get("PF.0")//control timeDelay
#define BUTTON_PIN_1 rt_pin_get("PF.1")//control colorLed mode
uint32_t delayTime = 1;
uint32_t state = 0;
uint32_t cnt_0 = 1;
static struct button btn_0;
static struct button btn_1;

static uint8_t button_read_pin_0(void)
{
return rt_pin_read(BUTTON_PIN_0);
}
static uint8_t button_read_pin_1(void)
{
return rt_pin_read(BUTTON_PIN_1);
}

static void button_0_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
cnt_0++;
delayTime = cnt_0 * 200;
if (cnt_0 == 10)
{
cnt_0 = 1;
}
rt_kprintf("button 0 single click\ndelayTime=%d\n", delayTime);
break;
case DOUBLE_CLICK:
if (cnt_0 > 1)
{
cnt_0--;
}
delayTime = cnt_0 * 200;
rt_kprintf("button 0 double click\ndelayTime=%d\n", delayTime);
break;

case LONG_PRESS_START:
rt_kprintf("button 0 long press start\n");
break;
case LONG_PRESS_HOLD:
rt_kprintf("button 0 long press hold\n");
break;
}
}
static void button_1_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
state = !state;
if (state == 0) {
rt_kprintf("one color\n");
}
else {
rt_kprintf("more color\n");
}
rt_kprintf("button 1 single click\n");
break;
case DOUBLE_CLICK:
rt_kprintf("more color\n");
rt_kprintf("button 1 single click\n");
default:
break;
}
}
static void btn_thread_entry(void* p)
{
while (1)
{
/* 5ms */
rt_thread_delay(RT_TICK_PER_SECOND / 200);
button_ticks();
}
}
static int multi_button_test(void)
{
rt_thread_t thread = RT_NULL;
/* Create background ticks thread */
thread = rt_thread_create("btn", btn_thread_entry, RT_NULL, 1024, 10, 10);
if (thread == RT_NULL)
{
return RT_ERROR;
}
rt_thread_startup(thread);
/* low level drive */
rt_pin_mode(BUTTON_PIN_0, PIN_MODE_INPUT_PULLUP);
button_init(&btn_0, button_read_pin_0, PIN_LOW);
button_attach(&btn_0, SINGLE_CLICK, button_0_callback);
button_attach(&btn_0, DOUBLE_CLICK, button_0_callback);
button_attach(&btn_0, LONG_PRESS_START, button_0_callback);
button_attach(&btn_0, LONG_PRESS_HOLD, button_0_callback);
button_start(&btn_0);

rt_pin_mode(BUTTON_PIN_1, PIN_MODE_INPUT_PULLUP);
button_init(&btn_1, button_read_pin_1, PIN_LOW);
button_attach(&btn_1, SINGLE_CLICK, button_1_callback);
button_attach(&btn_1, DOUBLE_CLICK, button_1_callback);
button_attach(&btn_1, LONG_PRESS_START, button_1_callback);
button_attach(&btn_1, LONG_PRESS_HOLD, button_1_callback);
button_start(&btn_1);
return RT_EOK;
}
INIT_APP_EXPORT(multi_button_test);

int main(void)
{
uint32_t cnt = 0;
rt_kprintf("Hello, world11\n");
uint8_t pin = rt_pin_get("PE.1");
rt_pin_mode(pin, PIN_MODE_OUTPUT);
uint8_t pin1 = rt_pin_get("PE.4");
rt_pin_mode(pin1, PIN_MODE_OUTPUT);
uint8_t pin2 = rt_pin_get("PA.1");
rt_pin_mode(pin2, PIN_MODE_OUTPUT);
while (1)
{
if (cnt % 8 == 0)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 1)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 2)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 3)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 4)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 5)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 6)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 7)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (state == 1)
cnt++;
rt_thread_mdelay(delayTime);
}
}

編譯好,下載驗證如下!

poYBAGGHs9CAVGLXAAC80dTZHUo405.png

驗證OK!

其實還可以在此基礎上,讓ColorLed'更好玩,喜歡的愛好者可以試試讓它更炫酷?。?!

最后,看到上一篇閱讀量破2100了(【RTT大賽作品連載】AB32VG1評估板到貨點燈測試-電子發燒友網 (elecfans.com))

很高興?。?!大家一起加油?。?!

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

    關注

    237

    文章

    22550

    瀏覽量

    646862
  • RTOS
    +關注

    關注

    20

    文章

    780

    瀏覽量

    118889
  • 開發板
    +關注

    關注

    25

    文章

    4560

    瀏覽量

    94890
  • RT-Thread
    +關注

    關注

    31

    文章

    1184

    瀏覽量

    39003
  • 中科藍訊
    +關注

    關注

    9

    文章

    50

    瀏覽量

    9671
收藏 人收藏

    評論

    相關推薦

    ADS8-V1EBZ 亞德諾半導體 評估 射頻微波開發

    連接到指定的 ADI 高速 ADC 評估時,ADS8-V1 可用作數據采集。ADS8-V1 上的 FPGA 設計用于支持最高速 JE
    發表于 05-21 12:01

    研華榮獲信通院工業數字孿生大賽優秀作品

    在信通院和蕪湖市人民政府聯合主辦的2023第三屆工業數字孿生大賽中,研華表現卓越,其研華數字孿生InsightAPM和研華智慧能源iEMS團隊作品均獲優秀作品獎,展現其在技術創新與應用實踐上的卓越能力,推動“工業互聯網+數字孿生
    的頭像 發表于 04-17 09:48 ?237次閱讀
    研華榮獲信通院工業數字孿生<b class='flag-5'>大賽</b>優秀<b class='flag-5'>作品</b>獎

    大功率二極管晶閘管知識連載——控制特性

    大功率二極管晶閘管知識連載——控制特性
    的頭像 發表于 12-14 17:09 ?359次閱讀
    大功率二極管晶閘管知識<b class='flag-5'>連載</b>——<b class='flag-5'>控制</b>特性

    【每周一練】盤古1K開發 練習二:按鍵控制彩燈實驗

    實驗目的 1 設計 8 種彩燈效果, 可通過按鍵切換。 2 選擇一個按鍵作為控制輸入, 按下一次換一種顯示效果, 在 8 種效果中循環。 實驗要求 1、 實驗平臺: MES2KG 開發
    發表于 12-09 14:55

    【每周一練】+盤古1K開發+鍵盤控制彩燈+硬件約束改變按鍵

    感謝發燒友愛好者和小眼睛科技公司提供的FPGA測試機會。在上一次的測試中實現了開發環境建立和8個LED的流水燈效果,今天來完成第2個測試。這次的目的是設計 8 種彩燈效果,選擇一個按鍵
    發表于 11-29 21:01

    RTT是什么?對TCP中RTT時延的理解

    最近服務器環境部署了**tcprtt**網絡時延監控,發現不同服務器不同節點之間的RTT時延表象非常奇怪,無法準確的判斷服務器的網絡情況。
    的頭像 發表于 10-09 16:24 ?2.5w次閱讀
    <b class='flag-5'>RTT</b>是什么?對TCP中<b class='flag-5'>RTT</b>時延的理解

    彩燈控制電路的設計與制作

    讓自己學號的后2位編碼后點亮相應的燈,能實現循環左、右移,按鍵控制,同時按鍵控制彩燈亮滅速度。
    的頭像 發表于 08-25 17:16 ?2297次閱讀
    <b class='flag-5'>彩燈</b><b class='flag-5'>控制</b>電路的設計與制作

    【社區工程師專題系列第七期】嵌入式工程師離不開技術創新——張海良

    應用設計大賽一個桌面智能塢小工具 項目簡介 很榮幸能申請到AB32VG1開發參加這次RTT的創新大賽,這個芯片的功能很強大。我基于這個開發
    發表于 08-11 15:32

    彩燈珠的秘密

    本文主要介紹了市場上面的幻彩燈珠組成及應用場景,并重點介紹了幻彩燈珠內部驅動芯片的原理和編碼格式以及該芯片的典型硬件應用電路,最后通過例舉用一顆8位MCU控制彩燈珠的算法。
    的頭像 發表于 06-25 15:31 ?1127次閱讀
    幻<b class='flag-5'>彩燈</b>珠的秘密

    【資料分享】NXP i.MX 8M Mini評估測試手冊(1

    本帖最后由 Tronlong創龍科技 于 2023-6-15 14:33 編輯 目錄1 評估快速測試1.1系統啟動測試1.2文件傳送
    發表于 06-15 14:32

    【資料分享】全志科技A40i評估測試手冊(1

    本帖最后由 Tronlong創龍科技 于 2023-6-14 15:57 編輯 目 錄1 評估快速測試1.1系統啟動測試1.2文件傳
    發表于 06-14 15:49

    恩智浦NXP i.MX 6ULL評估測試手冊(下)

    、VMware虛擬機等相關軟件。本文主要提供評估的硬件資源測試方法。無特殊說明情況下,默認使用USB TO UART1作為調試串口,使用Linux系統啟動卡(SD啟動模式)啟動系統,
    發表于 06-14 14:41

    恩智浦NXP i.MX 6ULL評估測試手冊(中)

    軟件。本文主要提供評估的硬件資源測試方法。無特殊說明情況下,默認使用USB TO UART1作為調試串口,使用Linux系統啟動卡(SD啟動模式)啟動系統,通過路由器與PC機進行網絡
    發表于 06-14 14:25

    恩智浦NXP i.MX 6ULL評估測試手冊(上)

    串口調試終端、VMware虛擬機等相關軟件。本文主要提供評估的硬件資源測試方法。無特殊說明情況下,默認使用USB TO UART1作為調試串口,使用Linux系統啟動卡(SD啟動模式
    發表于 06-14 09:45

    【社區工程師專題系列第二期】電子工程師需要在參賽中歷練成長——林宏華

    開發的語音播放功能; 3、基于Node-Red的串口功能與AB32VG1通訊; 4、連接騰訊云的Explorer平臺; 5、騰訊連連公眾號接收云平報警信息; 6、門窗檢測開關。 硬件說明 因為官方提供了
    發表于 06-13 15:26
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>