come in Spinner

Often the AVR is scanning an RS232 stream waiting for some byte sequence before allowing real user input. To give visual feedback we animate some characters for the users amusement.

Code has been written for the AVR-SDK1 mega-8 development board.

' Spinner.bas
'
' Read input from keyboard and wiggle a char on the LCD until +++ is seen.

$regfile = "m8def.dat"
$crystal = 4000000
$baud = 9600
 
$hwstack = 100
$swstack = 100
$framesize = 100
 
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 1a                                        'configure lcd screen

Dim B As Byte
Dim I As Byte
Dim C As Byte
 
Const Wiggle_len = 4
Dim Wiggle As String * Wiggle_len
Dim Wigglec(wiggle_len) As Byte At Wiggle Overlay
Wiggle = "\|/-"
 
Cursor Off
 
' \ char on the LCD is a Japanese Yen symbol.  Override.
Deflcdchar 0 , 32 , 16 , 8 , 4 , 2 , 1 , 32 , 32
Wigglec(1) = 0
 
Cls
Lcd "Booting "
 
B = 0
I = 1
Do
    C = Inkey()
    If C <> 0 Then
      If C = "+" Then
        Incr B
      Else
         B = 0
      End If
      Lcd Chr(wigglec(i))
      Shiftcursor Left
      Incr I
      If I > Wiggle_len Then
        I = 1
      End If
    End If
Loop Until B = 3
 
Cls
Lcd "Ready"
 
End