背景: 我目前正致力于为'Uncanny Eyes'制作Adafruit计划。我的目的是能够使用几个瞬间开关将静态图像绘制到一对1.5英寸的OLED上。
该程序使用Teensy 3.1或3.2。
我收到错误后现在卡住了
在函数'void drawEye(uint8_t,uint16_t)'中:uncannyEyes:146:错误: 无效类型'uint16_t {aka short unsigned int} [uint8_t {aka unsigned char}]'对于数组下标p = img [screenY] [screenX];
我是Stack Exchange社区的新用户,所以如果我做错了什么,我会道歉!
goatEye.h
标题#define SCREEN_HEIGHT 128
#define SCREEN_WIDTH 128
const uint16_t sclera[SCREEN_HEIGHT][SCREEN_WIDTH] = {};
const uint16_t polar[SCREEN_HEIGHT][SCREEN_WIDTH] = {};
没有数组数据,因为帖子将是MASSIVE
{{1}}
感谢您的帮助!
答案 0 :(得分:1)
变量${jetty.base}/webapps/
不是指针,它是img
,无法像unsigned short int
那样进行访问
将您的参数更改为p = img[screenY][screenX];
并像uint16_t* img
一样访问它,然后调用然后调用该函数p = img[screenY*screenX];
。
答案 1 :(得分:0)
问题在于:
void drawEye( // Renders one eye.
uint8_t e, // Eye array index; 0 or 1 for left/right
uint16_t img) { // Pointer to image data
函数drawEye
期待单个uint16_t
,而不是二维数组。因此,当您尝试获取它的数组索引时,会出现错误,因为它不是数组。
你需要像这样定义你的函数:
void drawEye( // Renders one eye.
uint8_t e, // Eye array index; 0 or 1 for left/right
const uint16_t img[SCREEN_HEIGHT][SCREEN_WIDTH]) { // Pointer to image data
并称之为:
if(digitalRead(2) == LOW) {
drawEye(0, sclera);
drawEye(1, sclera);
}