?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{FILE START}

library

?curdirlinks? - Rev 6

?prevdifflink? - Blame - ?getfile?

//*****************************************************************************
//
// File Name    : 'glcdtest.h'
// Title                : Graphic LCD test and examples code
// Author               : Pascal Stang
// Created              : 7/12/2001
// Revised              : 9/30/2002
// Version              : 1.1
// Target MCU   : Atmel AVR series
// Editor Tabs  : 4
//
//      Description : This code tests and demonstrates the AVRlib graphic LCD
//              driver, glcd.c.
//
// This code is distributed under the GNU Public License
//              which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************


#include <avr/io.h>

#include "global.h"
#include "uart.h"
#include "rprintf.h"
#include "timer.h"
#include "a2d.h"

#include "ks0108.h"
#include "glcd.h"

#define KEY1    0x01    // Key1
#define KEY2    0x02    // Key2
#define KEY3    0x04    // Key3
#define KEY4    0x08    // Key4
#define KEY5    0x10    // Key5
#define KEY6    0x20    // Key6
#define KEY7    0x40    // Key7
#define KEY8    0x80    // Key8

void lcdtest(void);
void oscope(void);

int main (void)
{
        // initialize
        uartInit();
        timerInit();
        a2dInit();
        glcdInit();
        outb(DDRA, 0x00);
        
        // send rprintf output to serial port
        rprintfInit(uartSendByte);
        // print welcome message to serial port
        rprintfProgStrM("\r\nWelcome to glcdtest...\r\n");
        // send rprintf output to lcd display
        rprintfInit(glcdWriteChar);

        // perform basic functionality tests
        rprintfProgStrM("All initialized...");

        glcdSetAddress(4,LINE2);
        glcdWriteChar('H');
        glcdWriteChar('E');
        glcdWriteChar('L');
        glcdWriteChar('L');
        glcdWriteChar('O');

        glcdSetAddress(4,LINE3);
        rprintfProgStrM("line 3");
        glcdSetAddress(4,LINE4);
        rprintfProgStrM("line 4");
        glcdSetAddress(4,LINE5);
        rprintfProgStrM("line 5");

        // run application program
        //oscope();
        lcdtest();

        return 0;   
}

void oscope(void)
{
        u08 i=0;
        u08 oldbuffer[128];
        u08 newbuffer[128];
        
        glcdClearScreen();

        while(1)
        {
                for(i=0; i<128; i++)
                        oldbuffer[i] = newbuffer[i];

                for(i=0; i<128; i++)
                        newbuffer[i] = a2dConvert8bit(0);

                for(i=0; i<128; i++)
                {
                        glcdClearDot(i,oldbuffer[i]>>2);
                        glcdSetDot(i,newbuffer[i]>>2);
                }
        }
}

void lcdtest(void)
{
        unsigned char key = 0;

        glcdClearScreen();

        glcdSetAddress(4,LINE2);
        glcdPutStr("Graphic LCD Test");
        glcdSetAddress(4,LINE3);
        glcdPutStr("HD61202/3 controller");
        glcdSetAddress(4,LINE4);
        glcdPutStr("KS0108/7 controller");
        glcdSetAddress(4,LINE5);
        glcdPutStr("Press buttons to");
        glcdSetAddress(4,LINE6);
        glcdPutStr("test functions...");
        glcdRectangle(0, 0, 64, 128);
  
        while(1)
        {
                timerPause(10);
                key = ~inb(PINA);
                glcdSetAddress(4,LINE7);
                rprintf("Button status: %x  ", key);

                if(key == KEY1)
                {
                        unsigned char i ;
                        glcdClearScreen();      
                        for ( i=0; i<128; i+=3)
                        {
                                glcdSetDot(i,63 - i/2);
                                glcdDelay(0x5fff);
                        }
                        for ( i=0; i<128; i+=3)
                        {
                                glcdClearDot(i,63 - i/2);
                                glcdDelay(0x5fff);
                        }
                }
                
                if(key == KEY2)
                {
                        glcdClearScreen();      
                        glcdCircle(25,20,17);
                        glcdDelay(0xffff);
                        glcdCircle(90,30,15);
                        glcdDelay(0xffff);
                        glcdCircle(55,30,23);
                        glcdDelay(0xffff);
                        glcdCircle(100,48,15);
                        glcdDelay(0xffff);
                        glcdCircle(34,50,10);
                        glcdDelay(0xffff);
                        glcdCircle(60,55,8);
                }
      
                if(key == KEY3)
                {
                        glcdClearScreen();      
                        glcdRectangle(54, 41, 6 , 12);
                        glcdDelay(0xffff);
                        glcdRectangle(34, 12, 32, 2);
                        glcdDelay(0xffff);
                        glcdRectangle(23, 34, 17, 21);
                        glcdDelay(0xffff);
                        glcdRectangle(62, 20, 42, 58);
                        glcdDelay(0xffff);
                        glcdRectangle(4 , 30, 12, 12);
                }
                
                if(key == KEY4)
                {
                        glcdClearScreen();      
                        glcdSetAddress(0,LINE1);        
                        glcdPutStr("LINE 1"); glcdDelay(0xffff);
                        glcdSetAddress(5,LINE2);
                        glcdPutStr("LINE 2"); glcdDelay(0xffff);
                        glcdSetAddress(10,LINE3);
                        glcdPutStr("LINE 3"); glcdDelay(0xffff);
                        glcdSetAddress(15,LINE4);
                        glcdPutStr("LINE 4"); glcdDelay(0xffff);
                        glcdSetAddress(20,LINE5);
                        glcdPutStr("LINE 5"); glcdDelay(0xffff);
                        glcdSetAddress(25,LINE6);
                        glcdPutStr("LINE 6"); glcdDelay(0xffff);
                        glcdSetAddress(30,LINE7);
                        glcdPutStr("LINE 7"); glcdDelay(0xffff);
                        glcdSetAddress(35,LINE8);
                        glcdPutStr("LINE 8"); glcdDelay(0xffff);
                }

                if(key == KEY5)
                {
                        glcdClearScreen();      
                        glcdSetAddress(0,LINE2);
                        glcdPutStr(" !");
                        glcdWriteChar('"');
                        glcdPutStr("#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ");
                        glcdPutStr("[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
                }
                
                if(key == KEY6)
                {
                        unsigned char i;
                        for (i=0; i<64; i++)
                        {
                                glcdStartLine(64- i - 1);
                                glcdDelay(0x5fff);
                        }
                }
                
                if(key == KEY7)
                {
                        unsigned char i;
                        for (i=0; i<64; i++)
                        {
                                glcdStartLine(i + 1);
                                glcdDelay(0x5fff);
                        }
                }
                
                if (key == KEY8)
                {
                        //      glcdBackLight(OFF);     
                        //      glcdBackLight(ON);      
                }   
        }
}
{FILE END}
{FOOTER START}

Powered by WebSVN v2.8.3