完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我不知道如何创建一个有中断的组件。 我尝试使用一个库项目来做它,但是因为我不能构建这个项目,如果中断块没有被构建,我就不能定义块功能。 当我尝试使用一个设计项目,然后添加一个带有符号和示意性实现的组件(当我构建这个项目时,组件本身没有被构建)时,就会出现同样的问题。 有什么想法,如何建立这样一个块? 例如,我想用时钟和中断块(上升沿)来构建我自己的计数器,这样每个中断增加一个全局变量1。 谢谢, 佩利 |
|
相关推荐
8个回答
|
|
|
|
|
|
嗨,Dana,
确实可以在组件外添加一个中断组件(ISR),这样就很难在顶部设计中复制组件。 此外,在我的情况下,ISR组件负责(通过其代码)更改自定义块内的数字MUX的控制值。所以,尽管有可能做到这一点,但我认为这是一个糟糕的做法。 在自定义块中绝对没有办法放置ISR组件吗? 再次感谢 佩利 |
|
|
|
|
|
|
|
嗨,鲍伯,
我不知道有什么区别,使用宏时,但在一个库项目不能“建立”一个宏或。 我尝试了一些不同的东西。我用了一个设计项目的顶层设计创建一个组件和附加符号的顶层设计。这样,因为组件是顶层设计,ISR组件可以建立。 然后当我打开一个新的项目,它包含了部分中断代码里面(和所有其他块的API)。 现在的问题是,当我打开组件isr_1。C代码(component_1_isr_1。C)它不包含对中断代码的变化(在定义部分和thecy_isr节)。 你知道为什么代码并没有改变,这是应该的方式吗? |
|
|
|
你有什么问题?
我用ISR和DMA做了很多组件。因为你给出的理由。ISR和DMA相关的代码存在于组件中并被定制。 别忘了用实例名称标签对所有内部结构进行前缀。我使用它这么多,它是安装在我的宏键盘程序CTRL转换。 预计起飞时间 |
|
|
|
你好,
O. K,我想出来了,在将自定义组件添加到TopDead并构建项目后,您必须更改组件内的ISR功能。 我的印象是,ISR代码应该在自定义组件本身之前写入,然后添加到TopDebug中,这就是问题的根源。 谢谢大家的帮助 |
|
|
|
我不确定你的意思。我在组件内部做ISR代码。
这里是一个片段,附加的是一个PNG的组件示意图。 / / / / / / ` ===================================================================== instance_name美元`。C组分C代码/ / / / ===================================================================== #包括“` instance_name美元`。H”port_control * ` instance_name美元` _pcptr [ param_port_sfx_cnt ];cy_isr_proto(`美元stance_name ` _isr_a_isr);cy_isr_proto(` instance_name美元` _isr_b_isr);/ / / / / / ` --------------------------------------------------------------------- instance_name美元` _start()启动功能/ / / / ---------------------------------------------------------------------无效` instance_name美元` _start(void * C控制){ uint8 sfxidx;登记port_control * pcptr;pcptr =控制;如果(pcptr - >;portconfig [ 0 ]。actmode = =“Y”){ sfxidx = pcptr - >;portconfig [ 0 ]。自解压';` instance_name美元` _pcptr [ sfxidx ] = pcptr;开关(sfxidx){案例0:j1_reg8(` instance_name美元` _pixa_bitcount__control_aux_ctl_reg)| = 0x20;` instance_name美元` _isr_a_startex(&;` instance_name美元` _isr_a_isr);pcptr - >;dma_chan = ` instance_name美元` _dma_a_dmainitialize(1,1,hi16(cydev_sram_base),hi16(cydev_periph_base));pcptr - >;dma_tds [ 0 ] = cydmatdallocate();cydmatdsetconfiguration(pcptr - >;DMA_tds [ 0 ],pcptr - >;outbfrbytecnt,dma_disable_td,td_inc_src_adr);cydmatdsetaddress(pcptr - >;dma_tds [ 0 ],lo16((uint32)(pcptr - >;输出[ 0 ]。outbfrptr)),((lo16 UInt32)` instance_name美元` _pixa_pixel_u0__f0_reg));CyDmaChSetInitialTd(pcptr - >;dma_chan,pcptr - >;dma_tds [ 0 ]);断裂;1例:j1_reg8(` instance_name美元` _pixb_bitcount__control_aux_ctl_reg)| = 0x20;` instance_name美元` _isr_b_startex(&;` instance_name美元` _isr_b_isr);pcptr - >;dma_chan = ` instance_name美元` _dma_b_dmainitialize(1,1,hi16(cydev_sram_base),hi16(cydev_periph_base));pcptr - >;dma_tds [零] = cydmatdallocate();cydmatdsetconfiguration(pcptr - >;dma_tds [零],pcptr - >;outbfrbytecnt,dma_disable_td,td_inc_src_adr);cydmatdsetaddress(pcptr - >;dma_tds [零],lo16((uint32)(pcptr - >;输出[零]。outbfrptr)),((lo16 UInt32)` instance_name美元` _pixb_pixel_u0__f0_reg));CyDmaChSetInitialTd(pcptr - >;dma_chan,pcptr - >;dma_tds [ 0 ]);break;}开关(pcptr - >;portconfig [ 0 ]。型){案例:案例:pt_dmx pt_ren ` instance_name美元` _ctrl_control = 0b1111;断裂;案例:案例:pt_lpd6803 pt_ws2801 ` instance_name美元` _ctrl_control = 0b1001;` instance_name美元` _clock_setdivider(bclk__bus_clk__hz /(2000ul *(uint32)pcptr - >;portconfig [ 0 ]。速度));断裂;案例pt_tm180x:` instance_name美元` _ctrl_control = 0b1010;` instance_name美元` _clock_setdivider(bclk__bus_clk__hz /(6000ul *(uint32)pcptr - >;portconfig [ 0 ]。速度));突破;案例pt_tls3001:` instance_name美元`_ctrl_control = 0b1111;断裂;案例pt_ws281x:` instance_name美元` _ctrl_control = 0b1100;` instance_name美元` _clock_setdivider(bclk__bus_clk__hz /(10000ul *(uint32)pcptr - >;portconfig [ 0 ]。速度));断裂;默认:break;} } } // --------------------------------------------------------------------- / / / / ` instance_name美元` _isr_a_isr() -空闲/ / / / --------------------------------------------------------------------- cy_isr ISR(` instance_name美元` _isr_a_isr){ ` instance_name美元` _isr_a_clearpending();` instance_name美元` _pcptr [ 0 ] - >;portstate = port_state_done;}/ / / / / / ` --------------------------------------------------------------------- instance_name美元` _isr_b_isr() -空闲/ / / / --------------------------------------------------------------------- cy_isr ISR(` instance_name美元` _isr_b_isr){ ` instance_name美元` _isr_b_clearpending() ` instance_nam美元;E’PCPCTR〔1〕& gt; PNG组件 55.9 K |
|
|
|
谢谢Ed,那会很有帮助的!
|
|
|
|
只有小组成员才能发言,加入小组>>
740个成员聚集在这个小组
加入小组1984 浏览 1 评论
1747 浏览 1 评论
3525 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1676 浏览 6 评论
1453 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
239浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
143浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
334浏览 2评论
282浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
467浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 17:29 , Processed in 0.752255 second(s), Total 59, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191