Exemplo n.º 1
0
uint8_t cube_expand_1(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    uint8_t i = 0;
    uint8_t model = 0x80;

    cube_clear(data);

    model = 0x80;
    model >>= *tmp;
    model |= 0x80;

    for(i = 1; i < *tmp; i++) {
        data->layer_d[0].row[i] = model;
        data->layer_d[*tmp].row[i] = model;
        data->layer_d[i].row[0] = model;
        data->layer_d[i].row[*tmp] = model;
    }

    model = 0xFF;
    model -= ((1 << (7-*tmp)) - 1);

    data->layer_d[*tmp].row[0] = model;
    data->layer_d[*tmp].row[*tmp] = model;
    data->layer_d[0].row[0] = model;
    data->layer_d[0].row[*tmp] = model;

    return cube_animation_control(index, tmp, 15, 7);
}
Exemplo n.º 2
0
uint8_t cube_expand_3(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    uint8_t i = 0;
    uint8_t model = 0x80;

    cube_clear(data);

    model = 0x01;
    model <<= *tmp;
    model |= 0x01;

    for(i = (*tmp) - 1; (int8_t)i > 0; i--) {
        data->layer_d[0].row[7 - i] = model;
        data->layer_d[*tmp].row[7 - i] = model;
        data->layer_d[i].row[7] = model;
        data->layer_d[i].row[7 - *tmp] = model;
    }

    //model = 0xFF;
    model = ((1 << (*tmp + 1)) - 1);

    data->layer_d[*tmp].row[7] = model;
    data->layer_d[*tmp].row[7 - *tmp] = model;
    data->layer_d[0].row[7] = model;
    data->layer_d[0].row[7 - *tmp] = model;

    return cube_animation_control(index, tmp, 15, 7);
}
Exemplo n.º 3
0
uint8_t cube_layer_shift_left_right(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    uint8_t model = 0xFF;
    uint8_t i;

    cube_clear(data);
    for(i = 0; i < 8; i++) {
        data->layer_d[i].row[*tmp] = model;
    }

    return cube_animation_control(index, tmp, 15, 7);
}
Exemplo n.º 4
0
uint8_t cube_explosion(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    uint8_t i, j;

    cube_clear(data);

    for(i = 0; i < 8; i++) {
        for(j = 0; j < 8; j++) {
            data->layer_d[i].row[j] = rand();
        }
    }
    return 1;
}
Exemplo n.º 5
0
uint8_t cube_layer_shift_front_back(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    uint8_t model = 0x01;
    uint8_t i, j;

    cube_clear(data);

    model <<= *tmp;

    for(j = 0; j < 8; j++) {
        for(i = 0; i < 8; i++) {
            data->layer_d[i].row[j] = model;
        }
    }

    return cube_animation_control(index, tmp, 15, 7);
}
Exemplo n.º 6
0
uint8_t cube_rocket_explode(cube *data, uint8_t *index, uint8_t *tmp, uint8_t *time)
{
    cube_clear(data);

    switch(*index) {
    case 0:
        data->layer_d[*index].row[3] = 0x10;
        break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
        data->layer_d[*index - 1].row[3] = 0x10;
        data->layer_d[*index].row[3] = 0x10;
        break;
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
        clube_layer_rand(data, index);
        //change time
        break;
    default:
        //maybe reset not planed yet.
        break;
    }

    return cube_animation_control(index, tmp, 16, 7);
}
Exemplo n.º 7
0
int main(void)
{
	init();
	_delay_ms(100);
	_delay_ms(100);
	cube_clear(); /* never forget this */

	while ( 1 ){	

		cube_string_belt("  fornax led cube demo");
		cube_explosion();

		cube_string_to_front("leyanda.de");
		cube_belt_wipe();

		cube_walking();
		cube_block_wipe();

		cube_fixed_string();
		cube_block_wipe();

		cube_2_auto();
		cube_wipe();

		cube_stripes();
		cube_belt_wipe();

		cube_waves();
		cube_explosion();

		outline_shrink();
		cube_explosion();

		cube_string("42");

		cubes_4();
		cube_belt_wipe();

		cube_outline();
		cube_explosion();

		cube_stars();
		cube_explosion();

		cube_sonic();
		cube_belt_wipe();
	}

		/* 
		 * this might be used for a random assortment 
 		 * of the effects, add them to the switch statement
		*/
		/*
		#define EFFECTS
		uint8_t prog[EFFECT];
        	uint8_t j = 0;
	        while ( j < EFFECTS ) {
	                uint8_t k = 0;
	                uint8_t number = rand()%EFFECTS;
	                uint8_t isunique = 1;
	                for ( k = 0; k < j; k++ ){
	                        if ( prog[k] == number )
	                            isunique = 0;
	                }
	                if (isunique == 1) {
	                        prog[k] = number;
	                        j++;
	                }
	        }
		for (uint8_t i = 0; i < EFFECTS; i++ ) {
			switch (prog[i])
			{
				default:
				    break;
			}
		}
		*/
}
Exemplo n.º 8
0
int main(void)
{
	init();
	_delay_ms(100);
	_delay_ms(100);
	start_animation();
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	_delay_ms(100);
	cube_clear(); /* never forget this */

	while ( 1 )
	{	

        uart_puts("hallo welt");
		//usbPoll(); // Wird per Timer aufgerufen...
		if ( container.doAnimation != 0 )
		{
			switch ( container.doAnimation )
			{
				case 1 : ;
					cube_clear();
				break;
				case 2 : ;
					cube_full();
				break;
				
				// Equalizer
				case 20 : ;
					// euqalizer1 steuerung für mehrere ringe gleichzeitig
					cube_clear(); // aktuelles frame löschen
					switch ( container.eqValue )
					{
						case 10: ;
							equalizer_10();
						case  9: ;
							equalizer_9();
						case  8: ;
							equalizer_8();
						case  7: ;
							equalizer_7();
						case  6: ;
							equalizer_6();
						case  5: ;
							equalizer_5();
						case  4: ;
							equalizer_4();
						case  3: ;
							equalizer_3();
						case  2: ;
							equalizer_2();
						case  1: ;
							equalizer_1();
						case  0: ;
							equalizer_0();
					}
				break;
				case 21 : ;
					// euqalizer2 steuerung für mehrere ringe gleichzeitig
					cube_clear(); // aktuelles frame löschen
					switch ( container.eqValue )
					{
						case 10: ;
							equalizer_10();
						break;
						case  9: ;
							equalizer_9();
						break;
						case  8: ;
							equalizer_8();
						break;
						case  7: ;
							equalizer_7();
						break;
						case  6: ;
							equalizer_6();
						break;
						case  5: ;
							equalizer_5();
						break;
						case  4: ;
							equalizer_4();
						break;
						case  3: ;
							equalizer_3();
						break;
						case  2: ;
							equalizer_2();
						break;
						case  1: ;
							equalizer_1();
						break;
						case  0: ;
							equalizer_0();
						break;
					}
				break;
				case 30 : ;
					playAnimation = true;
					playAnimationen(maske1, aendrung1,frames1);
				break;
				case 31 : ;
					playAnimation = true;
					playAnimationen(maske2, aendrung2,frames2);
				break;
				case 32 : ;
					playAnimation = true;
					playAnimationen(maske3, aendrung3,frames3);
				break;
				case 33 : ;
					playAnimation = true;
					playAnimationen(maske4, aendrung4,frames4);
				break;
				case 34 : ;
					playAnimation = true;
					playAnimationen(maske5, aendrung5,frames5);
				break;
				case 35 : ;
					playAnimation = true;
					playAnimationen(maske6, aendrung6,frames6);
				break;
				case 36 : ;
					playAnimation = true;
					playAnimationen(maske7, aendrung7,frames7);
				break;
				case 37 : ;
					playAnimation = true;
					playAnimationen(maske8, aendrung8,frames8);
				break;
				case 38 : ;
					equalizer_8();
				break;
				case 39 : ;
					equalizer_9();
				break;
				case 40 : ;
					equalizer_10();
				break;
				// Laufschrift zeigen
				case 198 : ;
					showTime = true;
				break;
				// Laufschrift zeigen
				case 199 : ;
					boolPlayFloatingText = true;
					playFloatingText();
				break;
				// Startanimation zeigen
				case 200 : ;
					start_animation();
				break;
				case 255 : ; // Reset durchführen
					wdt_enable(0);
					while(1);
				break;
			}

			container.doAnimation = 0;

		}

	}

}