小弟遇到下面的一个问题,不知哪位大侠可以提供帮助。
问题描述:
一个数字信号通过8个独立的信道向单片机传输。
单片机内有个一个独立运行的分辨率很高的定时器可以利用。
当每个信号改变时,系统都会记下当前的时间。
每个输入信号的改变时,都会触发中断
8个输入信号的状态可以通过一个寄存器读取出来
在中断中,需要记录输入信号的状态以及当前的时刻到一个数据中。 这个数据的赋予通过一个任务来给出。
在这个任务中,每个输入的信号都应该保持成一个队列。 由数据可得知的状态改变和改变时间信息可以记录到这个队列当中。记录所花费的时间应该保持常数。
以上是问题的描述,需要一个解决的办法。 我的目前理解是否是这个信号接着8个I/O口,当有信号从0变成1或者从1变成0的时候,就触发I/O中断,记下定时器当前的时间和当前I/O口的状态。然后把它储存在一个数据结构中。
中断任务中的队列应该怎么处理?压栈还是? 后面一句记录所花费的时间保持常数是什么意思?
哪位大侠可以帮忙啊,谢谢了啊!!! |