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