示例#1
0
int main()
{
        delay(100);
        init();
	 
	while(1)
	{
		Init_MAX7219();
                delay(50);
                font_charge(*font);//change character 
		write_word();
                delay(50);
                write_word();
                delay(50);
	}
}
int main(int argc, char *argv[])
{
	if (1 == argc) {
		printf("Enter text as an argument.\n");
		return 1;
	}

	if (!bcm2835_init()) {
		printf("Unable to init bcm2835.\n");
		return 2;
	}

	bcm2835_spi_begin();
	bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);      // The default
	bcm2835_spi_setDataMode(BCM2835_SPI_MODE0);                   // The default
	bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_256); // The default
	bcm2835_gpio_fsel(Max7219_pinCS, BCM2835_GPIO_FSEL_OUTP); 
	bcm2835_gpio_write(disp1[0][0],HIGH);
	Delay_xms(50);
	Init_MAX7219();

	size_t index = 0;
	while (index < strlen(argv[1])) {
		// Retrive first letter
		char letter1 = toupper(argv[1][index]);
		index++;
		// Retrieve second letter
		// If it does not exist use space
		char letter2 = (index < strlen(argv[1])) ? toupper(argv[1][index]) : (char) 0;
		led_print(find_char(letter1), find_char(letter2));
		Delay_xms(1000);
		index++;
	}
	// Clear screen
	led_print(36, 36);
	bcm2835_spi_end();
	bcm2835_close();
	return 0;
}
示例#3
0
void inicializar_sistema()
{
	static uint8_t valor = 0;
	conteo_funcionalidad++;
	if(flag_inicializacion == 0)
	{
		matrix_aux[1] = 1;
		flag_inicializacion = 1;
	}
	if (conteo_funcionalidad == 3)
	{
		conteo_funcionalidad = 0;
		//usamos el boton shift de forma temporal como contador para que el usuario seleccione su opcion
		if (boton_seleccionado == SHIFT)
		{
			if (state == MODO)
			{
				if (matrix_aux[1] > 2)
					matrix_aux[1] = 0;
				switch(++matrix_aux[1])
				{
					case 1:
					{
						char palabra[] = "DELETREO        ";
						int i;
						for(i=0;i<16;i++)
							mensaje_buffer[i] = palabra[i];
						break;
					}
					case 2:
					{
						char palabra[] = "CIRCULAR        ";
						int i;
						for(i=0;i<16;i++)
							mensaje_buffer[i] = palabra[i];
						break;
					}
					case 3:
					{
						char palabra[] = "PING - PONG     ";
						int i;
						for(i=0;i<16;i++)
							mensaje_buffer[i] = palabra[i];
						break;
					}
				}
				valor = matrix_aux[1];
				update_LCD(mensaje_buffer,1,16);
			}
			else
			{
				if ((valor > 4) && (matrix_aux[1] > 4))
					matrix_aux[1] = 1;
				valor = matrix_aux[1];
				mensaje_buffer[0] = get_charmap(1,++matrix_aux[1]);
				update_LCD(mensaje_buffer,1,1);
			}
		}
		if (boton_seleccionado == ENTER)
		{
			switch (state){
				case VELOCIDAD:
				{
					speed = valor;
					matrix_aux[1] = 1;
					flag_cartel = 0;
					update_LCD(" ",1,1);
					break;
				}
				case INTENSIDAD:
				{
					intensity = valor;
					matrix_aux[1] = 0;
					flag_cartel = 0;
					update_LCD(" ",1,1);
					break;
				}

				case MODO:
				{
					mode = valor;
					matrix_aux[1] = 0;
					int i;
					for(i = 0; i<16; i++)
						mensaje_buffer[i] = ' ';
					flag_cartel = 0;
					update_LCD(" ",1,1);
				    // Init para integrado MAX7219
				    Init_MAX7219();
					break;
				}
			}
			state++;
			update_LCD("                ",1,16);
		}
		boton_seleccionado = 'e';
	}
}