91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【產(chǎn)品應(yīng)用】AWorksLP 樣例詳解(MR6450)—— HWTimer

AGk5_ZLG_zhiyua ? 來源:未知 ? 2023-02-01 21:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AWorksLP 對(duì)外設(shè)進(jìn)行了高度抽象化,為同一類外設(shè)提供了相同的接口,應(yīng)用程序可以輕松跨平臺(tái)。本文以MR6450(點(diǎn)擊了解詳情)平臺(tái)為例,介紹AWorksLP HWTimer 外設(shè)基本用法。


簡(jiǎn)介
在AWorksLP中將硬件定時(shí)器分為了4類,即延時(shí)型、計(jì)數(shù)型、周期型和輸入捕獲型硬件定時(shí)器。
  • 延時(shí)型硬件定時(shí)器:

    由硬件定時(shí)器外設(shè)提供的延時(shí)功能。

  • 計(jì)數(shù)型硬件定時(shí)器:

    提供較精確的類似時(shí)間戳的功能。

  • 周期型硬件定時(shí)器:

    可設(shè)置中斷頻率的計(jì)數(shù)器,不僅能提供計(jì)數(shù)器的功能,也能根據(jù)中斷頻率提供更精確的定時(shí)。

  • 輸入捕獲定時(shí)器:
    可測(cè)量脈沖寬度或者測(cè)量頻率。

接口介紹
延時(shí)型硬件定時(shí)器:
函數(shù)原型
簡(jiǎn)要描述
aw_err_t aw_hwtimer_delay (int fd, struct aw_timespec *p_tv);
延時(shí)
aw_err_t aw_hwtimer_delay_cancel (int fd);
取消延時(shí)
計(jì)數(shù)型硬件定時(shí)器:
函數(shù)原型
簡(jiǎn)要描述
aw_err_t aw_hwtimer_count_start (int fd);
啟動(dòng)一個(gè)計(jì)數(shù)型硬件定時(shí)器
aw_err_t aw_hwtimer_count_stop (int fd);
停止一個(gè)計(jì)數(shù)型硬件定時(shí)器
aw_err_t aw_hwtimer_count_get (int fd, uint64_t *p_count);
讀取計(jì)數(shù)值
aw_err_t aw_hwtimer_count_rate_get (int fd, uint32_t *p_rate);
獲取計(jì)數(shù)時(shí)鐘頻率
aw_err_t aw_hwtimer_count_rate_set (int fd, uint32_t rate);
設(shè)置計(jì)數(shù)時(shí)鐘頻率
aw_err_t aw_hwtimer_count_rate_set_accurate (int fd, uint32_t rate_numerator, uint32_t rate_denominator);
以精確化的方式設(shè)置計(jì)數(shù)時(shí)鐘頻率
aw_err_t aw_hwtimer_count_rate_get_accurate (int fd, uint32_t *p_rate_numerator, uint32_t *p_rate_denominator);
獲取計(jì)數(shù)時(shí)鐘頻率的精確描述
周期型硬件定時(shí)器:
函數(shù)原型
簡(jiǎn)要描述
aw_err_t aw_hwtimer_period_wait (int fd, uint32_t wait_ms);
等待定時(shí)器周期中斷
aw_err_t aw_hwtimer_period_intr (int fd);
打斷周期型定時(shí)器的等待操作
aw_err_t aw_hwtimer_period_start (int fd);
啟動(dòng)定時(shí)器
aw_err_t aw_hwtimer_period_stop (int fd);
停止定時(shí)器
aw_err_t aw_hwtimer_period_count_get (int fd, uint64_t *p_count);
讀取計(jì)數(shù)值
aw_err_t aw_hwtimer_period_count_freq_get (int fd, uint32_t *p_rate);
獲取周期型定時(shí)器的硬件計(jì)數(shù)頻率(不是中斷頻率)
aw_err_t aw_hwtimer_period_count_freq_get_frac (int fd, aw_hwtimer_rate_t *p_rate);
以更精確的分?jǐn)?shù)形式獲取周期型定時(shí)器的硬件計(jì)數(shù)頻率(不是中斷頻率)
aw_err_t aw_hwtimer_period_intr_freq_set (int fd, uint32_t intr_freq);
設(shè)置中斷頻率
aw_err_t aw_hwtimer_period_intr_freq_get (int fd, uint32_t *p_intr_freq);
獲取中斷頻率
aw_err_t aw_hwtimer_period_intr_freq_set_frac (int fd, aw_const aw_hwtimer_rate_t *p_intr_freq);
設(shè)置中斷頻率(以更精確的分?jǐn)?shù)形式)
aw_err_t aw_hwtimer_period_intr_freq_get_frac (int fd, aw_hwtimer_rate_t *p_intr_freq);
獲取中斷頻率(以更精確的分?jǐn)?shù)形式)
輸入捕獲型硬件定時(shí)器:
函數(shù)原型
簡(jiǎn)要描述
aw_err_t aw_hwtimer_cap_start (int fd);
啟動(dòng)輸入捕獲型硬件定時(shí)器
aw_err_t aw_hwtimer_cap_stop (int fd);
停止輸入捕獲型硬件定時(shí)器
aw_err_t aw_hwtimer_cap_read (int fd, uint64_t *p_cap_val, uint32_t timeout_ms);
讀取一個(gè)捕獲到的事件的計(jì)數(shù)值
aw_err_t aw_hwtimer_cap_intr (int fd);
打斷阻塞read讀操作
aw_err_t aw_hwtimer_cap_config_set (int fd, aw_const aw_hwtimer_cap_config_t *p_config);
配置輸入捕獲型硬件定時(shí)器
aw_err_t aw_hwtimer_cap_config_get (int fd, aw_hwtimer_cap_config_t *p_config);
獲取輸入捕獲型硬件定時(shí)器的配置

