コード例 #1
0
ファイル: lcd.c プロジェクト: traffaillac/uC-sdk
int lcd_init(lcd_t *lcd, ssp_port_t ssp_port, pin_t cs, pin_t rs, pin_t rw, pin_t e)
{
    lcd->ssp = ssp_port.ssp;
    lcd->cs = cs;
    lcd->rs = rs;
    lcd->rw = rw;
    lcd->e = e;
    //lcd->type = COM8BITS;

    gpio_config(cs, pin_dir_write, pull_up);
    gpio_set(cs, 1);
    gpio_config(rs, pin_dir_write, pull_down);
    gpio_set(rs, 0);
    gpio_config(rw, pin_dir_write, pull_down);
    gpio_set(rw, 0);
    gpio_config(e, pin_dir_write, pull_down);    
    gpio_set(e, 0);

    ssp_config(ssp_port, 8 * 1000 * 1000);

    delay(lcd, 1000);

    lcd_clear_display(lcd);
    lcd_return_home(lcd);
    lcd_set_display(lcd,1, 1, 1);

    return 1;
}
コード例 #2
0
void speakjet_phrase_random_select(void)
{
    /* Wait for Speakjet to finish speaking */
    loop_until_bit_is_clear(PINB, SPEAKJET_SPEAKING);

    uint8_t i = rand() % PHRASE_COUNT;

    phrase_speak(phrase[i], phrase_length[i]);
    lcd_return_home();
    lcd_clear();
    lcd_puts(phrase_text[i]);
}
コード例 #3
0
/**
 * Lousy function for automatic LCD initialization
 */
void lcd_initialize(void) {

    unsigned char i;

    // set relevant pins as outputs
    LCD_DATA_DDR = ~DATA_MASK;
    LCD_RS_DDR = 0;
    LCD_RW_DDR = 0;
    LCD_EN_DDR = 0;
    LCD_BL_DDR = 0;

    // initialize the display_config
    for (i = 0; i < 6; i++) {
        display_config[i] = 0x00;
    }

    LCD_RS = 0;
    LCD_RW = 0;

    // set 4-bit mode
    _send_nibble(0b0010);

    // function set
    lcd_flags_set(FUNCTION_SET, DATA_LENGTH | CHAR_FONT, 0);
    lcd_flags_set(FUNCTION_SET, DISPLAY_LINES, 1);

    lcd_backlight_on();
    lcd_display_on();
    lcd_cursor_off();
    lcd_blinking_off();

    lcd_flags_set(ENTRY_MODE, CURSOR_INCREMENT, 1);
    lcd_flags_set(ENTRY_MODE, ENABLE_SHIFTING, 0);

    lcd_clear();
    lcd_return_home();
}