this little example just cycles through a 26 element array and displays it's value. I wrote it to
teach myself array function, and with help from Jerson it works as expected. I am posting it here to assist noobies trying to grasp array function.
'**************************************************************** '* Name : ARRAY DEMO.BAS * '* Author : Joe S. with Thanks to Jerson in Bombay * '* Notice : Copyright (c) Joe S. * '* : No Rights Reserved, Use as you see fit * '* Date : 5/21/08 * '* Version : 1.0 * '* Notes :Demo Array Counter reads array 1 BYTE at a time * '* and displays serially on backpack LCD * '* :PBP VER 2.50 * 'DEMONSTRATES USE OF FOR NEXT LOOP TO READ ARRAY * * 'THIS PROGRAM PROVES SERIN AND SERIN2 WILL WORK ON THE SAME PIN * 'WITHIN A SINGLE PROGRAM. DEMONSTRATES USE OF STR FUNCTION WITH * 'SERIN2.COMPILE WITH MPASM ASSEMBLER.COMPILES TO 419 WORDS IN * '16F628A * '**************************************************************** @ __config _HS_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _BODEN_OFF DEFINE OSC 20 include "modedefs.bas" ' LETTERS VAR BYTE ' VARIABLE TO HOLD CHARACTERS IN F/N LOOP ' CHAR var byte[26]' ARRAY VARIABLE NAMED CHAR 26 ELEMENTS ' serout PortB.6,T9600,[254,128,"ARRAY DEMO"] ' SHOW US YOU ARE ALIVE ' pause 500 ' TIME TO VIEW LCD SPLASH STATEMENT ' serout PortB.6,T9600,[$FE,1]'CLEAR LCD PRIOR TO WRITING ' '* * * * * * LOAD ARRAY WITH STRING VALUE CHAR[0]= "A" CHAR[1]= "B" CHAR[2]= "C" CHAR[3]= "D" CHAR[4]= "E" CHAR[5]= "F" CHAR[6]= "G" CHAR[7]= "H" CHAR[8]= "I" CHAR[9]= "J" CHAR[10]="K" CHAR[11]="L" CHAR[12]="M" CHAR[13]="N" CHAR[14]="O" CHAR[15]="P" CHAR[16]="Q" CHAR[17]="R" CHAR[18]="S" CHAR[19]="T" CHAR[20]="U" CHAR[21]="V" CHAR[22]="W" CHAR[23]="X" CHAR[24]="Y" CHAR[25]="Z" '* * * * * * * DISPLAY ARRAY ELEMENTS VALUES SEQUENTIALY loop: FOR LETTERS = 0 to 25 'CYCLE FROM A TO Z ' serout PortB.6,T9600,[254,128,"CHAR is ",(CHAR[LETTERS])] pause 500 'TIME TO VIEW LETTER NEXT LETTERS FOR LETTERS=25 TO 0 STEP -1 'CYCLE THEM IN REVERSE Z TO A serout PortB.6,T9600,[254,128,"CHAR is ",(CHAR[LETTERS])] PAUSE 500 ' TIME TO VIEW LETTERS NEXT LETTERS ' PAUSE 500 'TIME TO VIEW LAST LETTER goto LOOP2 '* * * * * * * * * * DISPLAY ENTIRE ARRAY VALUE AT ONCE LOOP2: serout2 portb.6,84,[$FE,1] 'CLEAR LCD PRIOR TO WRITING TO IT ' PAUSE 50 'TIME FOR LCD TO SETTLE, DROPS 4 CHARS WITHOUT THIS ' serout2 PortB.6,84,10,[str char\26] ' PACE 10 ALLOWS SEROUT2 TO QUICKLY WRITE ARRAY'S FULL VALUE TO LCD ' pause 2000 ' TIME TO VIEW FULL ARRAY'S CONTENT ' serout2 portb.6,84,100,[$FE,1] 'CLEAR LCD BEFORE LOOP goto loop ' end
Anyone wishing to post more or better examples of ARRAY functions are invited to do so on this post.
Thank You,
JS
Re: New project - MSFS C++ USB interface
So I have a need to override a pushbutton (from ON to OFF) and came up with this concept; a solenoid piggyback on a pushbutton switch with a 3D printed cap held by a strand of wire.
Demon Yesterday, 23:21...