LCD的延迟和精确的计时器中断

时间:2018-08-11 19:06:03

标签: c avr avr-gcc atmelstudio

我正在开发一种系统,该系统允许设置一个方波周期,然后在设置好之后,便以设置的周期驱动带有方波的led。 无论如何,如果我设置周期,则输出方波会不一致,周期周期会有很大的变化。

我使用的是标准CTC计时器,因为我需要多个输出,所以我不能使用单个pwm输出。我还使用了我经常使用的一段代码,所以我确定这段代码可以正常工作。

if(oldtack!=tack)
{
    oldtack=tack;
							
	if((oldtack%(period/2))==0)
	{
		PORTB^=((1<<PORTB0)|(1<<PORTB1)|(1<<PORTB2)|(1<<PORTB3)|(1<<PORTB4)|(1<<PORTB5));
	}
}

以上是我经常使用的,已经过测试并且很确定能正常工作的代码。

与通常的代码唯一不同的是LCD。

我正在使用I2C LCD显示器和我在互联网上找到的图书馆。恐怕此LCD及其库会影响系统运行周期的精度,我需要尽可能精确。

你能帮我吗?

这里是整个代码:https://pastebin.com/J6zCzcqi

编辑 我正在使用此库:https://davidegironi.blogspot.com/2013/06/an-avr-atmega-library-for-hd44780-based.html

0 个答案:

没有答案