How to read from single LOOKUP table into different variables?


Results 1 to 9 of 9

Threaded View

  1. #3
    Join Date
    May 2013
    Location
    australia
    Posts
    2,721


    Did you find this post helpful? Yes | No

    Default Re: How to read from single LOOKUP table into different variables?

    why all the fiddling ?
    why not ?
    Code:
    ARRAYWRITE NexBuf, ["vac.val=",dec3 tvac,255,255,255,0] 
     RotX = 0                                    ;NexFlags.RotX -- Clear RotX Flag
    GOTO Start_TX                           ;No RETURN Needed, Using GOTO Command


    eg


    Code:
    ;----[16F886 Hardware Configuration]--------------------------------------------#CONFIG
    cfg1 = _INTRC_OSC_NOCLKOUT    ; INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
    cfg1&= _WDT_ON                ; WDT enabled
    cfg1&= _PWRTE_OFF             ; PWRT disabled
    cfg1&= _MCLRE_OFF             ; RE3/MCLR pin function is digital input, MCLR internally tied to VDD
    cfg1&= _CP_OFF                ; Program memory code protection is disabled
    cfg1&= _CPD_OFF               ; Data memory code protection is disabled
    cfg1&= _BOR_OFF               ; BOR disabled
    cfg1&= _IESO_ON               ; Internal/External Switchover mode is enabled
    cfg1&= _FCMEN_ON              ; Fail-Safe Clock Monitor is enabled
    cfg1&= _LVP_OFF               ; RB3 pin has digital I/O, HV on MCLR must be used for programming
    cfg1&= _DEBUG_OFF             ; In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins
      __CONFIG _CONFIG1, cfg1
    
    
    
    
    cfg2 = _BOR40V                ; Brown-out Reset set to 4.0V
    cfg2&= _WRT_OFF               ; Write protection off
      __CONFIG _CONFIG2, cfg2
    
    
    
    
    #ENDCONFIG
    
    
    
    
    'chip configs
    TRISA=000000  'SET A TO OUTPUT   1=input
    TRISC=001101   'set half C for in/out
    TRISB=011000   'set PortB to output
    ANSELH=000000   ' ADC OFF B
    ANSEL=0000000 'configure PortA as digital except first 2
    ADCON1=000000  'adc justify
    OSCCON=110101  'SET FREQUENCY TO 8MHZ
    WPUB=000000    'turn off Pullups
    CM1CON0=0         'DISABLE COMPARATORS
    CM2CON0=0         'SAME HERE
    'CCP1CON=000000 ' configure pwm
    'PSTRCON=010110 'disable C pwm
    
    
    
    
    DEFINE OSC 8   
    DEFINE ADC_BITS 10
    DEFINE ADC_CLOCK 3
    DEFINE ADC_SAMPLEUS 50
    'lcd config
    pause 1000 
    ' Set LCD Data port 
    DEFINE LCD_DREG PORTC  
    DEFINE LCD_DBIT 4  
    DEFINE LCD_RSREG PORTB  
    DEFINE LCD_RSBIT 0  
    DEFINE LCD_EREG PORTB  
    DEFINE LCD_EBIT 1  
    DEFINE LCD_BITS 4  
    DEFINE LCD_LINES 2  
    DEFINE LCD_COMMANDUS 2000  
    DEFINE LCD_DATAUS 44
    lcdout $fe, $1,  "ready "
    pause 1000
    
    
    DPIN Var PORTA.2       ' I2C data pin
    CPIN Var PORTA.1       ' I2C clock pin
    B   Var word
    B0   Var byte
    B2   Var byte
    NexBuf    Var byte[16]
    tVac     Var word
    
    
    Send_Vac:                                       ;Send Current Vacuum Reading to Nextion
        tVac = 13                               ;Create a Temporary Variable We Can Modify
        ARRAYWRITE NexBuf, ["vac.val="]             ;Start Nextion Command Sequence, Occupies NexBuf[0] >> [7]
        IF tVac > 100 THEN                          ;If 3 Digits
            b0 = tVac / 100                         ; Get the Xxx Value
            NexBuf[8] = b0 + $30                    ; Convert it to ASCii
            tVac = tVac - (b0 * 100)                ; Subtract the Xxx Value from tVac
            IF tVac < 10 THEN                       ;If xXx = 0
                NexBuf[9] = $30                     ;If tVac < 10, it's Zero (ASCii)
            ENDIF                               ;IF tVac < 10
        ELSE                                        ;tVac < 100
            NexBuf[8] = $30                         ;If tVac < 100, 1st Digit is Zero (ASCii)
        ENDIF                                   ;IF tVac > 100
        IF tVac > 10 THEN                           ;If Now Double Digit
            b0 = tVac / 10                          ;Get the xXx Value
            NexBuf[9] = b0 + $30                    ;Convert it to ASCii
            tVac = tVac - (b0 * 10)                 ;Subtract the xXx Value from tVac
        ELSE                                    ;tVac < 10
            NexBuf[9] = $30                         ;If tVac < 10, it's Zero (ASCii)
        ENDIF                                   ;IF tVac > 10
        NexBuf[10] = tVac + $30                     ;Convert xxX to ASCii & Write to Buffer                
        FOR b0 = 11 TO 13                           ;Generate "End of Message" Sequence: $FF, $FF, $FF
            NexBuf[b0] = $FF                        ;Load it to Buffer
        NEXT b0                                 ;FOR b0 = 11 TO 13
        NexBuf[14] = 0                              ;Tells Us To Turn UART TX INT Off
    '    RotX = 0                                    ;NexFlags.RotX -- Clear RotX Flag
     lcdout $fe, $1, str NexBuf 
     tVac = 3 
     ARRAYWRITE NexBuf, ["vac.val=",dec3 tvac,255,255,255,0]             ;Start Nextion Command Sequence, Occupies NexBuf[0] >> [7]
     lcdout $fe, $c0, str NexBuf
    Attached Images Attached Images  
    Last edited by richard; - 11th October 2021 at 01:32.
    Warning I'm not a teacher

Similar Threads

  1. How do you create a lookup table?
    By AlexanderWinnig in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 12th November 2010, 14:37
  2. Lookup table syntax.....
    By TerdRatchett in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 19th May 2009, 04:45
  3. Lookup table or Math?
    By ronjodu in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 2nd May 2008, 17:55
  4. Lookup Table
    By yasser hassani in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 11th March 2008, 10:38
  5. PIC 18F452 Table Pointer/ Table Read
    By sougata in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 14th March 2006, 03:07

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts