nothings / stb

stb single-file public domain libraries for C/C++

Home Page:https://twitter.com/nothings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

problem in reading libraries

akremkhadhraoui opened this issue · comments

#include <ti/drivers/GPIO.h>
#include <stdint.h>
#include <stdbool.h>
#include <ti/drivers/ADC.h>
#include <ti/sysbios/knl/Clock.h>
#include <stdio.h>

#define LED1_PIN IOID_9
#define LED2_PIN IOID_10
#define LED3_PIN IOID_11
#define POT1_PIN IOID_4
#define POT2_PIN IOID_5
#define BUTTON_PIN IOID_2

#define MAX_PATTERN 3

uint32_t blink_speed = 100;
uint8_t brightness;
uint8_t pattern = 1;
bool previousButtonState = false;
uint32_t previousButtonTime = 0;

ADC_Handle adc;

void setup() {
GPIO_init();
ADC_init();

GPIO_setConfig(LED1_PIN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(LED2_PIN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(LED3_PIN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(BUTTON_PIN, GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_FALLING);
GPIO_setCallback(BUTTON_PIN, changePattern);

ADC_Params adcParams;
ADC_Params_init(&adcParams);
adc = ADC_open(POT1_PIN, &adcParams);

GPIO_enableInt(BUTTON_PIN);

startClock(); // Start the clock

}

void startClock() {
Clock_Params clockParams;
Clock_Params_init(&clockParams);
clockParams.period = 0; // One-shot clock
clockParams.startFlag = TRUE; // Start the clock immediately
Clock_Handle hClock;
Clock_construct(&hClock, NULL, 0, &clockParams);
}

void loop() {
blink_speed = map(ADC_convertToMicroVolts(ADC_convert(adc, NULL)), 0, 3300, 1000, 100);
brightness = map(ADC_convertToMicroVolts(ADC_convert(adc, NULL)), 0, 3300, 0, 255);

switch (pattern) {
    case 1:
        pattern1();
        break;
    case 2:
        pattern2();
        break;
    case 3:
        pattern3();
        break;
}

printf("Blink Speed: %d ms, Brightness: %d, Pattern: %d\n", blink_speed, brightness, pattern);
Clock_sleep(blink_speed * 1000); // Delay in milliseconds

}

void pattern1() {
GPIO_write(LED1_PIN, brightness);
GPIO_write(LED2_PIN, brightness);
GPIO_write(LED3_PIN, brightness);
Clock_sleep(blink_speed * 1000);
GPIO_write(LED1_PIN, 0);
GPIO_write(LED2_PIN, 0);
GPIO_write(LED3_PIN, 0);
}

void pattern2() {
GPIO_write(LED1_PIN, brightness);
Clock_sleep(blink_speed * 1000);
GPIO_write(LED1_PIN, 0);
GPIO_write(LED2_PIN, brightness);
Clock_sleep(blink_speed * 1000);
GPIO_write(LED2_PIN, 0);
GPIO_write(LED3_PIN, brightness);
Clock_sleep(blink_speed * 1000);
GPIO_write(LED3_PIN, 0);
}

void pattern3() {
GPIO_write(LED1_PIN, brightness);
GPIO_write(LED3_PIN, brightness);
Clock_sleep(blink_speed * 1000);
GPIO_write(LED1_PIN, 0);
GPIO_write(LED2_PIN, brightness);
GPIO_write(LED3_PIN, 0);
Clock_sleep(blink_speed * 1000);
}

void changePattern(uint_least8_t index) {
bool buttonState = GPIO_read(BUTTON_PIN);
uint32_t currentTime = Clock_getTicks();

if (buttonState != previousButtonState && currentTime - previousButtonTime > 50) {
    if (buttonState == false) {
        pattern++;
        if (pattern > MAX_PATTERN) {
            pattern = 1;
        }
    }
    previousButtonTime = currentTime;
}
previousButtonState = buttonState;

}

int main() {
setup();

while (1) {
    loop();
}

return 0;

}
Capture1

wrong repository