stm_lcd.sr = (1 << STM_LCD_SR_UDR);
}
-static void
-ao_lcd_stm_text(void)
-{
- char string[7];
- uint8_t c = 0;
- ao_cmd_white();
- while (ao_cmd_lex_c != '\n' && c < sizeof (string)) {
- string[c++] = ao_cmd_lex_c;
- ao_cmd_lex();
- }
- string[c++] = '\0';
- ao_lcd_font_string(string);
- stm_lcd.sr = (1 << STM_LCD_SR_UDR);
-}
const struct ao_cmds ao_lcd_stm_cmds[] = {
{ ao_lcd_stm_seg_set, "s <com> <seg> <value>\0Set LCD segment" },
{ ao_lcd_stm_clear, "C\0Clear LCD" },
- { ao_lcd_stm_text, "t <string>\0Write <string> to LCD" },
{ 0, NULL },
};
}
}
+ /* Disable the LCD */
+ stm_lcd.cr = 0;
+
/* duty cycle 1/3, radio 352, frame rate about 33Hz */
- stm_lcd.fcr = ((STM_LCD_FCR_PS_1 << STM_LCD_FCR_PS) |
- (STM_LCD_FCR_DIV_31 << STM_LCD_FCR_DIV) |
+ stm_lcd.fcr = ((STM_LCD_FCR_PS_16 << STM_LCD_FCR_PS) |
+ (STM_LCD_FCR_DIV_20 << STM_LCD_FCR_DIV) |
(4 << STM_LCD_FCR_CC) |
+ (0 << STM_LCD_FCR_DEAD) |
(4 << STM_LCD_FCR_PON) |
(0 << STM_LCD_FCR_UDDIE) |
(0 << STM_LCD_FCR_SOFIE) |
/* Program desired BIAS in LCD_CR */
/* Enable mux seg */
/* Internal voltage source */
- stm_lcd.cr = ((STM_LCD_CR_DUTY_1_4 << STM_LCD_CR_DUTY) |
- (STM_LCD_CR_BIAS_1_3 << STM_LCD_CR_BIAS) |
+ stm_lcd.cr = ((STM_LCD_CR_DUTY_STATIC << STM_LCD_CR_DUTY) |
+ (STM_LCD_CR_BIAS_1_2 << STM_LCD_CR_BIAS) |
(0 << STM_LCD_CR_VSEL) |
(1 << STM_LCD_CR_MUX_SEG));