RoboterCC - Robotic Code Compiler
Forum Roboter.CC Webseite Fragen und Probleme gfx.c debuggen?

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Fragen und Probleme zur Roboter.CC-Plattform können hier diskutiert werden.
  • Seite:
  • 1
  • 2

THEMA: gfx.c debuggen?

gfx.c debuggen? 12 Jahre 1 Monat her #872

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo,

Aufgabenstellung: Einzelne Pixel vom Grafikdisplay auslesen.
In der Funktion gfx_display_write2 aus der gfx.c wird das bereits gemacht. Mein Problem, wie kann ich diese Funktion debuggen? Liefert tp
(Zeile 10) ein oder mehrere Pixel zurück?

    1. void gfx_display_write2(uint8_t data, uint8_t mask) {
    2. uint8_t ch=0;
    3. if (gfx_x>=128)
    4. return;
    5. if (gfx_x>=64)
    6. ch++;

    7. display_wait(ch);
    8. display_read(ch+2); // dummy read
    9. uint8_t tp = display_read(ch+2);
    10. uint8_t dm = gfx_dm;
    11. if (dm&GFX_DM_JAM1_INV) {
    12. data = ~data;
    13. dm &= ~GFX_DM_JAM1_INV;
    14. }
    15. data &= mask;
    16. if (dm==GFX_DM_JAM1) {
    17. data |= tp;
    18. } else if (dm==GFX_DM_JAM2) {
    19. data |= tp & ~mask;
    20. } else /*if (dm==GFX_DM_COMP)*/ {
    21. data ^= tp;
    22. }
    23. display_wait(ch);
    24. display_write(ch, 0x40|gfx_x);
    25. display_wait(ch);
    26. display_write(ch+2, data);
    27. gfx_x++;
    28. }


  • mfg georg
    Letzte Änderung: 12 Jahre 1 Monat her von Georg. Begründung: bessere Lesbarkeit
    Der Administrator hat öffentliche Schreibrechte deaktiviert.

    Aw: gfx.c debuggen? 12 Jahre 1 Monat her #873

    • workwind
    • workwinds Avatar
    • OFFLINE
    • Administrator
    • Beiträge: 573
    Das Display ist in Spalten mit je 8 Pixeln organisiert. Zeile 10 liefert 8 Bit (8 Pixel übereinander) zurück!
    Der Administrator hat öffentliche Schreibrechte deaktiviert.

    Aw: gfx.c debuggen? 12 Jahre 1 Monat her #875

    • Georg
    • Georgs Avatar
    • OFFLINE
    • Gold Boarder
    • Beiträge: 290
    Danke für die schnelle Antwort!

    mfg georg

    Hier meine Funktion, die ich in der gfx.c eingefügt habe:

    uint8_t gfx_read_pixel(uint8_t x,uint8_t y) {
    gfx_move(x,y);
    uint8_t ch=0;
    if (x>=128)
    return;
    if (x>=64)
    ch++;
    display_wait(ch);
    display_read(ch+2); // dummy read
    uint8_t tp = display_read(ch+2);
    uint8_t bit = y%8 ;
    if (tp & (1<<(bit))) {
    return 1 ;
    }
    else
    {
    return 0;
    }
    }
    Letzte Änderung: 12 Jahre 1 Monat her von Georg. Begründung: Fehler im Code entfernt!
    Der Administrator hat öffentliche Schreibrechte deaktiviert.

    Aw: gfx.c debuggen? 12 Jahre 1 Monat her #908

    • Egon
    • Egons Avatar
    • OFFLINE
    • Gold Boarder
    • Beiträge: 316
    Hallo Georg

    Wenn Du Deinen Code in die gfx.c reinkopierst, mußt Du (aber das weißt Du ja sicherlich ;) ) die gfx.c neu kompilieren => es muß quasi die libnibo.2a neu erzeugt werden, sonst sind ja Deine Änderungen nicht in der lib und somit nicht verfügbar.

    Und bei jeder neuen Version der NiboLib (z.B NiboLib V2.12) mußt Du das dann machen (die libnibo.2a neu erzeugen, damit Deine Änderung der gfx.c übernommen wird)... sinnvoller weil besser handelbar ist es, eine eigene Lib zu erzeugen und die mit einzubinden , denn dann bist Du mit Deinen Änderungen unabhängig.

    Ich habe das auch so gemacht, habe mir eine eigene lib gemacht, in der meine neuen, eigenen Funktionen sind.

    Egon
    lokalisieren, eliminieren, Vollzug melden
    Der Administrator hat öffentliche Schreibrechte deaktiviert.

    Aw: gfx.c debuggen? 12 Jahre 1 Monat her #909

    • Georg
    • Georgs Avatar
    • OFFLINE
    • Gold Boarder
    • Beiträge: 290
    Hallo Egon

    Deinen Einwand stimme ich zu. Es ist irgendwann sinnvoll, sich eine eigene LIB zu erstellen. Mit der C-Programmierung bin ich blutiger Anfänger und ich habe zur Zeit keine Kenntnisse, wie man sich eine eigene LIB erstellt.

    Meine geänderte gfx.c habe ich mit in das Projekt eingebunden und compiliert. Die Funktionen aus der libnibo2.a werden beim Linken vom Linker aufgelistet. Zu diesem Zeitpunkt sind die Funktionen meiner geänderten gfx.c dem Linker brereits bekannt uns werden aus der libnibo2.a ignoriert.

    lg Georg
    Der Administrator hat öffentliche Schreibrechte deaktiviert.

    Aw: gfx.c debuggen? 12 Jahre 1 Monat her #910

    • workwind
    • workwinds Avatar
    • OFFLINE
    • Administrator
    • Beiträge: 573
    Hallo Georg,

    welches Betriebssystem verwendest Du denn - Windows oder Linux?
    Der Administrator hat öffentliche Schreibrechte deaktiviert.
    • Seite:
    • 1
    • 2
    Ladezeit der Seite: 0.063 Sekunden

    Werbung