⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 This is example of using Atmel at89c5131 MCU with at49db11(spi dataflash) and epson s1d1335 graphic
💻 C
字号:
#include "spi.h"
#include "flash.h"
#include "kbd.h"
#include "lcd.h"
#include "font.h"
#include "consts_structs.h"

//--------------------------------------------------------
void DrawCursor(int x1,int x2,int oldpos, int newpos)
{
	if(oldpos >= 0)
		fill_rect_gr((x1) << 3, (oldpos) << 4, (x2) << 3, (oldpos + 1) << 4, 0);
	if(newpos >= 0)
		fill_rect_gr((x1) << 3, (newpos) << 4, (x2) << 3, (newpos + 1) << 4, 1);
}


void LoadFontToFlash()
{
	unsigned short pageNum = 8,i,j; 
	OutStringXY("Erasing flash...",10,7);
	SpiEraseChip();
	OutStringXY("Loading font ...",10,7);
	i = 0;
	while(i<4096)
	{
		for(j = 0; j < 264;j++)
		{
			flash_buf[j] = FNT_GOST[i];
			i++;
			if (i>4095) break;
		}
		SpiWritePage(pageNum,0,flash_buf,264);
		pageNum++;
	}
	

	OutStringXY("Loading symbols ",10,7);
	SpiWritePage(SYMB_ZERO_PAGE,0,zero,256);
	SpiWritePage(SYMB_ONE_PAGE,0,one,256);
	SpiWritePage(SYMB_TWO_PAGE,0,two,256);
	SpiWritePage(SYMB_THREE_PAGE,0,three,256);
	SpiWritePage(SYMB_FOUR_PAGE,0,four,256);
	SpiWritePage(SYMB_FIVE_PAGE,0,five,256);
	SpiWritePage(SYMB_SIX_PAGE,0,six,256);
	SpiWritePage(SYMB_SEVEN_PAGE,0,seven,256);
	SpiWritePage(SYMB_EIGHT_PAGE,0,eight,256);
	SpiWritePage(SYMB_NINE_PAGE,0,nine,256);


	SpiWritePage(SYMB_KILO_PAGE,0,kilo,256);
	SpiWritePage(SYMB_MILLI_PAGE,0,mil,144);
	SpiWritePage(SYMB_MICRO_PAGE,0,mic,144);
	SpiWritePage(SYMB_OMEGA_PAGE,0,om,144);
	OutStringXY("      OK!       ",10,7);
}
//--------------------------------------------------------------------------------------------
void main()
{
	unsigned short maxRow = 3, currentRow = 0,oldRow = 0, yOffset = 2;

	InitKbd();
	InitSpi();
	InitLCD();
	OutStringXY("Format flash",2,2);
	OutStringXY("Test 1",2,3);
	OutStringXY("Test 2",2,4);
	DrawCursor(1,15,oldRow + yOffset,currentRow + yOffset);
	while(1)
	{
		switch(GetKey())
		{
			case KEY_DOWN:
				oldRow = currentRow;
				currentRow++;
				if (currentRow > maxRow -1 ) currentRow = 0;
				DrawCursor(1,15,oldRow + yOffset,currentRow + yOffset);
			break;

			case KEY_UP:
				oldRow = currentRow;
				if(currentRow > 0)
					currentRow--;
				else 
					currentRow = maxRow - 1;
				DrawCursor(1,15,oldRow + yOffset,currentRow + yOffset);
			break;

			case KEY_ENTER:
				if (currentRow == 0)
				{
				 	LoadFontToFlash();
				}
			break;
		}
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -