我一直致力于一个项目,我需要通过2x16 LCD显示屏显示数字输出。此外,我在程序中使用计时器中断。在增加中断之前,LCD工作没有缺陷。在我开始使用中断进行正确的时序维护之后,LCD显示屏开始显示奇怪的字符。我找不到解决此问题的正当理由。我正在使用LPC2148 ARM7TDMI-S控制器。编程是在keil SDE中开发的。这个问题可能是什么原因? 我在这里添加了一个应该在中断和LCD更新功能上执行的语句。
__irq void T0ISR(void) // interruption function
{
long int regVal;
regVal = T0IR; //Read current IR value
if(RUN_STATUS == 1)
{
if(Input>=90)
{
PWMMR2 = 7500; // T-ON=75% , Hence 75% Bright
PWMLER = (1<<2); // Update Latch Enable bit for PWMMR2
}
else
{
PWMMR2 = 3200; // T-ON=32% , Hence 32% Bright
PWMLER = (1<<2); // Update Latch Enable bit for PWMMR2
}
RUN_STATUS = RUN_OFF; // Turn off the status in order to maintain the sync b/w displaying and interrupting
}
void update_lcd() // update the status of LED
{
LCD_STRING("S.P: ");
LCD_STRING(SP); // prints setpoint in display
LCD_CMD(0xC0);
LCD_STRING(Ip); //prints input data in display
//delay(10);
LCD_CMD(0x01);
RUN_STATUS = RUN_ON; // Enable interruption's function after updating LCD
}