plotting signal on graphic lcd

Discussion in 'Embedded Systems and Microcontrollers' started by RG23, May 8, 2012.

  1. RG23

    Thread Starter Active Member

    Dec 6, 2010
    I have to check the signal after every one second and plot the same.

    I tried displaying the signal upto first 8 vertical columns and repeat the process. It worked.

    I used the following subroutine:

    movlw 0xB2///page 2
    movwf PORTD
    call SND_CMD

    movlw 0x10
    movwf PORTD
    call SND_CMD
    movlw 0x00
    movwf PORTD
    call SND_CMD////column 0

    call sig_strength////subroutine to check the signal strength and display corresponding number of pixels in a single column

    ////TEMP3,TEMP4,TEMP5,TEMP6,TEMP7,TEMP8,TEMP9 are initialized to zero

    movf TEMP1,0//////TEMP1 is the current signal stregth value
    movwf TEMP2

    movf TEMP3,0
    movwf PORTD
    call SND_DTA/////subroutine to display pixels on graphic lcd
    movf TEMP4,0
    movwf PORTD
    call SND_DTA
    movf TEMP5,0
    movwf PORTD
    call SND_DTA
    movf TEMP6,0
    movwf PORTD
    call SND_DTA
    movf TEMP7,0
    movwf PORTD
    call SND_DTA
    movf TEMP8,0
    movwf PORTD
    call SND_DTA
    movf TEMP9,0
    movwf PORTD
    call SND_DTA


    The above subroutine worked.
    For the next second interval I have to make changes to the above subroutine

    and so on till 8 seconds

    I have to keep shifting the previous value signals forward

    I used 8 similar subroutines with few changes and it worked

    But I am using 128x64 graphic lcd

    There will be 128 one second intervals

    if I use the approach as above my code will be getting too longer as

    I will have to use 128 subroutines
    Is there an efficient way to solve this problem?

    If anyone has an idea, please let me know

  2. Markd77

    Senior Member

    Sep 7, 2009
    Look at the indirect addressing section of the datasheet using FSR and INDF.
    I think that should help a lot.