From 4baef6078163edf6ad761e37d74dbf9330f9670b Mon Sep 17 00:00:00 2001 From: joe Date: Sat, 20 Sep 2025 16:31:48 +0200 Subject: c --- Makefile | 59 ++++++++++++++++++++++---- esp/halfcab/halfcab.ino | 100 -------------------------------------------- src/c_halfcab.c | 62 +++++++++++++++++++++++++++ src/c_halfcab.h | 53 +++++++++++++++++++++++ src/esp/halfcab/halfcab.ino | 100 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 267 insertions(+), 107 deletions(-) delete mode 100644 esp/halfcab/halfcab.ino create mode 100644 src/c_halfcab.c create mode 100644 src/c_halfcab.h create mode 100644 src/esp/halfcab/halfcab.ino diff --git a/Makefile b/Makefile index 8f6cc11..9a77d03 100644 --- a/Makefile +++ b/Makefile @@ -16,20 +16,29 @@ # # GNU Makefile -default: esp +default: debug + +SHELL := /bin/sh +OS = $(shell /usr/bin/uname) ESP_DIR = esp/halfcab/ OBJ_DIR = obj/ SRC_DIR = src/ -TRGT_DIR = ./ +TRG_DIR = ./ ESP_FQBN = esp8266:esp8266:d1_mini ESP_DEV = /dev/ttyUSB0 -TRGT_NAME = hc +TARGET = hc ESP_NAME = halfcab.ino +SRC_NAME = c_halfcab + +SRCS = $(addprefix ${SRC_DIR}, $(addsuffix .c, ${SRC_NAME})) +INCS = $(addprefix ${SRC_DIR}, $(addsuffix .h, ${SRC_NAME})) +OBJS = $(patsubst ${SRC_DIR}%.c, ${OBJ_DIR}%.c.o, ${SRCS}) + ARDUINO = arduino-cli CC = cc CFLAGS = -std=c89 @@ -40,16 +49,52 @@ CFLAGS += -pedantic CFLAGS += -march=haswell CFLAGS += -O2 CFLAGS += -pipe +# ifeq (${OS}, Linux) +# CFLAGS += -D_GNU_SOURCE +# endif + +ifeq (${OS}, Linux) +CINCS = -isystem /usr/include +endif + +MKDIR = mkdir -p +RMDIR = rmdir +RM = rm -rf + +${OBJ_DIR}%.c.o: ${SRC_DIR}%.c ${INCS} Makefile + ${CC} ${CFLAGS} -c ${CINCS} -o $@ $< + +${OBJ_DIR}: + ${MKDIR} ${OBJ_DIR} + +${TRG_DIR}${TARGET}: ${OBJ_DIR} ${OBJS} + ${CC} ${CFLAGS} -o $@ ${OBJS} ${LDFLAGS} + +debug: CFLAGS += -O0 +debug: CFLAGS += -g3 +debug: all + +asan: CFLAGS += -O0 +asan: CFLAGS += -g3 +asan: CFLAGS += -fsanitize=address +asan: all + +clean: + ${RM} ${OBJS} vgcore.* ${TARGET}.core ${TARGET} ${OBJ_DIR} esp: - ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${ESP_DIR} - ${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${ESP_DIR} + ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${SRC_DIR}${ESP_DIR} + ${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${SRC_DIR}${ESP_DIR} attach: - ${ARDUINO} board attach -p ${ESP_DEV} -b ${ESP_FQBN} ${ESP_DIR}${ESP_NAME} + ${ARDUINO} board attach -p ${ESP_DEV} -b ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}${ESP_NAME} mon: ${ARDUINO} monitor -p ${ESP_DEV} -b ${ESP_FQBN} --config 115200 --config 'rts=off' --config 'dtr=off' --quiet +all: esp ${TRG_DIR}${TARGET} + +run: debug + ${TRG_DIR}${TARGET} -.PHONY: esp attach mon +.PHONY: esp attach mon hc diff --git a/esp/halfcab/halfcab.ino b/esp/halfcab/halfcab.ino deleted file mode 100644 index b5a0d49..0000000 --- a/esp/halfcab/halfcab.ino +++ /dev/null @@ -1,100 +0,0 @@ -/* - * ===================== - * ==== =============== - * ===================== - * === === ==== == - * ==== == == = = - * ==== == = == = - * ==== == = == ==== - * ==== == = == = = - * = = === ==== == - * == ================ - * ===================== - * - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright (c) 2025, joe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the organization nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * halfcab: eps/halfcab.ino - * Sat, 20 Sep 2025 00:17:38 +0200 - * joe - * - * this is going straight to the esp - */ - -#include - -#define DATA_PIN D2 -#define NUM_LEDS 60 -#define BRIGHTNESS 254 -#define LED_TYPE WS2812B -#define COLOR_ORDER GRB - -#define BLACK CRGB(0, 0, 0) -#define RED CRGB(255, 0, 0) -#define GRUV CRGB(255, 80, 0) - -CRGB leds[NUM_LEDS]; - -void -setup(void) -{ - uint8_t i; - - FastLED.addLeds(leds, NUM_LEDS); - FastLED.setBrightness(BRIGHTNESS); - FastLED.clear(); - FastLED.show(); - i = 0; - while (i < NUM_LEDS) { - leds[i] = GRUV; - i++; - } - FastLED.show(); - // delay(50); - // while (i < 255) { - // FastLED.setBrightness(i); - // FastLED.show(); - // delay(100); - // i += 10; - // } - // i = 0; - // while (i < NUM_LEDS) { - // leds[i] = BLACK; - // i++; - // } - // FastLED.show(); -} - -void -loop(void) -{ - delay(10); -} diff --git a/src/c_halfcab.c b/src/c_halfcab.c new file mode 100644 index 0000000..68943f0 --- /dev/null +++ b/src/c_halfcab.c @@ -0,0 +1,62 @@ +/* + * ===================== + * ==== =============== + * ===================== + * === === ==== == + * ==== == == = = + * ==== == = == = + * ==== == = == ==== + * ==== == = == = = + * = = === ==== == + * == ================ + * ===================== + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 2025, joe + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the organization nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * halfcab: src/c_halfcab.c + * Sat, 20 Sep 2025 16:24:57 +0200 + * joe + * + * the main + */ + +#include + +int +main +(int argc, + const char* argv[]) +{ + (void)argc; + (void)argv; + return (EXIT_SUCCESS); +} diff --git a/src/c_halfcab.h b/src/c_halfcab.h new file mode 100644 index 0000000..f938c8f --- /dev/null +++ b/src/c_halfcab.h @@ -0,0 +1,53 @@ +/* + * ===================== + * ==== =============== + * ===================== + * === === ==== == + * ==== == == = = + * ==== == = == = + * ==== == = == ==== + * ==== == = == = = + * = = === ==== == + * == ================ + * ===================== + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 2025, joe + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the organization nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * halfcab: src/c_halfcab.h + * Sat, 20 Sep 2025 16:24:57 +0200 + * joe + */ + +#ifndef __C_HALFCAB_H__ +#define __C_HALFCAB_H__ + +#endif /* __C_HALFCAB_H__ */ diff --git a/src/esp/halfcab/halfcab.ino b/src/esp/halfcab/halfcab.ino new file mode 100644 index 0000000..5af220d --- /dev/null +++ b/src/esp/halfcab/halfcab.ino @@ -0,0 +1,100 @@ +/* + * ===================== + * ==== =============== + * ===================== + * === === ==== == + * ==== == == = = + * ==== == = == = + * ==== == = == ==== + * ==== == = == = = + * = = === ==== == + * == ================ + * ===================== + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 2025, joe + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the organization nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * halfcab: esp/halfcab/halfcab.ino + * Sat, 20 Sep 2025 00:17:38 +0200 + * joe + * + * this is going straight to the esp + */ + +#include + +#define DATA_PIN D2 +#define NUM_LEDS 60 +#define BRIGHTNESS 254 +#define LED_TYPE WS2812B +#define COLOR_ORDER GRB + +#define BLACK CRGB(0, 0, 0) +#define RED CRGB(255, 0, 0) +#define GRUV CRGB(255, 80, 0) + +CRGB leds[NUM_LEDS]; + +void +setup(void) +{ + uint8_t i; + + FastLED.addLeds(leds, NUM_LEDS); + FastLED.setBrightness(BRIGHTNESS); + FastLED.clear(); + FastLED.show(); + i = 0; + while (i < NUM_LEDS) { + leds[i] = GRUV; + i++; + } + FastLED.show(); + // delay(50); + // while (i < 255) { + // FastLED.setBrightness(i); + // FastLED.show(); + // delay(100); + // i += 10; + // } + // i = 0; + // while (i < NUM_LEDS) { + // leds[i] = BLACK; + // i++; + // } + // FastLED.show(); +} + +void +loop(void) +{ + delay(10); +} -- cgit v1.2.3