python结果保存到变量,python - 将while循环中的变量结果存储到字典(python) - 堆栈内存溢出...

我有一个在树莓派上运行的程序,其中有2个输入,一个1Hz信号和一个50Hz信号。 我正在记录从50Hz信号的上升沿到1Hz信号的上升沿所经过的时间,然后计算相位差。 我想用键来表示50Hz波形上升沿的当前时间,并且该值应该是相对于1Hz信号的相位差。

这是我的代码:

import pigpio

import time

import math

from datetime import datetime

counter = 0

1HZ_PIN = 23

50HZ_PIN = 24

pi = pigpio.pi()

d = {}

pi.set_mode(1HZ_PIN, pigpio.INPUT)

pi.set_pull_up_down(1HZ_PIN, pigpio.PUD_UP)

pi.set_mode(50HZ_PIN, pigpio.INPUT)

pi.set_pull_up_down(50HZ, pigpio.PUD_UP)

while True:

if pi.wait_for_edge(1HZ_PIN, pigpio.RISING_EDGE):

print 'PPS Rising edge'

t1 = datetime.now()

print t1

counter = 0

while pi.wait_for_edge(50HZ_PIN, pigpio.RISING_EDGE) and counter <50):

d = {}

counter = counter + 1

print 'Voltage Sinusoid rising edge'

print datetime.now()

x = datetime.now()

x.isoformat() # I added this line as you can't place datetime objects in a dictionary

elapsed_time = x - t1

elapsed_time_float = elapsed_time.total_seconds() # can't prerform arithmetic operations on datetime object

phase = elapsed_time_float / 0.02/360

d[x] = phase

我推测的最后一行将把每个记录的上升沿时间作为键,并将相应的相位差作为值。 但是,当我按预期方式打印列表时,字典中有50个键/值对,但它们与打印的上升沿时间不匹配。 是否有适当的方法可以将while循环中的变量放入字典中?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值