使用樣例
AWorksLP SDK相關(guān)使用請(qǐng)參考《AWorksLP SDK快速入門(MR6450)——開箱體驗(yàn)》一文,本文不在贅述。
1. 周期型定時(shí)器
{SDK}demosperipheralhwtimer路徑下為硬件定時(shí)器例程,默認(rèn)運(yùn)行的是demo_hwtimer.c 周期型定時(shí)器的代碼,例程關(guān)鍵代碼如下:
/**
* rief 硬件定時(shí)器中斷服務(wù)函數(shù)。
* param[in] p_arg : 任務(wù)參數(shù)
*/
static void mytimer_isr (void *p_arg)
{
aw_gpio_toggle((int)p_arg);
aw_kprintf("enter isr ");
}


/**
* rief hwtimer 測(cè)試函數(shù)
*/
aw_local void* __task_handle (void *arg)
{
int fd;
aw_err_t ret;
uint32_t count = 5;
aw_hwtimer_rate_t p_intr_freq;


p_intr_freq.rate_denominator = 5;
p_intr_freq.rate_numerator = 1;


fd = aw_open(CONFIG_DEMO_HWTIMER_PEROID_DEV_NAME, AW_O_RDWR, 0);
if (fd < 0) {
aw_kprintf("hwtimer open failed:%d ", fd);
while(1);
}


ret = aw_hwtimer_period_intr_freq_set_frac(fd, &p_intr_freq);
while (count) {
aw_hwtimer_period_wait(fd, 500);
mytimer_isr(arg);
count --;
}


// 配置每秒中斷2次
ret = aw_hwtimer_period_intr_freq_set(fd, 2);


ret = aw_hwtimer_period_start(fd);
if (ret != AW_OK) {
aw_kprintf("Timer allocation fail! ");
}


ret = aw_hwtimer_period_wait(fd, AW_WAIT_FOREVER);


while (1) {
aw_hwtimer_period_wait(fd, AW_WAIT_FOREVER);
mytimer_isr(arg);
}


for (;;) {
aw_mdelay(1000);
}
aw_close(fd);


return 0;
}
在代碼中先使用了aw_hwtimer_period_intr_freq_set_frac 接口,以分?jǐn)?shù)的形式設(shè)置中斷頻率,使用aw_hwtimer_period_start接口啟動(dòng)定時(shí)器。在循環(huán)中使用aw_hwtimer_period_wait 接口阻塞等待中斷的產(chǎn)生、中斷產(chǎn)生后繼續(xù)執(zhí)行mytimer_isr函數(shù)使LED 燈狀態(tài)翻轉(zhuǎn),由于設(shè)置的頻率為五分之一,所以5秒LED 燈的狀態(tài)翻轉(zhuǎn)一次;循環(huán)一定次數(shù)后用aw_hwtimer_period_intr_freq_set 接口設(shè)置中斷頻率為2HZ,循環(huán)等待中斷、翻轉(zhuǎn)LED。
實(shí)驗(yàn)現(xiàn)象為LED燈先以5s的頻率閃爍,同時(shí)串口打印同時(shí)信息。閃爍一定次數(shù)后以0.5s的頻率LED閃爍,同時(shí)串口打印信息。

