void setup(void) { /* Test Envionment, ATMEGA with the following settings: CS: PORTB, Bit 2 A0: PORTB, Bit 1 SCK: PORTB, Bit 5 MOSI: PORTB, Bit 3 */ /* 1. Setup and create u8g device */ /* u8g_InitSPI(&u8g, &u8g_dev_st7565_dogm132_sw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE); */ u8g_InitHWSPI(&u8g, &u8g_dev_st7565_dogm132_hw_spi, PN(1, 2), PN(1, 1), U8G_PIN_NONE); /* 2. Setup m2 */ m2_Init(&el_top, m2_es_avr_u8g, m2_eh_4bs, m2_gh_u8g_bfs); /* 3. Connect u8g display to m2 */ m2_SetU8g(&u8g, m2_u8g_box_icon); /* 4. Set a font, use normal u8g_font's */ m2_SetFont(0, (const void *)u8g_font_5x8r); /* 5. Define keys */ m2_SetPin(M2_KEY_EXIT, PN(3, 5)); m2_SetPin(M2_KEY_SELECT, PN(3, 6)); m2_SetPin(M2_KEY_NEXT, PN(3, 7)); m2_SetPin(M2_KEY_PREV, PN(1, 7)); }
void setup(void) { /* Test Envionment, ATMEGA with the following settings: CS: PORTB, Bit 2 A0: PORTB, Bit 1 SCK: PORTB, Bit 5 MOSI: PORTB, Bit 3 */ /* 1. Setup and create u8g device: http://code.google.com/p/u8glib/wiki/avr#U8glib_Init */ /* u8g_InitSPI(&u8g, &u8g_dev_st7565_dogm132_sw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE); */ u8g_InitHWSPI(&u8g, &u8g_dev_st7565_dogm132_hw_spi, PN(1, 2), PN(1, 1), U8G_PIN_NONE); /* 2. Setup m2 */ m2_Init(&top_el_pin_list, m2_es_avr_u8g, m2_eh_4bs, m2_gh_u8g_bfs); //m2_Init(&top_el_pin_list, m2_es_avr_rotary_encoder_u8g, m2_eh_4bd, m2_gh_u8g_bfs); /* 3. Connect u8g display to m2 */ m2_SetU8g(&u8g, m2_u8g_box_icon); /* 4. Set a font, use normal u8g_font's */ m2_SetFont(0, (const void *)u8g_font_5x8r); /* 5. Define keys (PN() description, see http://code.google.com/p/u8glib/wiki/avr#U8glib_Init) */ m2_SetPin(M2_KEY_EXIT, PN(3, 5)); m2_SetPin(M2_KEY_SELECT, PN(3, 6)); m2_SetPin(M2_KEY_NEXT, PN(3, 7)); m2_SetPin(M2_KEY_PREV, PN(1, 7)); }
int main(void) { /* this is the setup sequence, steps 1..4 should be in this order */ /* 1. Setup and create device access */ u8g_Init(&u8g, &u8g_dev_sdl_1bit); /* 2. Now, setup m2 */ m2_Init(&top_el_tlsm, m2_es_sdl, m2_eh_6bs, m2_gh_u8g_bfs); //m2_Init(&top_el_tlsm, m2_es_sdl, m2_eh_6bs, m2_gh_tty); //m2_Init(&el_top_fs, m2_es_sdl, m2_eh_6bs, m2_gh_u8g_bfs); /* 3. Connect the u8g display to m2. */ m2_SetU8g(&u8g, m2_u8g_box_icon); /* 4. And finally, set at least one font, use normal u8g_font's */ m2_SetFont(0, (const void *)u8g_font_7x13); m2_SetFont(2, (const void *)u8g_font_fub25); m2_SetU8gToggleFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); // m2_SetU8gAdditionalReadOnlyXBorder(0); /* set the font for the multi selection */ m2_SetFont(3, (const void *)u8g_font_m2icon_7); mas_Init(mas_device_sim, 0); for(;;) { m2_CheckKey(); if ( m2_HandleKey() ) { u8g_FirstPage(&u8g); do{ //u8g_SetFont(&u8g, u8g_font_unifont); //u8g_DrawStr(&u8g, 0, 20, "Hello World!"); m2_CheckKey(); m2_Draw(); } while( u8g_NextPage(&u8g) ); } } return 0; }
const char *el_fsel_strlist_cb(uint8_t idx, uint8_t msg) { const char *s = ""; if ( idx == 0 ) { s = "4x6"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_4x6); m2_SetU8gToggleFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 1 ) { s = "5x8"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_5x8); m2_SetU8gToggleFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 2 ) { s = "6x12"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_6x12); m2_SetU8gToggleFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_6x12_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 3 ) { s = "6x13"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_6x13); m2_SetU8gToggleFontIcon(u8g_font_6x13_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_6x13_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 4 ) { s = "7x13"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_7x13); m2_SetU8gToggleFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 5 ) { s = "8x13"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_8x13); m2_SetU8gToggleFontIcon(u8g_font_8x13_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_8x13_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 6 ) { s = "tpss"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_tpss); m2_SetU8gToggleFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_7x13_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 7 ) { s = "cu12"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_cu12); m2_SetU8gToggleFontIcon(u8g_font_cu12_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_cu12_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 8 ) { s = "unifont"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_unifont); m2_SetU8gToggleFontIcon(u8g_font_unifont_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_unifont_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } else if ( idx == 9 ) { s = "9x15"; if ( msg == M2_STRLIST_MSG_SELECT ) { m2_SetFont(0, (const void *)u8g_font_9x15); m2_SetU8gToggleFontIcon(u8g_font_9x15_75r, active_encoding, inactive_encoding); m2_SetU8gRadioFontIcon(u8g_font_9x15_75r, active_encoding, inactive_encoding); m2_SetRoot(&top_el_tlsm); } } return s; }