Projekte
BirgerT
nibo2_fork#01
bt_lib_debugutil.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/bt_lib_debugutil.h [read only]
////////////////////////////////////////////////////////////////////////// // // BT LIB DEBUGUTIL == AVR MCU UART Terminal Debug Utilities // // (c) Birger Töpelmann toepelmann(A)web.de Version 141015a // // Zum Testen der Funktionen, Programme, Speicherinhalte und Timings // von AT-Mega MCU im Zielsystem über die serielle Schnittstelle und // mit einem (VT100/ANSI) Terminalprogramm auf dem PC. // // Anwendung des Debug Utils: // // Für das zu testende Programmmodul können Modul spezifische // Testfunktionen in einer include-Datei programmiert werden; // siehe in "test_debugutil.h" // // ////////////////////////////////////////////////////////////////////////// // #ifndef _BTLIB_DEBUGUTIL_H_ #define _BTLIB_DEBUGUTIL_H_ // // BSD License see "BSD_license.h" // #include "BSD_license.h" // // //#include "bt_lib_utils.h" // Sammlung von Makros und Typedefs //#include "bt_lib_uart.h" // UART Kommunikation mit FIFOs //#include "bt_lib_terminal.h" // Mensch Mikrocontroller Kommunikation // #include "nibo2_global.h" // ////////////////////////////////////////////////////////////////////////// // // DEBUG AUSGABE mit debug_printf("Wert xyz = %d\n", wert_xyz); // // BLOCKIEREND und LANGSAM: // - Funktion wartet bis Buffer ausgegeben ist. // // Formatzeichen: // %d %i Decimal signed integer. // %o Octal integer. // %x %X Hex integer. // %u Unsigned integer. // %c Character. // %s String // %f double // %e %E double // %g %G double // %p Zeiger // %n Number of characters written by this printf. // %% %. No argument expected. // // Flags (müssen direkt naxh dem '%' stehen: // // - linksbündig. // 0 Felder mit 0 ausfüllen (an Stelle von Leerzeichen). // + Vorzeichen einer Zahl immer ausgeben. // blank positive Zahlen mit Leerzeichen beginnen. // // %10i Integer mit 10 Stellen ausgeben Leerzeichen vorweg // %010i Integer mit 10 Stellen ausgeben Nullen vorweg // // # verschiedene Bedeutung: // // %#o (Oktal) 0 Präfix wird eingefügt. // %#x %#X (Hex) 0x Präfix wird bei Werten ungl. Null eingefügt. // %#e %#E Dezimalpunkt immer anzeigen. // %#f Dezimalpunkt immer anzeigen. // %#g %#G Dezimalpunkt immer anzeigen. Nullen nach dem // Dezimalpunkt werden nicht beseitigt. // // extern char debug_stringbuffer[80]; // Stringbuffer für printf void debug_printf(char* str, ...); // Formatstring ausgeben // void debug_prints(char* str); // String aus RAM ausgeben void debug_printP(PGM_P str); // Fixtext aus FLASH ausgeben // ////////////////////////////////////////////////////////////////////////// // enum {NIX,BYTES,WORDS,PGM,RAM,EEP}; // für memory_dump Parameter // ////////////////////////////////////////////////////////////////////////// // void* debug_memory_dump(const uint8_t size, const uint8_t source, \ void* adresse, uint8_t anzahl); // // Speicherbereich Inhalt als String über uart ausgeben: // // -> size = BYTES oder WORDS // source = PGM für Speicherbereich im FLASH (PROGMEM) // = RAM wenn die Daten in Variablen im RAM stehen // = EEP Anzeige von EEPROM Daten // adresse = Startadresse der auszugebenden BYTES o. WORDS // anzahl = wieviel Werte angezeigt werden sollen // <- adresse = Startadresse + anzahl * sizeof(size) // // adress_new = debug_memory_dump(BYTES, RAM, &memory, 16); // // !! buffer[BUFF_SIZE]; // bei Arrays ist der bereits der Arrayname buffer die "memory" - Adresse // // adress_new = debug_memory_dump(BYTES, RAM, buffer, BUFF_SIZE); // ////////////////////////////////////////////////////////////////////////// // char debug_wait_for_char(const char ch); // // Wartet auf ein Zeichen vom UART und gibt dieses zurück // -> char = Zeichen, auf das gewartet wird, alles andere wird ignoriert // = 0 nur schauen, ob ein Zeichen vorhanden ist, // es wird jedes eingegangene Zeichen zurückgegeben, // oder 0, wenn kein Zeichen vorhanden ist. // <- = entweder 0 == kein Zeichen, oder das empfangene Zeichen // while((zeichen = debug_wait_for_char('\n')) == 0) { ; //warten } // ////////////////////////////////////////////////////////////////////////// // // Laufzeitmessung bis 1048 ms oder bis 32325us über Timer 3 // die gemessene Zeit wird direkt als ASCII String am UART ausgegeben // void debug_stoppuhr_start(const char scale); // // -> scale 'M' ms-Messung mit "Starte Stoppuhr.." "Laufzeit xxxxx" // 'm' ms-Messung ohne -------- " ------ ------ " ----- // 'U' / 'u' us-Messung mit / ohne Zusatztext // // ACHTUNG: während der us-Messung sind Interrupts disabled // // // Stoppuhr Timer stoppen und Timer Laufzeit anzeigen // void debug_stoppuhr_stop(); // // #endif // _BTLIB__H_ // // EOF
Compiler results:
Werbung
Online
candidaharrell99753
leonelb389687792836
nelsonleeson85120051
ruebenmendes25697
warrenhinder6456
wilfredocastillo