嵌入式C GPIO问题

时间:2014-02-03 21:19:28

标签: c embedded

我在编程方面遇到麻烦,因为我是初学者,我正在尝试读入一个方形脉冲序列进入我的PIC单片机的一个数字GPIO引脚。我必须“采样”然后存储输入信号,以便我保存一堆1和0(可能在数组中)。我必须保存我得到的1和0的数量(以8,4包的方式采样)并计算1或0的平均数。

任何人都知道如何在C代码中开始实现这一目标?

2 个答案:

答案 0 :(得分:2)

我把它分解成碎片。写一些在循环中读取输入行的东西:

unsigned int input;

for (;;)  /* infinite loop */
{
   input = ReadInput();
   printf ("%d\n",input);
}

你必须为ReadInput()创建一些东西,希望你有一个你可以遵循的例子。这取决于您正在使用的PIC和正在读取的输入行。

一旦你看到它正确读取输入行,然后添加一个sleep()函数将其减慢到合理的值(你的采样率),将输入更改为数组(input[x++] = ReadInput();),并弄清楚如何你希望循环结束。但这会让你开始。

答案 1 :(得分:0)

如果我这样做,我可能会设置GPIO ISR处理程序,以便每次GPIO值改变时在GPIO引脚上获得一个中断,并且有一个并行计数的定时器。然后,如果更改了gpio值,则会触发中断并且您可以读取计时器并查看自上次GPIO更改以来经过了多长时间(然后您可以根据需要对其进行采样)。我认为这是最精确的解决方案。