- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: M32/M128 Pro Display, EEPROM, SRAM, Master / Slave Fragen

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    30.12.2009
    Ort
    Koblenz
    Alter
    45
    Beiträge
    78
    Anzeige

    Powerstation Test
    Puhh, alte Fehler raussuchen ist schwer, aber ich meine, dass es an folgender Zeile lag.

    Code:
    case CMD_SHOWSCREENLCD: showScreenLCD(param1[], param2[]); break;
    Habe sie einfach auskommentiert und neu geschrieben

    Was für Fehlermeldungen bekommst Du denn ?
    Ich habe bereits bis Unendlich gezählt. Zweimal, und zurück

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    ja genau an der stelle.
    und die meldung was muss ich jetzt genau machen?
    neu geschrieben hab ich die aber ändert nichts

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    30.12.2009
    Ort
    Koblenz
    Alter
    45
    Beiträge
    78
    Also ich hatte die funktionalität höchst umständlich neu Programmiert und diesen CASE ausgelassen

    Meine void task_commandProcessor sieht so aus
    ACHTUNG HÖCHST UMSTÄNDLICH!!!

    Code:
    **
     * This function checks if commands have been received and processes them.
     */
    void task_commandProcessor(void)
    {
    	if(getCommand())
    	{
    		switch(cmd)
    		{
    			case CMD_SETLEDS:	setLEDs(param1); break;
    			case CMD_CLEARLCD:  clearLCD(); break;
    			case CMD_WRITECHARLCD: writeCharLCD(param1); break;
    			case CMD_DISCHARGEPEAKDETECTOR: dischargePeakDetector(); break;
    			case CMD_BEEP: beep(param1, param2); break;
    			case CMD_SETBEEPERPITCH: setBeeperPitch(param1); break;
    			case CMD_MSLEEP: mSleep(param1); break;
    			case CMD_WRITE_I_AT_POSITION: 
    			if(param1 < 100)
    			{
    				setCursorPosLCD(0,param1);
    				writeIntegerLCD(param2,DEC);
    				writeInteger(param2,DEC);
    			}
    			else
    			{
    				setCursorPosLCD(1,(param1-100));
    				writeIntegerLCD(param2,DEC);
    				writeInteger(param2,DEC);
    			}
    			case CMD_WRITE_S_AT_POSITION:
    			if(param1 < 100)
    			{
    				setCursorPosLCD(0,param1);
    				writeCharLCD(param2);
    
    			}
    			else
    			{
    				setCursorPosLCD(1,(param1-100));
    				writeCharLCD(param2);
    			}
    		}
    	}
    }
    Die entsprechenden Anpassungen im M128

    Code:
    Sub getASCII(a As Char) As Integer
       Dim t(52) As Char
       Dim k As Integer
       Dim i As Integer
    
       k = 32
       t = "! #$%&'()*+,-./0123456789:;<=>?"
       For i=0 To 30
            If t(i) = a Then
                k = i+33
                Return k
                Exit
            End If
        Next
       t ="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
       For i=0 To 31
            If t(i) = a Then
                k = i+64
                Return k
                Exit
            End If
        Next
        t = "`abcdefghijklmnopqrstuvwxyz{|}~"
        For i=0 To 30
            If t(i) = a Then
                k = i+96
                Return k
                Exit
            End If
        Next
        Return k
    End Sub
    
    Sub showScreenM32Integer(i As Word, j As Word)
        RP6_writeCMD_2params(RP6_M32_ADR, CMD_WRITE_I_AT_POSITION, 0, i)
        RP6_writeCMD_2params(RP6_M32_ADR, CMD_WRITE_I_AT_POSITION, 100, j)
    End Sub
    Sub showScreenM32String(ByRef text1 As Char, ByRef text2 As Char)
    
        Dim i As Integer
        Dim size As Word
        Dim asciiValue As Word
        Thread_Lock(1)
    
        size = Str_Len(text1)
        printInteger(size)
        For i=0 To size-1
            asciiValue = getASCII(text1(i))
            RP6_writeCMD_2params(RP6_M32_ADR, CMD_WRITE_S_AT_POSITION, i, asciiValue)
            Thread_Delay(50)
        Next
       size = Str_Len(text2)
    
        For i=0 To size-1
            asciiValue = getASCII(text2(i))
            RP6_writeCMD_2params(RP6_M32_ADR, CMD_WRITE_S_AT_POSITION, i+100, asciiValue)
            Thread_Delay(50)
        Next
    
        Thread_Lock(0)
    
    
    
    End Sub
    Wie gesagt, eine sehr unschöne und beschämende Lösung. War für den Zweck aber ausreichend
    Ich habe bereits bis Unendlich gezählt. Zweimal, und zurück

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    danke habs einfach auskommentiert breauche das eh nicht habe mein lcd an der M128.
    trotzdem danke

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress