Hello,
I use an FEZ Flea to control 7 WS2812B Leds and use the GHIElectronics.TinyCLR.Drivers.Worldsemi.WS2812 library.
When i run the following program
const int NumLed = 7;
private static int FTime = 2000;
static GpioController gpio = GpioController.GetDefault();
static GpioPin pin = gpio.OpenPin(FEZFlea.GpioPin.PA3);
static WS2812Controller leds = new WS2812Controller(pin, NumLed, WS2812Controller.DataFormat.rgb888);
static void Main()
{
while (true)
{
leds.SetColor(0, 0xFF, 0, 0);
leds.SetColor(1, 0, 0xFF, 0);
leds.SetColor(2, 0, 0, 0xFF);
leds.SetColor(3, 0, 0xFF, 0xFF);
leds.SetColor(4, 0xFF, 0, 0xFF);
leds.SetColor(5, 0xFF, 0xFF, 0);
leds.SetColor(6, 0x80, 0x80, 0x80);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0xFF, 0xFF, 0);
leds.SetColor(1, 0xFF, 0, 0);
leds.SetColor(2, 0, 0xFF, 0);
leds.SetColor(3, 0, 0, 0xFF);
leds.SetColor(4, 0, 0xFF, 0xFF);
leds.SetColor(5, 0xFF, 0, 0xFF);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0xFF, 0, 0xFF);
leds.SetColor(1, 0xFF, 0xFF, 0);
leds.SetColor(2, 0xFF, 0, 0);
leds.SetColor(3, 0, 0xFF, 0);
leds.SetColor(4, 0, 0, 0xFF);
leds.SetColor(5, 0, 0xFF, 0xFF);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0, 0xFF, 0xFF);
leds.SetColor(1, 0xFF, 0, 0xFF);
leds.SetColor(2, 0xFF, 0xFF, 0);
leds.SetColor(3, 0xFF, 0, 0);
leds.SetColor(4, 0, 0xFF, 0);
leds.SetColor(5, 0, 0, 0xFF);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0, 0, 0xFF);
leds.SetColor(1, 0xFF, 0xFF, 0xFF);
leds.SetColor(2, 0xFF, 0, 0xFF);
leds.SetColor(3, 0xFF, 0xFF, 0);
leds.SetColor(4, 0xFF, 0, 0);
leds.SetColor(5, 0, 0xFF, 0);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0, 0xFF, 0);
leds.SetColor(1, 0, 0, 0xFF);
leds.SetColor(2, 0, 0xFF, 0xFF);
leds.SetColor(3, 0xFF, 0, 0xFF);
leds.SetColor(4, 0xFF, 0xFF, 0);
leds.SetColor(5, 0xFF, 0, 0);
leds.Flush();
Thread.Sleep(FTime);
}
}
I get the following error
Looking for a device on transport ‘USB’.
Found device port ‘USB’ with ID ‘988abf6a-59e6-4d25-8437-5e66ef983e64’ for transport ‘Usb’.
Starting device deployment.
Attempting to connect to device ‘USB:SC13048’: iteration 0.
Opening port ‘\?\usb#vid_1b9f&pid_5012#6&dbbffb&0&7#{c13bcfe9-5e84-4187-9baa-45597ffcbb6f}’.
Attaching debugger engine.
Debugger engine attached.
Generating device specific assemblies.
- TestWS2812 v1.0.0.0 with size 1.748 bytes at ‘D:\Users\Klaus\Qsync\ownCloud\TinyCLR\TinyCLR21Projekte_Testprojekte\TestWS2812\bin\Debug\pe\TestWS2812.pe’.
- mscorlib v2.1.0.0 with size 72.428 bytes at ‘D:\Users\Klaus\Qsync\ownCloud\TinyCLR\TinyCLR21Projekte_Testprojekte\TestWS2812\bin\Debug\pe\mscorlib.pe’.
- GHIElectronics.TinyCLR.Devices.Gpio v2.1.0.0 with size 4.828 bytes at ‘D:\Users\Klaus\Qsync\ownCloud\TinyCLR\TinyCLR21Projekte_Testprojekte\TestWS2812\bin\Debug\pe\GHIElectronics.TinyCLR.Devices.Gpio.pe’.
- GHIElectronics.TinyCLR.Drivers.Worldsemi.WS2812 v2.1.0.0 with size 1.312 bytes at ‘D:\Users\Klaus\Qsync\ownCloud\TinyCLR\TinyCLR21Projekte_Testprojekte\TestWS2812\bin\Debug\pe\GHIElectronics.TinyCLR.Drivers.Worldsemi.WS2812.pe’.
- GHIElectronics.TinyCLR.Native v2.1.0.0 with size 6.156 bytes at ‘D:\Users\Klaus\Qsync\ownCloud\TinyCLR\TinyCLR21Projekte_Testprojekte\TestWS2812\bin\Debug\pe\GHIElectronics.TinyCLR.Native.pe’.
Total deployment size is 86.472 bytes.
Incrementally deploying assemblies to the device:
Allocating assemblies:
- Address: 0x08047000 => mscorlib
- Address: 0x08058AEC => GHIElectronics.TinyCLR.Native
- Address: 0x0805A2F8 => GHIElectronics.TinyCLR.Devices.Gpio
- Address: 0x0805B5D4 => TestWS2812
- Address: 0x0805BCA8 => GHIElectronics.TinyCLR.Drivers.Worldsemi.WS2812
Deploying assemblies:
- Erasing sector 41 (2.048 bytes).
- Writing sector 41 (2.048 bytes).
- Erasing sector 42 (2.048 bytes).
- Writing sector 42 (2.048 bytes).
- Writing sector 43 (480 bytes).
Assemblies deployed. There are 137.784 bytes left in the deployment area.
Restarting interpreter.
Attaching to device.
Waiting for device to initialize.
Found debugger!
Create TS.
Loading Deployment Assemblies.
Attaching deployed file.
Assembly: mscorlib (2.1.0.0) Attaching deployed file.
Assembly: GHIElectronics.TinyCLR.Native (2.1.0.0) Attaching deployed file.
Assembly: GHIElectronics.TinyCLR.Devices.Gpio (2.1.0.0) Attaching deployed file.
Assembly: TestWS2812 (1.0.0.0) Resolving.
Link failure: some assembly references cannot be resolved!!
Assembly: TestWS2812 (1.0.0.0) needs assembly ‘GHIElectronics.TinyCLR.Drivers.Worldsemi.WS2812’ (2.1.0.0)
Error: a3000000
Waiting for debug commands…
Das Programm “[4] TinyCLR application: Verwaltet” wurde mit Code 0 (0x0) beendet.
If I change the program like this
then the program will run without errors.
const int NumLed = 7;
private static int FTime = 2000;
static GpioController gpio = GpioController.GetDefault();
static GpioPin pin = gpio.OpenPin(FEZFlea.GpioPin.PA3);
static WS2812Controller leds = new WS2812Controller(pin, NumLed, WS2812Controller.DataFormat.rgb888);
static void Main()
{
while (true)
{
leds.SetColor(0, 0xFF, 0, 0);
leds.SetColor(1, 0, 0xFF, 0);
leds.SetColor(2, 0, 0, 0xFF);
leds.SetColor(3, 0, 0xFF, 0xFF);
leds.SetColor(4, 0xFF, 0, 0xFF);
leds.SetColor(5, 0xFF, 0xFF, 0);
leds.SetColor(6, 0x80, 0x80, 0x80);
leds.Flush();
Thread.Sleep(FTime);
leds.SetColor(0, 0xFF, 0xFF, 0);
leds.SetColor(1, 0xFF, 0, 0);
leds.SetColor(2, 0, 0xFF, 0);
leds.SetColor(3, 0, 0, 0xFF);
leds.SetColor(4, 0, 0xFF, 0xFF);
leds.SetColor(5, 0xFF, 0, 0xFF);
leds.Flush();
Thread.Sleep(FTime);
//leds.SetColor(0, 0xFF, 0, 0xFF);
//leds.SetColor(1, 0xFF, 0xFF, 0);
//leds.SetColor(2, 0xFF, 0, 0);
//leds.SetColor(3, 0, 0xFF, 0);
//leds.SetColor(4, 0, 0, 0xFF);
//leds.SetColor(5, 0, 0xFF, 0xFF);
//leds.Flush();
//Thread.Sleep(FTime);
leds.SetColor(0, 0, 0xFF, 0xFF);
leds.SetColor(1, 0xFF, 0, 0xFF);
leds.SetColor(2, 0xFF, 0xFF, 0);
leds.SetColor(3, 0xFF, 0, 0);
leds.SetColor(4, 0, 0xFF, 0);
leds.SetColor(5, 0, 0, 0xFF);
leds.Flush();
Thread.Sleep(FTime);
//leds.SetColor(0, 0, 0, 0xFF);
//leds.SetColor(1, 0xFF, 0xFF, 0xFF);
//leds.SetColor(2, 0xFF, 0, 0xFF);
//leds.SetColor(3, 0xFF, 0xFF, 0);
//leds.SetColor(4, 0xFF, 0, 0);
//leds.SetColor(5, 0, 0xFF, 0);
//leds.Flush();
//Thread.Sleep(FTime);
leds.SetColor(0, 0, 0xFF, 0);
leds.SetColor(1, 0, 0, 0xFF);
leds.SetColor(2, 0, 0xFF, 0xFF);
leds.SetColor(3, 0xFF, 0, 0xFF);
leds.SetColor(4, 0xFF, 0xFF, 0);
leds.SetColor(5, 0xFF, 0, 0);
leds.Flush();
Thread.Sleep(FTime);
}
}
At least 2 instruction blocks must be commented out.
What’s the problem here.
Thanks for your Ideas
Klaus