请问bluelab4.0平台下关于BC5模块内DSP控制PIO的问题.
我想用BC5模块内DSP去控制PIO,但是不知道怎样去控制,那位高手有这方面的经验,请赐教。
期待大侠帮助。
谢谢,这个方法我试过了,native模式一个PioSet()大约为25Us。还是没达到我需要的时序要求。
你可以使用native模式,用PioSet控制PIO口速度快很多
用pio模拟数据通信接口?低速还行。首先应该看下datasheet,dsp是否能控制pio,我估计不行。
我想请问一下楼主的这个问题解决了没有?如果解决了,是如何解决的。因为我也遇到这方面的问题了。我也希望PioSet(),PioSetDir()这两个函数的执行速率快一点。期待楼主的回复啊!
以PIO12为例,C程序里面设置:
PioSetDir(1<<12,0);
PioSetKalimba(1<<12,0);
PioSetDirKalimba(1<<12,0); startKalimba();
DSP程序:
//read pio state
//This module used register r1,r2
//return r2
.MODULE $M.read_pio_state;
.CODESEGMENT PM;
.DATASEGMENT DM;
$read_pio_state:
// push rLink onto stack
$push_rLink_macro;
r2 = M[$PIO_IN];
r2 = r1 AND r2;
M[$read_pio_result] = r2;
// pop rLink from stack
jump $pop_rLink_and_rts;
.ENDMODULE;
//set pio to high
//This module used register r1,r2
.MODULE $M.set_pio_high;
.CODESEGMENT PM;
.DATASEGMENT DM;
$set_pio_high:
// push rLink onto stack
$push_rLink_macro;
r3 = r1;
r2 = 0xffffff;
r2 = r2 XOR r1; //bit reverse.
r1 = M[$PIO_DIR];
r1 = r1 AND r2;
M[$PIO_DIR] = r1;
r1 = r3;
r2 = M[$PIO_OUT];
r2 = r2 OR r1;
M[$PIO_OUT] = r2;
// pop rLink from stack
jump $pop_rLink_and_rts;
.ENDMODULE;
//set pio to low
//This module used register r1,r2
.MODULE $M.set_pio_low;
.CODESEGMENT PM;
.DATASEGMENT DM;
$set_pio_low:
// push rLink onto stack
$push_rLink_macro;
r2 = M[$PIO_DIR];
r2 = r2 OR r1;
M[$PIO_DIR] = r2;
r2 = 0xffffff;
r2 = r2 XOR r1; //bit reverse.
r1 = M[$PIO_OUT];
r1 = r1 AND r2;
M[$PIO_OUT] = r1;
// pop rLink from stack
jump $pop_rLink_and_rts;
.ENDMODULE;
相关热词搜索:数据通信
上一篇:请教蓝牙搜索服务失败
下一篇:蓝牙单芯片耳机方案设计
评论排行
- ·HFSS天线设计入门中文视频教程(1)
- ·CST2013破解文件,和谐万岁(1)
- ·关于打不开ADS帮助文档(1)
- ·基于左手介质的小型微带天线(1)
- ·HFSS10中仿真出现的错误(1)
- ·HFSS仿真螺旋天线模型的脚本程序(1)
- ·HFSS能仿真线圈天线吗?(1)
- ·Momentum中无法设置Substrate?(1)
- ·大家ADS2008中PIN二极管如何设定啊(1)
- ·请教ADS中的MSub个参数的意思(1)
- ·HFSS中怎么设置一个平面波激励啊(1)
- ·Hfss局部加密网格(1)
- ·HFSS使用心得(1)
- ·HFSS设计微带发夹型滤波器,求耦合系数请教(1)
- ·Microstrip Antenna Technology (Ke...(0)
- ·跟大家分享个宽频带90度功分移相网络(0)
- ·求教ADS中倍频器与频率源设置(0)
- ·30多个ADS视频教程在线观看(0)
- ·微波射频电路仿真100例(0)
- ·射频功率放大器设计资料(0)