void platform_heartbeat(void) { static int i=0, t = 0; if (--t < 0) { t = 59; led_print(7, i ? ".": " "); i ^= 1; } }
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; }
void main(void) { IRCF2=1; IRCF1=1; IRCF0=1; //8MHz internal RC oscillator ADCON0 = 0b000001; //Channel 0 //A/D converter module is enabled ADCON1 = 0b001110; //Voltage Reference //A/D Port Configuration Control bits - pin AN0 ADCON2 = 0b10000101; //A/D Result Format Select bit //000=0TAD //110=FOSC/64, 010=FOSC/32, 101=FOSC/16 T0CON=0b10010011; //prescaler 011 - 1:16 Fosc/4=2000, 2000/16=125kHz TMR0=TMR0_LOAD; //preload TMR0IE=1; //timer overflow intterrupt enable PEIE=1; //peripheral interrupt enable GIE=1; //global interrupts enable led_init(); sbuff[0]=0xff; //light all segments sbuff[1]=0xff; sbuff[2]=0xff; delay_ms(1400); led_clear(); for(;;) { GODONE=1; while(GODONE); volt=ADRES*10/VOLT_CONT; if(volt>999) volt=999; sprintf(strBuff,"%2u%1u",volt/10,volt%10); led_print(0,strBuff); led_dot(1,1); delay_ms(200); } }
void __init platform_setup(char** cmdline) { led_print (0, "LINUX "); }
void platform_power_off(void) { led_print (0, "POWEROFF"); local_irq_disable(); while (1); }
void platform_halt(void) { led_print (0, " HALT "); local_irq_disable(); while (1); }