下表為使用硬件周期型定時(shí)器,在中斷中進(jìn)行引腳翻轉(zhuǎn),通過邏輯分析儀所測(cè)量出的實(shí)際數(shù)據(jù),在使用設(shè)計(jì)時(shí)可作為部分參考依據(jù)。

定時(shí)時(shí)間(s
實(shí)際時(shí)間(s
0.010000000
0.010000115
0.020000000
0.019999940
0.030000000
0.029999980
0.040000000
0.040000035
0.050000000
0.049999830
0.100000000
0.100000075
0.200000000
0.200000020
0.500000000
0.500000070
1.000000000
1.000000760
2.000000000
1.999999340
3.000000000
3.000002760
4.000000000
4.000001980
5.000000000
5.000004310
10.000000000
10.000008300
2.計(jì)數(shù)型定時(shí)器
在config配置腳本中選擇hwtimer count計(jì)數(shù)型定時(shí)器測(cè)試如圖1所示。
圖1 計(jì)數(shù)型定時(shí)器例程
保存后重新Build工程,編譯好后運(yùn)行的是demo_hwtimer_count.c的代碼,例程關(guān)鍵代碼如下:
aw_local void* __task_handle (void *arg)
{
uint32_t count = 0;
int fd, led_fd;
int ret;
uint32_t start_count;

fd = aw_open(CONFIG_DEMO_HWTIMER_PEROID_DEV_NAME, AW_O_RDWR, 0);
if (fd < 0) {
aw_kprintf("hwtimer open fail! :%d ",fd);
return;
}
/* 打開設(shè)備會(huì)點(diǎn)亮LED */
led_fd = aw_open("/dev/led_run", AW_O_RDWR, 0);
if (led_fd < 0) {
aw_kprintf("led open fail! :%d ", led_fd);
aw_close(fd);
return;
}
ret = aw_hwtimer_count_rate_get(fd, &start_count);
if (ret != AW_OK) {
aw_kprintf("Timer count rate get fail! ");
aw_close(fd);
aw_close(led_fd);
return;
}
// 設(shè)置時(shí)鐘頻率
ret = aw_hwtimer_count_rate_set(fd, start_count/2);
if (ret != AW_OK) {
aw_kprintf("Timer count rate set fail! ");
aw_close(fd);
aw_close(led_fd);
return;
}
ret = aw_hwtimer_count_start(fd);
if (ret != AW_OK) {
aw_kprintf("Timer start fail! ");
aw_close(fd);
aw_close(led_fd);
return;
}
for (;;) {
aw_led_toggle(led_fd);
aw_mdelay(500);
aw_led_toggle(led_fd);
aw_hwtimer_count_get(fd, &count);
aw_kprintf("Count is %d ", count);
}
aw_close(fd);
aw_close(led_fd);
return 0;
}
在上述代碼中使用了aw_hwtimer_count_rate_get接口獲取改定時(shí)器時(shí)鐘頻率,可以在調(diào)試模式下查看獲取到的參數(shù),為100M 如圖2所示。
圖2查看參數(shù)
使用aw_hwtimer_count_rate_set接口設(shè)置定時(shí)器時(shí)鐘的頻率為50M,使用aw_hwtimer_count_start接口開啟定時(shí)器,使用aw_hwtimer_count_get接口在循環(huán)中每延時(shí)500ms獲取一次計(jì)數(shù)值,并在串口中打印,打印結(jié)果如圖3所示。

圖3串口打印計(jì)數(shù)值
打印出的計(jì)數(shù)值中,相鄰兩個(gè)計(jì)數(shù)值之差為25M,是由于設(shè)置定時(shí)器頻率為50M,每延時(shí)500ms計(jì)數(shù)值增加25M。
3.延時(shí)型定時(shí)器
在config配置腳本中選擇hwtimer delay延時(shí)型定時(shí)器測(cè)試如圖4所示。
圖4計(jì)數(shù)型定時(shí)器例程
保存后重新Build工程,編譯好后運(yùn)行的是demo_hwtimer_count.c的代碼,例程關(guān)鍵代碼如下:
aw_local void* __task_handle (void *arg)
{
int i;
int fd;
aw_err_t ret;
aw_timespec_t timespec;
aw_timestamp_t start_timestamp, stop_timestamp;
aw_timestamp_freq_t timestamp_freq;
uint64_t delay_ns, diff;
uint32_t ns_numerator = 1000000000;


timestamp_freq = aw_timestamp_freq_get();
while (0 == (timestamp_freq % 10)) {
timestamp_freq /= 10;
ns_numerator /= 10;
}


fd = aw_open(CONFIG_DEMO_HWTIMER_DELAY_DEV_NAME, AW_O_RDWR, 0);
if (fd < 0) {
aw_kprintf("hwtimer open failed:%d ", fd);
while(1);
}


delay_ns = 2001000;
for (i = 0; i < 100; i++) {
timespec.tv_sec = delay_ns / 1000000000u;
timespec.tv_nsec = (uint32_t)(delay_ns % 1000000000u);


start_timestamp = aw_timestamp_get();
ret = aw_hwtimer_delay(fd, ×pec);
if (ret !=AW_OK) {
aw_kprintf("hwtimer delay failed:%d ", ret);
}
aw_barrier();
stop_timestamp = aw_timestamp_get();


stop_timestamp -= start_timestamp;
diff = stop_timestamp;
diff *= ns_numerator;
diff /= timestamp_freq;


diff = diff - delay_ns;
aw_kprintf(
"hwtimer_delay delay = %u,diff = %u ns ",
(uint32_t)delay_ns,
(uint32_t)diff);
delay_ns += 100000;
}
aw_close(fd);
return 0;
}
上述代碼中在延時(shí)開始前使用aw_timestamp_get接口記錄時(shí)間戳,使用aw_hwtimer_delay接口進(jìn)行延時(shí),延時(shí)結(jié)束后記錄結(jié)束時(shí)間戳,用兩個(gè)時(shí)間戳的差值通過換算,用于對(duì)比延時(shí)不同時(shí)間下與timestamp相比的誤差,并在串口中打印,打印后增加延時(shí)時(shí)間,再次循環(huán),串口打印結(jié)果如下圖所示。
圖5串口打印結(jié)果
因外設(shè)接口調(diào)用時(shí)代碼執(zhí)行需要時(shí)間以及晶振等硬件會(huì)導(dǎo)致誤差,分析例程打印數(shù)據(jù)可得,延時(shí)性定時(shí)器的軟件開銷在同一硬件以及接口下,其誤差基本是一致的。
4. 捕獲型定時(shí)器

{SDK}demosperipheralcap路徑下為捕獲型定時(shí)器例程,例程關(guān)鍵代碼如下:

/* 單邊沿觸發(fā)*/
static void test_cap_single_edge(
int fd,
int gpio_cap,
uint32_t ms,
aw_hwtimer_cap_config_t *p_config,
int is_rising)
{
uint64_t cap_val1, cap_val2;
aw_err_t ret;


// 制造兩次上升沿
mk_edge(gpio_cap, 5);
aw_task_delay(ms);
mk_edge(gpio_cap, 5);


// 此時(shí)應(yīng)該產(chǎn)生了兩次捕獲事件
// 把它們讀出來
ret = aw_hwtimer_cap_read(fd, &cap_val1, AW_WAIT_FOREVER);
if (AW_OK != ret) {
aw_kprintf("cap read cap_val1 failed ");
return;
}
ret = aw_hwtimer_cap_read(fd, &cap_val2, AW_WAIT_FOREVER);
if (AW_OK != ret) {
aw_kprintf("cap read cap_val2 failed ");
return;
}


cap_val2 -= cap_val1;
cap_val2 *= 1000000;
cap_val2 /= p_config->sample_rate;


if (is_rising) {
aw_kprintf("two rising edge between %u ms ", ms + 5);
}
else {
aw_kprintf("two falling edge between %u ms ", ms + 5);
}
aw_kprintf("two capture events between %llu us ", cap_val2);
}


static void demo_cap_base(int gpio_cap)
{
int fd;
aw_err_t ret;
aw_hwtimer_cap_config_t config;


// 使得測(cè)試GPIO輸出為0
aw_gpio_set(gpio_cap, 0);


fd = aw_open(CONFIG_DEMO_HWTIMER_CAP_DEV_NAME, AW_O_RDWR, 0);
if (fd < 0) {
aw_kprintf("cap open failed! ");
return;
}


// 獲取捕獲定時(shí)器的配置
ret = aw_hwtimer_cap_config_get(fd, &config);
if (ret != AW_OK) {
aw_kprintf("cap config get failed... ");
aw_close(fd);
return ;
}


#if CONFIG_SINGLE_EDGE
int is_rising;
// 配置為上升沿觸發(fā)捕獲
config.cap_edge_flags = AW_CAPTURE_RISING_EDGE;
is_rising = 1;
ret = aw_hwtimer_cap_config_set(fd, &config);
if (ret != AW_OK) {
aw_kprintf("cap config set failed... ");
aw_close(fd);
return ;
}


ret = aw_hwtimer_cap_start(fd);
if (ret != AW_OK) {
aw_kprintf("cap start failed... ");
aw_close(fd);
return ;
}
test_cap_single_edge(fd, gpio_cap, 20, &config, is_rising);
#endif


aw_close(fd);
}
在CAP 例程中默認(rèn)使用的是timer5_chan0,這個(gè)通道對(duì)應(yīng)的引腳是PF08,可以通過查看工程下timer5_chan0對(duì)應(yīng)的.h文件得知所使用的引腳的編號(hào)為168,通過查看hpm_pin.h頭文件可知編號(hào)168對(duì)應(yīng)的引腳為PF08 如下圖所示。
圖6默認(rèn)通道
圖7對(duì)應(yīng)引腳編號(hào)

圖8對(duì)應(yīng)引腳
本實(shí)驗(yàn)中還用到了PF09 這個(gè)引腳,用于產(chǎn)生捕獲事件,PF09 和 PF08 這兩個(gè)引腳在開發(fā)板上并沒有引出來,不利于這次實(shí)驗(yàn),需要修改這兩個(gè)引腳。
圖9捕獲產(chǎn)生引腳
參考{SDK} platformsplatform-hpm-aworks-lpoardsEPC6450-AWIdts 下的pins.dts 引腳描述文件,找到timer4_chan1 如圖10所示,timer4_chan1 使用的引腳是PE25, 對(duì)應(yīng)著開發(fā)板排針 UTX1 絲印的位置。
圖10捕獲產(chǎn)生引腳
打開配置界面將timer5_chan0修改為timer4_chan1 如圖11所示,修改后點(diǎn)擊保存,重新build工程。
圖11配置界面
將CAP_GPIO 對(duì)應(yīng)的引腳改為PIN_PE24,對(duì)應(yīng)著開發(fā)板排針 URX1 絲印的位置,如圖12所示。

圖12CAP引腳
將 PE25 , PE24 這兩個(gè)引腳,也就是排針上 URX1 和 UTX1 短接。

圖13引腳位置
上訴代碼中使用aw_hwtimer_cap_config_get接口獲取捕獲定時(shí)器的配置信息,配置AW_CAPTURE_RISING_EDGE單通道模式后使用aw_hwtimer_cap_config_set接口配置捕獲定時(shí)器。使用aw_hwtimer_cap_start接口啟動(dòng)定時(shí)器。在test_cap_single_edge函數(shù)中調(diào)用mk_edge函數(shù)制造兩次上升沿,使用aw_hwtimer_cap_read接口讀取這兩次事件捕獲到的計(jì)數(shù)值,計(jì)算出差值后在串口上顯示。
在test_cap_single_edge函數(shù)中使用mk_edge函數(shù)中控制CAP_GPIO引腳輸出高電平后延時(shí)5ms再輸出低電平。延時(shí)20ms后再次調(diào)用mk_edge函數(shù),因此兩次上升沿事件間隔應(yīng)為25ms。串口打印結(jié)果如下圖所示。
圖14串口打印結(jié)果

至此,所有類型的硬件定時(shí)器樣例均已展示完畢,在軟件應(yīng)用設(shè)計(jì)中可根據(jù)實(shí)際需求選取不同類型的定時(shí)器進(jìn)行使用。更多其他類型外設(shè)的用法介紹,請(qǐng)關(guān)注后續(xù)同系列推文~


原文標(biāo)題:【產(chǎn)品應(yīng)用】AWorksLP 樣例詳解(MR6450)—— HWTimer

文章出處:【微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 致遠(yuǎn)電子
    +關(guān)注

    關(guān)注

    13

    文章

    423

    瀏覽量

    32626

原文標(biāo)題:【產(chǎn)品應(yīng)用】AWorksLP 樣例詳解(MR6450)—— HWTimer

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Atmel ATmega325/3250/645/6450微控制器:性能與特性深度解析

    Atmel ATmega325/3250/645/6450微控制器:性能與特性深度解析 在嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域,選擇一款合適的微控制器至關(guān)重要。Atmel ATmega325/3250/645
    的頭像 發(fā)表于 04-06 13:05 ?561次閱讀

    固件燒錄速度實(shí)測(cè):JTAG比UART快6.8倍

    在批量生產(chǎn)場(chǎng)景中,固件燒錄效率直接影響產(chǎn)線節(jié)拍與交付能力。如何選擇最優(yōu)燒錄方式?本文以ZLG致遠(yuǎn)電子MR6450系列核心板為,通過實(shí)測(cè)數(shù)據(jù)為您解析。MR6450核心板MR6450是Z
    的頭像 發(fā)表于 01-27 11:34 ?393次閱讀
    固件燒錄速度實(shí)測(cè):JTAG比UART快6.8倍

    瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用工程

    瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用工程
    的頭像 發(fā)表于 01-14 15:31 ?7314次閱讀
    瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用<b class='flag-5'>樣</b><b class='flag-5'>例</b>工程

    瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用工程

    瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用工程
    的頭像 發(fā)表于 01-05 14:59 ?8238次閱讀
    瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應(yīng)用<b class='flag-5'>樣</b><b class='flag-5'>例</b>工程

    MR30分布式I/O助力物流分揀系統(tǒng)智能化升級(jí)

    本文以MR30分布式I/O在某大型電商物流中心分揀系統(tǒng)的應(yīng)用為,詳細(xì)闡述其在合流、分揀、分流、分運(yùn)全流程中的模塊化應(yīng)用方案。
    的頭像 發(fā)表于 10-31 10:58 ?1110次閱讀
    <b class='flag-5'>MR</b>30分布式I/O助力物流分揀系統(tǒng)智能化升級(jí)

    基于開源鴻蒙的圖片編輯開發(fā)(2)

    本期內(nèi)容介紹基于開源鴻蒙在RK3568上開發(fā)圖片編輯的全流程,分為上篇和下篇,本篇為下篇,主要介紹標(biāo)記、保存圖片功能。
    的頭像 發(fā)表于 10-31 09:19 ?3298次閱讀
    基于開源鴻蒙的圖片編輯開發(fā)<b class='flag-5'>樣</b><b class='flag-5'>例</b>(2)

    基于開源鴻蒙的圖片編輯開發(fā)(1)

    本期內(nèi)容介紹基于開源鴻蒙在RK3568上開發(fā)圖片編輯的全流程,分為上篇和下篇,本篇為上篇,主要介紹添加相冊(cè)圖片、編譯圖片功能。
    的頭像 發(fā)表于 10-31 09:16 ?3166次閱讀
    基于開源鴻蒙的圖片編輯開發(fā)<b class='flag-5'>樣</b><b class='flag-5'>例</b>(1)

    新潔能NCE65TF099:高頻開關(guān)性能如何賦能不同產(chǎn)品應(yīng)用?

    在當(dāng)今快速發(fā)展的電子技術(shù)領(lǐng)域,高頻開關(guān)性能已成為衡量功率器件性能的關(guān)鍵指標(biāo)之一。新潔能憑借其卓越的高頻開關(guān)性能,正在為各種產(chǎn)品應(yīng)用帶來前所未有的賦能與變革。本文將深入探討新潔能NCE65TF099
    的頭像 發(fā)表于 10-20 16:21 ?932次閱讀
    新潔能NCE65TF099:高頻開關(guān)性能如何賦能不同<b class='flag-5'>產(chǎn)品應(yīng)用</b>?

    MR30分布式I/O模塊在化工行業(yè)的應(yīng)用

    氧化鋁等化工行業(yè)實(shí)現(xiàn)穩(wěn)定生產(chǎn)。本期案例使用的MR30系列分布式I/O產(chǎn)品MR30-FBC-PN、MR30-16DI、MR30-16DO、
    的頭像 發(fā)表于 09-05 11:30 ?733次閱讀

    MR30分布式I/O模塊在涂裝產(chǎn)線中的應(yīng)用

    某裝備制造企業(yè)主要從事自動(dòng)化焊割、涂裝生產(chǎn)線的設(shè)計(jì)與制造,其中涂裝生產(chǎn)線涉及噴砂、噴漆、熱處理、廢氣處理等工藝。明達(dá)技術(shù)的MR30系列分布式I/O,性能穩(wěn)定,易上手,方便接線,助力企業(yè)提升產(chǎn)品
    的頭像 發(fā)表于 08-27 15:38 ?679次閱讀
    <b class='flag-5'>MR</b>30分布式I/O模塊在涂裝產(chǎn)線中的應(yīng)用

    基于開源鴻蒙的AVPlayer視頻播控開發(fā)

    在開源鴻蒙生態(tài)建設(shè)中,多媒體能力是構(gòu)建豐富用戶體驗(yàn)的核心要素。本開發(fā)基于AVPlayer實(shí)現(xiàn),AvPlayer支持流媒體和本地資源解析、媒體資源解封裝、視頻解碼和渲染功能,適用于對(duì)媒體資源進(jìn)行端
    的頭像 發(fā)表于 08-21 10:22 ?3062次閱讀
    基于開源鴻蒙的AVPlayer視頻播控開發(fā)<b class='flag-5'>樣</b><b class='flag-5'>例</b>

    基于開源鴻蒙的視頻播放開發(fā)

    在開源鴻蒙生態(tài)建設(shè)中,多媒體能力是構(gòu)建豐富用戶體驗(yàn)的核心要素。本開發(fā)針對(duì)視頻播放場(chǎng)景,聚焦開源鴻蒙原生媒體框架,通過Video組件實(shí)現(xiàn)視頻資源加載、播放狀態(tài)控制及多樣化展示形態(tài)。重點(diǎn)演示組件化
    的頭像 發(fā)表于 08-19 10:41 ?1729次閱讀
    基于開源鴻蒙的視頻播放開發(fā)<b class='flag-5'>樣</b><b class='flag-5'>例</b>

    RISC-V和ARM有何區(qū)別?

    在微處理器架構(gòu)領(lǐng)域,ARM與RISC-V是兩個(gè)備受關(guān)注的體系。ZLG致遠(yuǎn)電子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,這引發(fā)了人們對(duì)這兩種架構(gòu)差異的深入探討。ARM
    的頭像 發(fā)表于 06-24 11:38 ?2146次閱讀
    RISC-V和ARM有何區(qū)別?

    基于瑞薩電子RA8T2 sensorless方案的工程 可對(duì)電流環(huán)進(jìn)行TCM化設(shè)置

    基于瑞薩電子RA8T2 sensorless方案的工程 可對(duì)電流環(huán)進(jìn)行TCM化設(shè)置
    的頭像 發(fā)表于 06-04 18:29 ?1203次閱讀

    湖南銀河電氣有限公司產(chǎn)品應(yīng)用案例

    湖南銀河電氣有限公司產(chǎn)品應(yīng)用案例
    發(fā)表于 04-23 11:21 ?0次下載