axe134 flashing text/curser

Can somebody please tell me how i can flash certain characters in a line of text on the axe134 4x20 oled display. I am trying to make my menu options easier to follow by flashing the number that will be changed, i have a piece of equipment that does this by flashing the variable to be changed and using another key to tab round the other variables and flash them in order. I dont seem to find anything about this and the winstar data sheet is a little over my head to understand. I have tryed moving to the position of the text on the line and then switching on the curser but nothing happens.
 

hippy

Ex-Staff (retired)
I do not believe this is supported by the LCD/OLED hardware and the usual way to flash characters is by overwriting those characters with spaces and rewriting the characters later.

It should be possible to modify the AXE134 firmware to provide a function to help do this to take some weight off the main PICAXE program.
 
Is it possible to just display the curser at a certain position or can this also not be done because using the 254,14 command for me displays nothing, also found a thread where someone was blinking a character by using 254,13 but this also has no effect.
 

hippy

Ex-Staff (retired)
It should be possible to position the cursor and control it; none, underline or blinking character. Untested but the following should move the cursor to the start of line one then perform the associated action -

SerOut ... ( 254, $80 ) ; Move to first character, first line

SerOut .... ( 254, %1000 ) ; 8 - Display off
SerOut .... ( 254, %1100 ) ; 12 - Display on, no cursor, no blink
SerOut .... ( 254, %1101 ) ; 13 - Display on, no cursor, character blinking
SerOut .... ( 254, %1110 ) ; 14 - Display on, cursor on, no blinking
SerOut .... ( 254, %1111 ) ; 15 - Display on, cursor on, character blinking
 
For some reason i dont see anything happen on the display i have inserted to the two lines into my sub where it loads the setup screen from the oled eeprom but no curser.
Code:
loadsetup:	;menuflag = 2
	menuflag = 2
	serout c.1, n2400, (254,1) ;clear screen
	pause 30
	serout c.1, n2400, (254,128) ; move to line 1
	serout c.1, n2400, (253,4) ;message 4 from eeprom
	pause 30
	serout c.1, n2400, (254,192) ; move to line 2
	serout c.1, n2400, (253,5) ;message 5 from eeprom
	pause 30
	serout c.1, n2400, (254,148) ; move to line 3
	serout c.1, n2400, (253,6) ;message 6 from eeprom
	pause 30
	serout c.1, n2400, (254,212) ;move to line 4
	serout c.1, n2400, (253,7) ;message 7 from eeprom
	serout c.1, n2400, (254,206) ;move to line 2 character 16
	serout c.1, n2400, (254,15) ;display curser blink character
	pause 1000
	HI2cOut(%11110000)
	keypressed = 255
	return
 

hippy

Ex-Staff (retired)
Not sure why it's not working, but this works for me, tested on PICAXE-20X2 ...

Code:
Symbol OLED_PIN = C.1

Pause 1000

Do

  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( "Normal display" )
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( 254,%1100        )
  Pause 5000
 
  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( "Display off"    )
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( 254,%1000        )
  Pause 5000
  
  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( "Blinking on"    )
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( 254,%1101        )
  Pause 5000

  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( "Cursor on"      )
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( 254,%1110        )
  Pause 5000

  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( "Cursor + Blink" )
  SerOut OLED_PIN, N2400, ( 254,$80          )
  SerOut OLED_PIN, N2400, ( 254,%1111        )
  Pause 5000

  SerOut OLED_PIN, N2400, ( 254,1            )
  Pause 10
  SerOut OLED_PIN, N2400, ( 254,%1100        )
  For b0 = 1 To 20
    SerOut OLED_PIN, N2400, ( 254,$80        )
    SerOut OLED_PIN, N2400, ( ">> FLASH <<"  )
    Pause 100
    SerOut OLED_PIN, N2400, ( 254,$80        )
    SerOut OLED_PIN, N2400, ( ">>       <<"  )
    Pause 100    
  Next

Loop
 
That code works for me also on a 18M2, it also works ok if i send text from within my program but for some reason when i import the stored text from the 18M2 eeprom on the oled it will not work and dont really know why
 

hippy

Ex-Staff (retired)
Perhaps you need to add a pause after displaying Eprom message 7 ?

This worked for me, with cursor and blinking char at 2nd char of line 1 ...

Code:
#picaxe 20x2
Pause 1000
serout c.1, n2400, (254,1) ;clear screen
pause 30
serout c.1, n2400, (254,128) ; move to line 1
serout c.1, n2400, (253,4) ;message 4 from eeprom
Pause 30
serout c.1, n2400, (254,129)
serout c.1, n2400, (254,15) ;display curser blink character
do:loop
 
Top