Disabled external gits

This commit is contained in:
2022-04-07 18:46:57 +02:00
parent 88cb3426ad
commit 15e7120d6d
5316 changed files with 4563444 additions and 6 deletions

View File

@@ -0,0 +1,80 @@
#include <stdio.h>
#include <stdint.h>
#include <math.h>
#include "io.h"
#include "system.h"
#include "stdint.h"
#include "stddef.h"
#define SET_LED_COUNT(n) IOWR_32DIRECT(WS28XX_0_BASE,0x4,n)
#define SET_LED_RGB(n,v) IOWR_32DIRECT(WS28XX_0_BASE,0x0,(n&0xFF)<<24 | (v&0xFFFFFF));
#define CLEAR_LED_RGB(n) IOWR_32DIRECT(WS28XX_0_BASE,0x0,(n&0xFF)<<24 | 0);
int hsv2rgb(float H, float S, float V);
int led_idx(int idx, int max);
#define LEDN (16)
#define LED_RGB(n,b) hsv2rgb((n/(float) LEDN),1.0,b)
int main()
{
SET_LED_COUNT(LEDN);
uint8_t led = 0;
while(1){
for(uint8_t i = 0; i < LEDN; ++i){
if(i == led){
SET_LED_RGB(i,LED_RGB(i,1.0));
}else if(i == led_idx(led-1,LEDN) || i == led_idx(led+1,LEDN) ){
SET_LED_RGB(i,LED_RGB(i,0.5));
}else if(i == led_idx(led-2,LEDN) || i == led_idx(led+2,LEDN) ){
SET_LED_RGB(i,LED_RGB(i,0.25));
}else{
CLEAR_LED_RGB(i);
}
}
++led;
if(led>=LEDN) led = 0;
for(int i =0 ; i < 100000; ++i);
}
return 0;
}
int led_idx(int idx, int max){
if(idx<0) return idx+max;
if(idx>max) return idx-max;
}
//Strongly Inspired from
//https://github.com/Inseckto/HSV-to-RGB/blob/master/HSV2RGB.c
int hsv2rgb(float h, float s, float v) {
float r, g, b;
int i = floor(h * 6);
float f = h * 6 - i;
float p = v * (1 - s);
float q = v * (1 - f * s);
float t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
int fr = ((int)(r*255))&0xFF;
int fg = ((int)(g*255))&0xFF;
int fb = ((int)(b*255))&0xFF;
return fr<<16 | fg<<8 | fb<<0;
}