没有匹配功能可调用'CFastLED :: addLeds(CRGB [6],int)

问题描述 投票:0回答:2

我正在尝试在带有ATmega328板的Arduino Nano上执行此ino代码(LED灯),但是我收到了<“错误。

任何想法可能是什么原因?我使用的是Ubuntu 14.04。

#include "FastLED.h" #define NUM_LEDS 6 CRGB leds[NUM_LEDS]; void setup() { LEDS.addLeds<TM1803>(leds, NUM_LEDS); }

c++ arduino ubuntu-14.04
2个回答
1
投票
我没有使用Arduino的经验,但这是我在阅读FastLED.h之后仍不了解的内容。

[TM1803declared as

template<uint8_t DATA_PIN, EOrder RGB_ORDER> class TM1803 : public TM1803Controller400Khz<DATA_PIN, RGB_ORDER> {};

因此LEDS.addLeds()应该以某种方式调用these two overloads中的一个:

template<template<uint8_t DATA_PIN, EOrder RGB_ORDER> class CHIPSET, uint8_t DATA_PIN, EOrder RGB_ORDER> static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) { static CHIPSET<DATA_PIN, RGB_ORDER> c; return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset); } template<template<uint8_t DATA_PIN, EOrder RGB_ORDER> class CHIPSET, uint8_t DATA_PIN> static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) { static CHIPSET<DATA_PIN, RGB> c; return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset); }

所以您必须在模板参数中指定DATA_PINDATA_PINRGB_ORDER,无论它们是什么意思:

LEDS.addLeds<TM1803, SOME_DATA_PIN, SOME_RGB_ORDER>(leds, NUM_LEDS); LEDS.addLeds<TM1803, SOME_DATA_PIN>(leds, NUM_LEDS);


0
投票
我有相同的问题和错误。上面的内容帮助我编辑了代码,使其起作用。我必须为LED类型和数据引脚添加模板参数(以前从未听说过)。这是我的定义和代码:

#include <FastLED.h> //#define DEBUG 1 #define LED_TYPE WS2812 #define NUM_LEDS 64 #define DATA_PIN A14 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<LED_TYPE, DATA_PIN>(leds, NUM_LEDS); }

我使用WS2812作为猜测,因为我的矩阵LED是WS2812B-64。显然第一部分就足够了。
© www.soinside.com 2019 - 2024. All rights reserved.