Fehlermeldung *** glibc detected *** python: free(): invalid
@JenselBensel: Die Funktion ist statt der anderen setPixel-Funktion. Und wodurch die falschen Parameter entstehen, hatten wir hier ja schon mehrfach. Geh doch einfach mal von Hand Deine Schleifen durch und versuch zu verstehen, wie die LED-Nummern aus den Schleifenvariablen entstehen.
-
JenselBensel
- User
- Beiträge: 13
- Registriert: Freitag 29. Mai 2015, 11:13
Sorry für meine späte Antwort. Musste erstmal ein bisschen Abstand zu diesem Projekt nehmen.
Was haltet Ihr von dieser Lösung?
Was haltet Ihr von dieser Lösung?
Code: Alles auswählen
#!/usr/bin/env python
import time
from neopixel import *
# LED strip configuration:
LED_COUNT = 15 # Number of LED pixels.
LED_PIN = 18 # GPIO pin connected to the pixels (must support PWM!).
LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
LED_DMA = 5 # DMA channel to use for generating signal (try 5)
LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest
LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)
ZEIT = 800.0
FARBE = LED_BRIGHTNESS/4
FARBE2 = FARBE/4
# Define functions which animate LEDs in various ways.
def ledOff(strip, color):
for i in range((LED_COUNT)):
strip.setPixelColor(i, Color(0, 0, 0))
strip.show()
def ledKittfadein(strip, color, wait_ms=50):
for i in range(0, 255, 10):
for j in range(strip.numPixels()):
strip.setPixelColor(j, Color( i, 0, 0))
strip.show()
time.sleep(wait_ms/20000)
for i in range(255, -1, -5):
for j in range(strip.numPixels()):
strip.setPixelColor(j, Color( i, 0, 0))
strip.show()
time.sleep(wait_ms/20000)
ledOff(strip, color)
def ledKitt(strip, color, wait_ms=50):
# for x in range(1, LED_COUNT, 1):
for i in range(14, 0, -1):
y=i
strip.setPixelColor(i, color)
y=y+1
strip.setPixelColor(y, Color((FARBE), 0, 0))
strip.setPixelColor((y+1), Color((FARBE2), 0, 0))
strip.show()
time.sleep(wait_ms/ZEIT)
strip.setPixelColor((y+1), Color(0, 0, 0))
for j in range(0, 14, 1):
z=j
strip.setPixelColor(j, color)
z=z+1
strip.setPixelColor(z, Color(255, 0, 0))
strip.setPixelColor((z-1), Color((FARBE), 0, 0))
strip.setPixelColor((z-2), Color((FARBE2), 0, 0))
strip.show()
time.sleep(wait_ms/ZEIT)
strip.setPixelColor((z-1), Color(0, 0, 0))
strip.setPixelColor((z-2), Color(0, 0, 0))
# Main program logic follows:
if __name__ == '__main__':
# Create NeoPixel object with appropriate configuration.
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS)
# Intialize the library (must be called once before other functions).
strip.begin()
print 'Press Ctrl-C to quit.'
ledKittfadein(strip, Color(255, 0, 0))
while True:
ledKitt(strip, Color(255, 0, 0))
@JenselBensel: Sternchenimporte sind schlecht, Deine Einrückungen sind uneinheitlich (eingerückt wird immer mit 4 Leerzeichen), Du hast etliche unnötige Klammern, aber das schlimmste ist, das Grundproblem hat sich nicht geändert.
-
JenselBensel
- User
- Beiträge: 13
- Registriert: Freitag 29. Mai 2015, 11:13
Sirius3 hat geschrieben:@JenselBensel: Sternchenimporte sind schlecht,
Das habe ich so übernommen, mich aber auch nach dem Sinn gefragt. :K
Unerklärlich. Hab 4 Leerzeichen als Tab in Notepad++. :KDeine Einrückungen sind uneinheitlich (eingerückt wird immer mit 4 Leerzeichen),
Ich denke Du meinst die Klammern bei y+1 bzw. z-1, z-2...Du hast etliche unnötige Klammern,
aber das schlimmste ist, das Grundproblem hat sich nicht geändert.[/quote]
Ja stimmt. Jetzt taucht der Fehler erst beim beenden auf.
Aber nicht mehr im laufenden Betrieb.
Ich schreib jetzt mal meine Denkweise bei dem Script auf. Im Kopf schein ich so nicht darauf zu stoßen.
-
BlackJack
@JenselBensel: Lässt Du Dir Tabs mit vier Leerzeichen im Editor anzeigen oder verwendest Du dort tatsächlich *vier Leerzeichen* pro Ebene? Letzteres sollte man machen.
Es gibt auch noch Klammern um Konstanten die überflüssig sind.
Es gibt auch noch Klammern um Konstanten die überflüssig sind.
-
JenselBensel
- User
- Beiträge: 13
- Registriert: Freitag 29. Mai 2015, 11:13
Meistens lasse ich mir die vier Leerzeichen mit Tabs anzeigen. Letzteres mache ich eher selten oder nur in der Linux Shell.BlackJack hat geschrieben:@JenselBensel: Lässt Du Dir Tabs mit vier Leerzeichen im Editor anzeigen oder verwendest Du dort tatsächlich *vier Leerzeichen* pro Ebene? Letzteres sollte man machen.
Ok, das versuche ich gleich mal raus zubekommen.Es gibt auch noch Klammern um Konstanten die überflüssig sind.
-
JenselBensel
- User
- Beiträge: 13
- Registriert: Freitag 29. Mai 2015, 11:13
BlackJack hat geschrieben: Es gibt auch noch Klammern um Konstanten die überflüssig sind.
Zeile 21
