- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 10

Thema: Hat jemand eine Idee bevor ich verzweifel?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    @Klebwax
    Also im Prinzip stimme ich Dir ja zu... insbesondere die Aussage zu den Regressionstests.. aber Du kannst mir schon zutrauen, das ich das nicht in der Luft freihängend teste...
    Der Code sieht zum testen grade so aus:
    Code:
    int16_t lcd_putchar(char c)
    {
        static bool nl_seen;
        static bool cursor_seen;
        uint8_t i;
    
        if (cursor_seen) { // erstes Zeichen nach \v, Cursorposition also \v%c
            //if (c <= LCD_LL) lcd_line=0;
            c=0x00;
            lcd_line=0x00;
            //else lcd_line =  c % LCD_LL; //aus kumulierter Cursorpos Zeile und Spalte berechnen
            lcd_cpos = (c - (lcd_line * LCD_LL));
            lcd_data(LCD_SET_DDADR + LCDLineAdr[lcd_line] + lcd_cpos, LCD_CMD);
    // hier steht auch noch was code, der aber nichts zur Sache tut
            cursor_seen = false; //ok es geht weiter im String
            return 1; // darf nicht zur weiteren Auswertung gelangen.
        } else { // wenn keine Cursorposition, dann normales Zeichen
    //.. blabla.. hier gehts noch weiter
    Der Code sollte eigentlich später so aus sehen:
    Code:
    int16_t lcd_putchar(char c)
    {
        static bool nl_seen;
        static bool cursor_seen;
        uint8_t i;
    
        if (cursor_seen) { // erstes Zeichen nach \v, Cursorposition also \v%c
            if (c <= LCD_LL) lcd_line=0;
            else lcd_line = c % LCD_LL; //aus kumulierter Cursorpos Zeile und Spalte berechnen
            lcd_cpos = (c - (lcd_line * LCD_LL));
            lcd_data(LCD_SET_DDADR + LCDLineAdr[lcd_line] + lcd_cpos, LCD_CMD);
    // hier steht auch noch was code, der aber nichts zur Sache tut
            cursor_seen = false; //ok es geht weiter im String
            return 1; // darf nicht zur weiteren Auswertung gelangen.
        } else { // wenn keine Cursorposition, dann normales Zeichen
    //.. blabla.. hier gehts noch weiter
    die lcd_data(LCD_SET_DDADR + LCDLineAdr[lcd_line] + lcd_cpos, LCD_CMD);
    ist definiert als void lcd_data( uint8_t data, uint8_t mode ); , LCDLineAdr[] ist ein Array aus 4 ints
    Laut Breakpoints und Einzelschrittverfolgung ist vor Einsprung in lcd_data der Wert von lcd_cpos=1 wenn c=0.

    Ich versuche dort, aus einer uint8 Zahl die eine cursorposition auf einem langen String (bis 80 Zeichen, enthält letztlich Reihe und Spalte in einem Display) zu berechnen. Ich würde ja mit Modulo % arbeiten aber da hat jemand das erste Zeichen auf die 0.te Display Position definiert und modulo Operationen mit 0 erzeugen schon mal Div/0 Fehler... Also Suche ich einen weg um aus Angaben wie 0x14 die 2.te Zeile in der 4 Spalte zu berechnen wobei die Koordinaten dann aber leider Zeile 1, spalte 3 ist. Letzteres sind Vorgaben die ich so übernehmen muss um Code Compatibilität zu halten.

    Und zur Aussage "Da braucht man nicht den Assemblercode anzuschauen." .. ich würds selbst nicht glauben wenn ich es nicht mit eigenen Augen sehen würde!
    Gruß
    Geändert von RolfD (14.05.2014 um 06:24 Uhr)
    Sind Sie auch ambivalent?

Ähnliche Themen

  1. switch case aud union und struct gehen schief, hat einer eine Idee warum ???
    Von jdelphi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 29.09.2011, 13:04
  2. Signalweiche mit Avr- jemand eine idee??
    Von spass-basti im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 23.04.2007, 15:21
  3. Potentialproblem. Jemand eine idee?
    Von sebastian.heyn im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 22.08.2005, 16:55
  4. Bild auf TV erzeugen - Jemand eine IDEE?
    Von sebastian.heyn im Forum AVR Hardwarethemen
    Antworten: 20
    Letzter Beitrag: 03.05.2005, 13:28
  5. Ports beim ATmega32 gehen nicht! warum?? jemand eine Idee!!
    Von raptor_79 im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 18.01.2005, 14:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests