Announcement

Collapse
No announcement yet.

Visi and Serial communication not working

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Andreyka
    replied
    here file with program for sk-gen4-43d
    Attached Files

    Leave a comment:


  • Andreyka
    replied
    byte manArgs
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    'G', 'I', 'X', 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    '2', 'I', 'I', 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    'G', 'G', 'I', 0, 0, 0, 0, 0, 0,
    'G', 'A', 0, 0, 0, 0, 0, 0, 0,
    'G', 0, 0, 0, 0, 0, 0, 0, 0,
    '2', 'I', 'I', 0, 0, 0, 0, 0, 0,
    'G', 'I', 'X', 0, 0, 0, 0, 0, 0,
    'I', '3', '3', 0, 0, 0, 0, 0, 0,
    'I', '3', '3', 0, 0, 0, 0, 0, 0,
    'I', 'V', 'I', 0, 0, 0, 0, 0, 0,
    'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'G',
    'I', 'I', 0, 0, 0, 0, 0, 0, 0,
    'I', 'Y', 'Y', 'I', 0, 0, 0, 0, 0,
    'I', 'Y', 'Y', 'I', 0, 0, 0, 0, 0,
    'I', 'Y', 'Y', 'I', 0, 0, 0, 0, 0,
    '2', 0, 0, 0, 0, 0, 0, 0, 0,
    '7', 0, 0, 0, 0, 0, 0, 0, 0,
    'U', 0, 0, 0, 0, 0, 0, 0, 0,
    'I', 'I', 'X', 0, 0, 0, 0, 0, 0,
    '2', 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    'A', 0, 0, 0, 0, 0, 0, 0, 0,
    'A', 0, 0, 0, 0, 0, 0, 0, 0,
    'A', 'I', 0, 0, 0, 0, 0, 0, 0,
    'U', 'I', 0, 0, 0, 0, 0, 0, 0,
    'I', 'J', 0, 0, 0, 0, 0, 0, 0,
    'I', '2', 0, 0, 0, 0, 0, 0, 0,
    'I', 'I', 'I', 'I', 'K', 0, 0, 0, 0,
    'G', '2', 0, 0, 0, 0, 0, 0, 0,
    '2', 0, 0, 0, 0, 0, 0, 0, 0,
    'I', 0, 0, 0, 0, 0, 0, 0, 0,
    'I', 0, 0, 0, 0, 0, 0, 0, 0,
    'I', 'I', 0, 0, 0, 0, 0, 0, 0
    byte manArgC
    1, 1, 1, 3, 1, 1, 3, 1, 3, 2, 1, 3, 3, 3, 3, 3,
    9, 2, 4, 4, 4, 1, 1, 1, 3, 1, 0, 0, 1, 1, 2, 2,
    2, 2, 5, 2, 1, 1, 1, 2
    byte manRet
    1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 3, 3, 1,
    0, 5, 0, 0, 0, 4, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
    1, 2, 0, 2, 2, 0, 1, 0
    word manFunc
    file_Count, file_Dir, file_Erase, file_Exec, file_Exists, file_FindFirst, file_GetS, file_LoadFunction, file_LoadImageControl, file_Open, file_PlayWAV, file_Read, file_Run, file_Size, file_Tell, file_Write,
    gfx_Button, gfx_Orbit, gfx_Polygon, gfx_PolygonFilled, gfx_Polyline, media_RdSector, media_WrSector, putstr, file_CallFunction, sys_GetModel, sys_GetVersion, sys_GetPmmC, charheight, charwidth, file_PutC, file_PutS,
    writeString, readString, blitComtoDisplay, file_FindFirstRet, file_FindNextRet, setbaudWait, peekM, pokeM
    #END
    //end inherit "SPE2FUNCCONSTS.INC"

    #DATA
    byte model
    "Gen4-uLCD-43D\0"
    #END

    #CONST
    version 0x0103
    #END

    func timer0timer()
    if ( (stuff[0] == 0) // suppress splash display if already accessed
    && (stuff[1] == 0) )
    txt_FontID(FONT3) ;
    txt_MoveCursor(2, 26);
    txt_FGcolour(WHITE);
    putstr("4D Systems") ;
    txt_MoveCursor(4, 27);
    txt_FontID(FONT2) ;
    txt_Height(2) ;
    txt_Width(2) ;
    txt_FGcolour(GRAY);
    putstr("gen") ;
    txt_FGcolour(RED);
    putch('4') ;
    txt_Height(1) ;
    txt_Width(1) ;
    txt_FontID(FONT3) ;
    txt_MoveCursor(7, 24);
    txt_FGcolour(WHITE);
    putstr("gen4-u") ;
    txt_FGcolour(RED);
    putch('L') ;
    txt_FGcolour(LIME) ;
    putch('C') ;
    txt_FGcolour(BLUE);
    putch('D') ;
    txt_FGcolour(WHITE);
    putstr("-43D") ;
    txt_FontID(FONT2) ;
    txt_MoveCursor(15, 24) ;
    print("SPE2 rev ", version >> 8, ".", version & 0x0F) ;
    txt_MoveCursor(17, 24) ;
    print("PmmC rev ", pmmcversion >> 8, ".", pmmcversion & 0x0F) ;
    txt_MoveCursor(19, 24) ;
    print("Comms 9600") ;
    txt_MoveCursor(23, 21);
    putstr("4D Systems (c)2015") ;

    txt_MoveCursor(24, 20);
    txt_FontID(FONT3) ;
    txt_FGcolour(RED);
    putstr("www.4dsystems.com.au") ;

    gfx_Panel(0, 105, 205, 275, 67, DARKGRAY);

    txt_Opacity(TRANSPARENT);
    txt_MoveCursor(18, 17);
    txt_FGcolour(DARKBLUE);
    putstr(" Getting Started:") ;

    txt_MoveCursor(19, 14);
    putstr(" Please refer to the\n Quick Start Guide\n included with the display.") ;

    txt_FontID(FONT3) ; // reset everything we changed
    txt_FGcolour(LIME);
    txt_MoveCursor(0, 0);
    endif
    endfunc

    var stuff[10] ; // maxargs+1
    var combuff[100] ;
    var strbuff[256], pmmcversion ;

    func serinw()
    var i ;
    while ((i := serin()) < 0) ;
    return i ;
    endfunc

    func main()
    var i, j, k, l, m, cmd, strp, t, fv[2], fr[2] ;
    to(strbuff) ;
    print(sys_PmmC());
    k := str_Ptr(strbuff) ;
    k := str_Find(&k, "\n");
    k++ ;
    flt_VAL(fr, k) ;
    flt_FLOOR(fv, fr);
    flt_SUB(fr,fr,fv) ;
    flt_MUL(fr,fr,"10") ;
    k := flt_FTOI(fv);
    m := flt_FTOI(fr);
    pmmcversion := k << 8 + m ;

    sys_SetTimer(TIMER0, 5000) ;
    sys_SetTimerEvent(TIMER0, timer0timer) ;

    com_Init(combuff,200,0); // set up a interrupt driven ring buffer for comms 20, not enough, 100 ok
    com_SetBaud(COM0,960);
    gfx_OrbitInit(&strbuff[0], &strbuff[1]); // set result holders for orbit command, if used
    repeat
    if (com_Count() > 1) // outer loop
    j := serin() << 8 + serin() ;
    if (j > 0) // 'manual' command?
    // manual commands will be 1..nn
    if (j >= maxmancmds)
    serout(NAK) ;
    else
    cmd := j-1 ;
    stuff[i++] := manFunc[cmd] ;
    k := cmd * maxmanargs ;
    strp := str_Ptr(strbuff) ;
    for (j := 0; j < manArgC[cmd]; j++)
    switch (manArgs[j+k])
    case 'K' :
    break ;
    case 'G' :
    stuff[i++] := strp ;
    repeat
    l := serinw() ;
    str_PutByte(strp++, l) ;
    until (l == 0) ;
    if (strp & 1) strp++ ;
    break ;
    case 'A' :
    stuff[i++] := serinw() ;
    break ;
    case 'J' : // writestring
    if (stuff[1])
    strp := stuff[1] ;
    l := str_Length(strp) ;
    strp += l ;
    if (strp & 1)
    strp++ ;
    else
    strp += 2 ;
    endif
    else
    strp += StringStart*2 ;
    endif
    stuff[i++] := strp ; // save for return
    repeat
    l := serinw() ;
    str_PutByte(strp++, l) ;
    until (l == 0) ;
    break ;
    case 'U' : // putstr
    stuff[i++] := strbuff ;
    repeat
    l := serinw() ;
    str_PutByte(strp++, l) ;
    until (l == 0) ;
    break ;
    case 'V' : // file_Write
    stuff[i] := stuff[i-1] ; // second parm is really length
    stuff[i-1] := strp ; // first parm is really strbuf is this correct?
    i++ ;
    for (m := 0; m < stuff[2]; m++)
    l := serinw() ;
    str_PutByte(strp++, l) ;
    next
    break ;
    case '2' : // also '4' and '6'
    stuff[i++] := strbuff ; // media_RdSector, file_ReadString and file_GetS need word address
    break ;
    case '3' : // file_Size,tell, 2 args
    stuff[i] := strbuff+i-2 ;
    i++ ;
    break ;
    case '7' : // media_WrSector
    stuff[i++] := strbuff ; // first parm is really strbuf is this correct?
    for (m := 0; m < 512; m++)
    l := serinw() ;
    str_PutByte(strp++, l) ;
    next
    break ;
    case 'I' : // also 'H', 'E', 'C', 'F', 'T' and 'R'
    stuff[i++] := serinw() << 8 + serinw() ;
    break ;
    case 'X' : // array of args for file_run/exec /call
    if (stuff[0] == file_CallFunction)
    m := stuff[2] ;
    k := stuff + 2 ;
    i := m ;
    else
    m := stuff[2] ;
    k := strbuff + ArgStart ;
    stuff[2] := k ;
    *(k++) := m ;
    endif

    for (l := 0; l < m; l++)
    *(k++) := serinw() << 8 + serinw() ;
    next
    break ;
    case 'Y' : // array of args for Polyxxxx
    if (i == 2) // x parms
    stuff[i] := strbuff ;
    else
    stuff[i] := strbuff+128 ;
    endif
    for (l := 0; l < stuff[1]; l++)
    *(stuff[i]+l) := serinw() << 8 + serinw() ;
    next
    i++ ;
    break ;
    default :
    print("Missing Parameter handler ", [CHR] manArgs[j+k], "\n") ;
    pause(5000) ;
    endswitch
    next
    if (stuff[0] >= 0)
    switch (stuff[0])
    case file_CallFunction :
    k := stuff[1](@&stuff[2], i);
    break ;
    case sys_GetModel :
    to (strbuff) ;
    // print("uLCD-???PT\0") ;
    putstr(model) ;
    k := strlen(strbuff) ;
    break ;
    case sys_GetVersion :
    k := version ;
    break ;
    case sys_GetPmmC :
    k := pmmcversion ;
    break ;
    case writeString :
    k := stuff[2] ;
    break ;
    case readString :
    strp := stuff[1] ;
    k := str_Length(strp) ;
    break ;
    case blitComtoDisplay :
    disp_setGRAM(stuff[1],stuff[2],stuff[1]+stuff[3]-1,stuff[2]+stuff[4]-1);
    disp_BlitPixelsFromCOM0();
    break ;
    case file_FindFirstRet :
    to (strbuff) ;
    if (!file_FindFirst(stuff[1])) strbuff[0] := 0 ;
    k := strlen(strbuff) ;
    strp := str_Ptr(strbuff) ;
    break ;
    case file_FindNextRet :
    to (strbuff) ;
    if (!file_FindNext()) strbuff[0] := 0 ;
    k := strlen(strbuff) ;
    break ;
    case setbaudWait :
    setbaud(stuff[1]);
    pause(100) ;
    break ;
    case peekM :
    k := peekW(stuff[1]) ;
    break ;
    case pokeM :
    pokeW(stuff[1], stuff[2]) ;
    break ;
    default :
    print("Missing internal function ", stuff[0], "\n") ;
    pause(5000) ;
    endswitch
    else
    k := stuff[0](@&stuff[1], manArgC[cmd]);
    endif
    serout(ACK) ;
    switch (manRet[cmd])
    case 0 : break ;
    case 1 :
    serout(k >> 8) ;
    serout(k) ;
    break ;
    case 2 : // Result + String (file_Gets, file_Read) and 6 : // Result + String (readstring)
    serout(k >> 8) ;
    serout(k) ;
    for (i:= 0; i < k; i++)
    serout(str_GetByte(strp++)) ; // strp should be valid from before command was issued
    next
    break ;
    case 3 : // Result + 2Words (file_Size, file_Tell)
    serout(k >> 8) ;
    serout(k) ;
    serout(strbuff[0] >> 8) ;
    serout(strbuff[0]) ;
    serout(strbuff[1] >> 8) ;
    serout(strbuff[1]) ;
    break ;
    case 4 : // result + 512bytes (media_rdSector)
    serout(k >> 8) ;
    serout(k) ;
    for (i:= 0; i < 512; i++)
    serout(str_GetByte(strp++)) ; // strp should be valid from before command was issued
    next
    break ;
    case 5 : // 2words (gfx_Orbit)
    serout(strbuff[0] >> 8) ;
    serout(strbuff[0]) ;
    serout(strbuff[1] >> 8) ;
    serout(strbuff[1]) ;
    break ;
    default :
    print("Missing Return handler ", manRet[cmd], "\n") ;
    pause(5000) ;
    endswitch
    i := 0 ;
    endif
    else // 'auto' command
    cmd := -j ;
    if ((cmd > maxcmds) || (cmd < 0)) cmd := 0 ; // if out of range then invalidate
    stuff[i++] := j ;
    if (funcArgs[cmd] == 0xff) // invalid command nakit now
    serout(NAK) ;
    i := 0 ;
    else
    repeat
    if (funcArgs[cmd] == i) // everything ready, time to execute
    k := stuff[0](@&stuff[1], funcArgs[cmd]-1);
    serout(ACK) ;
    if (funcRet[cmd])
    serout(k >> 8) ;
    serout(k) ;
    endif
    i := 0 ;
    else
    if (com_Count() > 1) // outer loop
    j := serin() << 8 + serin() ;
    stuff[i++] := j ;
    endif
    endif
    until (i == 0) ;
    endif
    endif
    endif
    forever
    endfunc

    **********************************

    Leave a comment:


  • Andreyka
    replied
    Hi ,I will return to the fact that it is possible to change SPE programs for example SPE programs text for L SK-GEN4-43D

    ********************************

    platform "Gen4-uLCD-43D"

    // manargs could be reduced from 32*9 (288 bytes) to 32*4 (128 bytes)
    // by placing the 0 arg commands after 'button' and letting the args run into them
    // 2016/02/22 1.2 fixed PeekM and PokeM commands, they were not working
    // 2018/09/28 1.3 Added ability to use a Workshop defined com port. This requires Workshop 4.6.0.0 or above

    #inherit "4DGL_16bitColours.fnc"

    #CONST
    ACK 6
    NAK 21
    ArgStart 14
    StringStart 24
    #END

    //#inherit "SPE2FUNCCONSTS.INC"
    #CONST
    maxcmds 569
    maxmancmds 41
    maxmanargs 9
    file_CallFunction 1
    sys_GetModel 2
    sys_GetVersion 3
    sys_GetPmmC 4
    writeString 5
    readString 6
    blitComtoDisplay 7
    file_FindFirstRet 8
    file_FindNextRet 9
    setbaudWait 10
    peekM 11
    pokeM 12
    #END

    #DATA
    byte funcArgs // all 1 higher
    255, 255, 2, 255, 255, 255, 255, 255, 255, 0, 255, 0, 0, 255, 255, 255,
    3, 3, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2,
    2, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
    255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 0, 0, 255, 255,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0,
    3, 2, 2, 255, 2, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 3,
    255, 3, 255, 6, 255, 255, 6, 6, 5, 5, 4, 3, 8, 255, 0, 0,
    0, 255, 255, 255, 255, 255, 5, 3, 1, 6, 6, 0, 255, 255, 255, 255,
    255, 7, 9, 7, 255, 255, 255, 8, 0, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 2, 255, 2, 255, 2, 2, 2, 2, 2, 2,
    2, 2, 255, 2, 2, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 3,
    4, 3, 3, 0, 0, 1, 1, 2, 2, 3, 1, 1, 0, 0, 0, 0,
    255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 0, 0, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0,
    255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0,
    255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 255, 0, 255, 0, 0, 255,
    0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0,
    0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0,
    255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 0, 0,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 0, 0, 5, 3, 3, 3, 3, 5, 4, 3, 4, 4,
    3, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 2, 255, 255, 5, 2, 2, 255, 255, 0, 0, 255, 255, 255,
    255, 2, 1, 255, 255, 255, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2,
    0, 4, 5, 0, 0, 0, 4, 6, 0, 2, 3, 2, 0, 0, 0, 2,
    0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 1, 1,
    1, 1, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0,
    255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 0, 0,
    0, 0, 255, 255, 255, 0, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255,
    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    byte funcRet
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1,
    1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
    0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1,
    0, 1, 1, 0, 0, 0, 1, 1, 0, 7, 1, 1, 0, 0, 0, 1,
    0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    #END
    #DATA

    Leave a comment:


  • Doris
    replied
    Paul, great news that you're still working on it. I am extremely grateful and look forward to seeing what you come up with. Stay safe

    Leave a comment:


  • pauleilio
    replied
    Hi Simon,

    I wasn't able to get this working in the Serial environment as it is so it would mean extra work in modifying / adding routines to accept the data and scroll up & down. I will continue to find a solution for this and update you as soon as possible.

    Best regards

    Paul

    Leave a comment:


  • Doris
    replied
    Hi P, Hope you are well and staying safe where ever you are. Have you had a chance / any joy with the serial solution? I've been trying but had no joy. I'd be grateful if you would respond to let me know if you can do any more or not. Thanks, Simon.

    Leave a comment:


  • Andreyka
    replied
    You Can Change program SPE for your project its work

    Leave a comment:


  • Doris
    replied
    Hi P, Hope you are well and staying safe where ever you are. Have you had a chance / any joy with the serial solution?

    Leave a comment:


  • pauleilio
    replied
    Hi

    I have and it isn't working out as well as I expected. I may have to rethink how to do this. I will update you you when I find a better solution.

    Best regards

    Paul

    Leave a comment:


  • Doris
    replied
    Hi Paul. Have you had a chance to look at implementing a serial environment please?

    Leave a comment:


  • Doris
    replied
    Hi Paul. Have you had a chance to look at implementing a serial environment please?

    Leave a comment:


  • Doris
    replied
    Paul, I really can't thank you enough

    Leave a comment:


  • pauleilio
    replied
    Hi,

    The confusion might be that you started with a Designer project and then at some stage switched to using the Serial environment so all examples I created were for how you started your project development in Designer.

    It's not impossible to do this and there will be a way that you can do this from the Serial environment. I will see how we can implement something similar from Serial.

    Best regards

    Paul

    Leave a comment:


  • Doris
    replied
    OK I'm being really thick here sorry, when I do the above it starts in serial environment but no buttons or scrolling appear like they do when I compile and load from 4DVisi environment. I can feel it is nealy there, just need to screen to remember the scrolling code when I connect it to the Arduino

    Leave a comment:


  • pauleilio
    replied
    Great,

    Ok, it will only scroll by buttons on that example and can be coded to automatically scroll.

    You can now set the project destination to RAM while testing.

    To get the display back into the Serial Environment you need to follow these steps

    1. Create a new project and choose your display.
    2. Click on Serial as the Programming Environment.
    3. Click on the Tools tab
    4. Click on SPE Load

    Your display will now start in the Serial environment.

    Best regards

    Paul

    Leave a comment:

Working...
X