当前位置: 技术问答>linux和unix
问下关于定时器的问题
来源: 互联网 发布时间:2016-10-01
本文导语: 通过ARM的定时器输出3个波形,第一个波形跑90个周期,第二个波形由低到高,等到一个波形跑到第600个 第一个波形由高到低,反复这样执行。问有什么办法? | 找到了网上的资料,未验证,...
通过ARM的定时器输出3个波形,第一个波形跑90个周期,第二个波形由低到高,等到一个波形跑到第600个 第一个波形由高到低,反复这样执行。问有什么办法?
|
找到了网上的资料,未验证,楼主自行证实:
http://www.armfans.net/thread-1142-1-1.html
gpio口翻转速度
GPIO口翻转速度为:1.63(+/-0.1)MHz
汇编代码段:
ldr r4, =GPIO_PORTA_SEL
ldr r5, =0xFFFFFFFF
str r5, [r4]
ldr r4, =GPIO_PORTA_DIR
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =GPIO_PORTA_DATA
loop
ldr r5, =0x00000000
str r5, [r4]
ldr r5, =0xFFFFFFFF
str r5, [r4]
b loop
高速PWM翻转速度为:13.62(+/-0.1)MHz
汇编代码段:
ldr r4, =GPIO_PORTA_SEL
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =GPIO_PORTA_DIR
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =PWM3_CTRL
ldr r5, =0x00000001
str r5, [r4]
ldr r4, =PWM3_DIV
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =PWM_ENABLE
ldr r5, =0xFFFFFFFF
str r5, [r4]
loop
ldr r4, =PWM3_DATA
ldr r5, =0x00005555
str r5, [r4]
b loop
http://www.armfans.net/thread-1142-1-1.html
gpio口翻转速度
GPIO口翻转速度为:1.63(+/-0.1)MHz
汇编代码段:
ldr r4, =GPIO_PORTA_SEL
ldr r5, =0xFFFFFFFF
str r5, [r4]
ldr r4, =GPIO_PORTA_DIR
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =GPIO_PORTA_DATA
loop
ldr r5, =0x00000000
str r5, [r4]
ldr r5, =0xFFFFFFFF
str r5, [r4]
b loop
高速PWM翻转速度为:13.62(+/-0.1)MHz
汇编代码段:
ldr r4, =GPIO_PORTA_SEL
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =GPIO_PORTA_DIR
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =PWM3_CTRL
ldr r5, =0x00000001
str r5, [r4]
ldr r4, =PWM3_DIV
ldr r5, =0x00000000
str r5, [r4]
ldr r4, =PWM_ENABLE
ldr r5, =0xFFFFFFFF
str r5, [r4]
loop
ldr r4, =PWM3_DATA
ldr r5, =0x00005555
str r5, [r4]
b loop
|
我想可以使用arm的pwm输出功能
我的硬件基础差,只是听说可以把GPIO的10变化变成类似模拟信号的波形
大意是接一个电容,pwm的频率可以控制影响电容的电压或者电流,产生类似模拟信号的波形
我的硬件基础差,只是听说可以把GPIO的10变化变成类似模拟信号的波形
大意是接一个电容,pwm的频率可以控制影响电容的电压或者电流,产生类似模拟信号的波形
|
如果频率不高的话,可以用系统定时器。波形由高到低,需要D/A。
|
高电压到低电平跳变,即1变成0,就是你需要的波形 :)