Projekte
BirgerT
nibo2_fork#01
nibo2_main_menu.h
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
nibo2_fork#01
BSD_license.h
bt_lib_debugutil.c
bt_lib_debugutil.h
bt_lib_glcd.c
bt_lib_glcd.h
bt_lib_grafix.c
bt_lib_grafix.h
bt_lib_terminal.c
bt_lib_terminal.h
bt_lib_uart.c
bt_lib_uart.h
bt_lib_utils.h
lumpylumpy.h
main.c
nibo2_audio.c
nibo2_audio.h
nibo2_copro.c
nibo2_copro.h
nibo2_copro_cmd.h
nibo2_font.h
nibo2_global.h
nibo2_main_menu.h
nibo2_pwm_leds.c
nibo2_pwm_leds.h
nibo2_register.c
nibo2_register.h
nibo2_sensors.c
nibo2_sensors.h
test_debugutil.h
test_gfx_draw.h
xmas1.h
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7426 private projects
385 public projects
16180353 lines compiled
58212 builds
NIBO
@
nibo2_fork_01/nibo2_main_menu.h [read only]
/****************************************************************** NIBO2 Hauptmenue von BirgerT ******************************************************************/ // BSD License see "license.h" #include "BSD_license.h" #ifndef _NIBO2_MAINMENU_H_ #define _NIBO2_MAINMENU_H_ // enum mnu_states{ MNU_START, MNU_TITEL, MNU_NAME, MNU_DATE, MNU_WAIT1, MNU_MENU00, MNU_MENU00_WAIT, MNU_MENU01, MNU_MENU01_WAIT, MNU_MENU02, MNU_MENU02_WAIT, MNU_GETINP1, MNU_GETINP2, MNU_UARTINFO, MNU_UARTTEST, MNU_UARTERR, MNU_EXIT = 0xff }; uint8_t mnu_glcd_state = MNU_START; uint8_t mnu_uart_state = MNU_START; // /***************************************************** VT100 / ANSI Controls // // #define ESC "\x1b" // Escape #define ED ESC"[2J" // Erase Display #define RST ESC"2c" // Display Reset #define CUP(z,s) ESC"["#z";"#s"H" // Cursor Position Zeile,Spalte #define CUU(z) ESC"["#z"A" // Cursor Up z Zeilen #define CUD(z) ESC"["#z"B" // Cursor Down z Zeilen #define CUF(s) ESC"["#s"C" // Cursor Forward s Spalten #define CUB(s) ESC"["#s"D" // Cursor Backward s Spalten #define SCP ESC"[s" // Save Cursor Position #define RCP ESC"[u" // Restore Cursor Position // // Zeichenattribute setzen #define SGR(p) ESC"["#p"m" // Set Grafics Rendition p // - Nibo2 GLCD - Tera Term - PuTTYtel // SGR(0) -> Standard Werte // SGR(1) -> Intensität (Fett) - ignoriert - Gelbe Schrift - hell // SGR(4) -> Unterstreichen ein - i.O. - i.O. - i.O. // SGR(5) -> Blinken ein - invers - Rote Schrift - i.O. (Setup) // SGR(7) -> Inverse Schrift - i.O. - i.O. - i.O. // SGR(8) -> Unsichtbare Schrift - ignoriert - ohne Funktion - ohne Funktion // // Lineattribute - Nibo2 GLCD = Attribut, Teraterm ohne Funktion, PuTTYtel = i.O. (ganze Zeile) #define DHO ESC"#3" // doppelte Höhe + doppelte Breite (obere Hälfte) #define DHU ESC"#4" // doppelte Höhe + doppelte Breite (untere Hälfte) #define DZB ESC"#6" // doppelte Zeichenbreite #define NRM ESC"#5" // Normale Zeichenbreite und -höhe // ***********************************************************************/ const char testscreen[] PROGMEM = { ESC"c" // Reset Display "123456789012345678901" // Testzeile Spalten CUP(2,3) "NIBO 2 by BirgerT" CUP(3,2) "- Attribute Test -\n" SGR(1) "SGR(1) Intensiv \n" SGR(0) SGR(4) "SGR(4) Unterstr. gpqy\n" SGR(0) SGR(5) "SGR(5) BLINKEN EIN \n" SGR(0) SGR(7) "SGR(7) INVERTIERT \n"SGR(0) DZB "- BREIT -" }; const char mm_intro1[] PROGMEM = { ESC"c" // Reset Display // "123456789012345678901" // Testzeile Spalten SGR(7) // Invers CUP(1,1) " " // CUP(2,1) " " // CUP(3,1) " " CUP(2,1) DHO " NIBO 2 " // BigLetter oben CUP(3,1) DHU " NIBO 2 " // BigLetter unten CUP(8,21) // Cursor rechts unten SGR(0) // Attribute Reset }; const char mm_intro2[] PROGMEM = { CUP(7,1) DZB "by BirgerT" // Breite Zeichen CUP(8,21) NRM // Cursor rechts unten SGR(0) // Attribute Reset }; const char mm_intro3[] PROGMEM = { CUP(5,2) "Build @ "__DATE__ // BuildDate CUP(8,21) // Cursor rechts unten SGR(0) // Attribute Reset }; const char mm_intro4[] PROGMEM = { ESC"c" // "123456789012345678901" // Testzeile Spalten CUP(2,3)SGR(7) " TASTENFUNKTION " SGR(0) CUP(4,2) "x = Weihnachtsgruss" CUP(5,2) "^n = GFX Terminal" CUP(6,2) "^o = Textterminal" CUP(7,2) "^x = Verlassen" CUP(8,21) // Cursor rechts unten SGR(0) // Attribute Reset }; void mmf_menue(); void mmf_setup(); void mmf_stats(); void mmf_behav(); void mmf_tests(); typedef struct { char name[6]; fn_Pointer_t fnp; } mnu_item_t; const mnu_item_t mnu_menue[] PROGMEM = { // "12345", &Funktion() {.name = "MENUE", .fnp = &mmf_menue}, {.name = "SETUP", .fnp = &mmf_setup}, {.name = "STATS", .fnp = &mmf_stats}, {.name = "BEHAV", .fnp = &mmf_behav}, {.name = "TESTS", .fnp = &mmf_tests}, }; void mmf_menue(){ } void mmf_setup(){ } void mmf_stats(){ } void mmf_behav(){ } void mmf_tests(){ } const char term_scrtest[] PROGMEM = { \ #include "xmas1.h" }; // ////////////////////////////////////////////////////////////////////////// // // MAIN MENUE // ////////////////////////////////////////////////////////////////////////// // #include "test_gfx_draw.h" // uint8_t main_menue(uint8_t st) { static uint8_t uart_wait = 0; // CountDown in 100ms static uint8_t glcd_wait = 0; static uint8_t glcddelay = 0; uint8_t state; char temp_ch; // ///////////////////////////////////////////////////// EINGABE HANDLING // // // Das Aktivieren der Terminalausgabe erfolgt durch 2x Leerzeichen // // if (mnu_uart_state == MNU_START) { // UART Terminal inaktiv if(uart0_rxd_avail()!=0) { // Zeichen empfangen ? char c = uart0_rxd_char(); // L4RI; if (c == ' ') { // ist es Leerzeichen ? if (uart_wait == c) { // vorher auch Leerzeichen? uart_wait = 0; // dann UART Terminal aktivieren mnu_uart_state = MNU_TITEL; term_dev |= UART0; // L4GI; } else uart_wait = c; // erstes Leerzeichen merken } else uart_wait = 0; // Reset Aktivierung } if ((uart0_error() & 7)!= 0) { // Fehler am UART char tempstr[20]; uart0_info(tempstr); } } else{ NOP; } // ///////////////////////////////////////////////////// UART HANDLING // if ((term_dev & (UART0+UART1) ) !=0) { state = mnu_uart_state; temp_ch = 0; if (uart_wait != 0) { uart_wait--; } else { switch (state) { case MNU_TITEL: // L5GI; if (uart0_txd_strP(mm_intro1) == mm_intro1){ // NIBO 2 state = MNU_NAME; uart_wait = 15; } break; case MNU_NAME: if (uart0_txd_strP(mm_intro2) == mm_intro2){ // BirgerT state = MNU_DATE; uart_wait = 15; } break; case MNU_DATE: if (uart0_txd_strP( mm_intro3) == mm_intro3){ // Date // state = MNU_WAIT1; state = MNU_MENU00; uart_wait = 30; // 3 Sek. Warten } break; /* case MNU_WAIT1: if (--uart_wait == 0) { state = MNU_MENU00; } break; */ case MNU_MENU00: if (uart0_txd_strP(testscreen) == testscreen){ // Testbild state = MNU_MENU00_WAIT; uart_wait = 50; // 3 Sek. Warten } break; case MNU_MENU00_WAIT: if (uart0_txd_strP(mm_intro4) == mm_intro4){ // Testbild state = MNU_MENU01; uart_wait = 20; // 2 Sek. Warten } break; case MNU_MENU01: if(uart0_rxd_avail()!=0) { // Zeichen empfangen ? temp_ch = uart0_rxd_char(); // Zeichen abholen static uint8_t song = 10; if ( temp_ch == 'x') { if (song > 14) { song = 10; } if (Audio_Status == READY) { audio_play_song_P(audio_start_titel_P(song++)); } uart0_txd_strP(term_scrtest); } else if ( temp_ch == 't') { uart0_txd_strP(term_scrtest); } else if ( temp_ch == (char)0x0e) { // [Strg]+[N] uart0_set_mode(2); mnu_glcd_state = MNU_START; } else if ( temp_ch == (char)0x0f) { // [Strg]+[O] uart0_set_mode(0); uart0_txd_strP(PSTR("\x1b""2c RESET?")); // Terminal Reset mnu_glcd_state = MNU_START; // mnu_uart_state = MNU_TITEL; state = MNU_TITEL; } else if ( temp_ch == (char)0x18) { // [Strg]+[X] uart0_set_mode(0); mnu_glcd_state = MNU_START; mnu_uart_state = MNU_TITEL; return RUNNING; // Menue Test verlassen } else { state = MNU_MENU00_WAIT; } } // if rxd_avail break; } // switch } // if uart_wait mnu_uart_state = state; } // if term_dev.. // ///////////////////////////////////////////////////// GLCD HANDLING // if ((term_dev & GLCD) !=0) { if (glcddelay != 0) { glcddelay--; } else { state = mnu_glcd_state; switch (state) { case MNU_START: pwm_lcd(0); // pwm_lcd(80); if (gfx_ansi_strP(mm_intro1) == mm_intro1){ // NIBO 2 // if (glcd_ansi_str_P(testscreen) == testscreen){ state = MNU_TITEL; // state = MNU_MENU00; } break; case MNU_TITEL: glcd_wait = pwm_lcd(111) + 2; if (glcd_wait < eep_param.pwm_glcd) { pwm_lcd(glcd_wait); } else { pwm_lcd(eep_param.pwm_glcd); state = MNU_NAME; } break; case MNU_NAME: glcd_wait = pwm_lcd(111) - 2; if (glcd_wait > 5) { pwm_lcd(glcd_wait); } else { pwm_lcd(0); if (gfx_ansi_strP(mm_intro2) == mm_intro2){ // Name state = MNU_DATE; } } // LED_INV(LED_GN,5); break; case MNU_DATE: glcd_wait = pwm_lcd(111) + 3; if (glcd_wait < eep_param.pwm_glcd) { pwm_lcd(glcd_wait); } else { pwm_lcd(eep_param.pwm_glcd); if (gfx_ansi_strP(mm_intro3) == mm_intro3){ // __DATE__ glcddelay = 30; // 3 Sek. Warten state = MNU_WAIT1; } } break; case MNU_WAIT1: if (gfx_ansi_strP(testscreen) == testscreen){ // Testbild glcddelay = 30; state = MNU_MENU00; } break; case MNU_MENU00: gfx_draw_test(); state = MNU_MENU01; break; case MNU_MENU01: if (SW3_DOWN) { mnu_glcd_state = MNU_START; return RUNNING; } break; } // switch mnu_glcd_state = state; } // if delay } // if term_dev.. // ///////////////////////////////////////////////////// EINGABE HANDLING // // LED_INV(LED_RD,7); // return state; return 0; } // main_menue #endif //_NIBO2_MAINMENU_H_
Compiler results:
Werbung
Online
brittney747920000
romanrendall465571132
warrenhinder6456