定时器外部计数配置

Discussions on BLE related products, including standard BLE devices, BLE mesh, and Apple HomeKit products
Post Reply
fengpeng_99
Posts: 5
Joined: Tue Jul 16, 2019 9:47 am

Thu Sep 12, 2019 1:47 pm

前几天问GPIO外部中断响应速度,回答说是很快的。但是我实际试验做下来相差甚远。现在我想改定时器由外部gpio口触发而达到计数的目的。看了下资料,貌似有这个功能,但是资料讲的太抽象了,不知道如何使用。请能具体讲下如何配置?gpio口是否必须是指定的口?给几句代码例子也行啊。
贵司资料要是能写的朴实一些,这个芯片也许用的人会多一些,不要写的谜语一样,让人看着字母猜啊猜!建议贵司相关人员看下st公司的手册。
哦,忘了说,我是用8266芯片!

下午试了下,已经配置成功定时器计数io口功能
reg_irq_mask |= FLD_IRQ_TMR0_EN;
reg_tmr0_tick = 0; //claer counter
reg_tmr0_capt = 10000;

gpio_set_func(GPIO_PE4, AS_GPIO); //enable GPIO func
gpio_set_input_en(GPIO_PE4, 1); //enable input
gpio_set_output_en(GPIO_PE4, 0); //disable output

gpio_setup_up_down_resistor(GPIO_PE4, PM_PIN_UP_DOWN_FLOAT); //open pull up resistor

reg_gpio_irq_risc1_en(GPIO_PE4);

reg_tmr_ctrl |= (0x01<<1);
reg_tmr_ctrl |= FLD_TMR0_EN; //start timer

可以计数。
现在问题是我输入10Hz的方波,如果占空比小于40%时,计数就会丢,占空比越小计数丢的越多。如何解决?
TL_shengang.ding
Posts: 13
Joined: Wed May 10, 2017 1:51 pm

Thu Sep 12, 2019 7:14 pm

如果只是采集GPIO输入的一组特定波形数据,建议你打开GPIO 中断后直接在GPIO中断里进行GPIO的高低电平的数tick时间。进入中断记录一下startTimer = clock_time(); 电平切换的时候再记录一下CurrTimer = clock_time(); 以此进行一组数据波形数据的采集。
Post Reply