在LCD中显示十六进制值

时间:2015-07-04 14:03:27

标签: atmega avr-gcc lcd

我为Atmega328编写了LCD接口程序(虽然有可用的库,我想从头开始编写)。但有两个问题。 1.有时LCD显示不正确。只看到几条。我最终重置了一次或两次。 2.我无法使用displayOneByteHexValue()显示十六进制值。然而,ASCII转换是正确的,我可以在Atmel模拟器中看到。下面是代码。我正在使用Atmel Studio 6.2

left

下面是我得到的显示器的图像。无法解决问题所在。 Result

1 个答案:

答案 0 :(得分:1)

是的,在我更改了以下功能后,它工作正常。谢谢您的帮助。

gulp.task('serve', ['watch'], function () {
  browserSyncInit([
    paths.tmp + '/serve',
    paths.src
  ], [
    paths.tmp + '/serve/{app,components}/**/*.css',
    paths.tmp + '/serve/{app,components}/**/*.js',
    paths.src + 'src/assets/images/**/*',
    paths.tmp + '/serve/*.html',
    paths.tmp + '/serve/{app,components}/**/*.html',
    paths.src + '/{app,components}/**/*.html'
  ]);
});

gulp.task('serve:dist', ['build'], function () {
  browserSyncInit(paths.dist);
});

gulp.task('serve:e2e', ['inject'], function () {
  browserSyncInit([paths.tmp + '/serve', paths.src], null, []);
});

gulp.task('serve:e2e-dist', ['build'], function () {
  browserSyncInit(paths.dist, null, []);
});

我进一步优化了代码,下面是完整的工作代码,其中包含从main调用的小型演示函数。

void displayOneByteHexValue(unsigned char rowNum, unsigned char pos, char data)
{
    char temp;
    setRowAndColumnPositionOnDisplay(rowNum,pos);
    temp = convertHigherNibbleToASCIIValue(data);
    writeCharToLCD(temp);
    temp = convertLowerNibbleToASCIIValue(data);
    writeCharToLCD(temp);

}