BLOGas.lt
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

ATmega 8 ir 128×64 lcd

Taigi kol laukiu dalių staklėms, iš neturėjimo ką veikti pasidariau Atmega8 valdoma 128×64 lcd ekrana. Taigi smulkiau.

Ekranas: RG12864B-BIW-V
Naudojama biblioteka: ks0108 (pilna intike mėtosi).

Testavimo schema:

Programa:

/*
* Copyright: Fabian Maximilian Thiele mailto:me@apetech.de
* Author: Fabian Maximilian Thiele
* Remarks: this Copyright must be included
* known Problems: none
* Version: 1.1
* Description: KS0108 Library Demo Program
*
*/

#include
#include
#include
#include

#include “ks0108.h”
#include “arial_bold_14.h”
#include “SC.h”
#include “Bitmap.h”

int main(void) {

PORTB = 0b00000000;

unsigned char a=70, b=1;

// Wait a little while the display starts up
for(volatile uint16_t i=0; i<15000; i++);

// Initialize the LCD
ks0108Init(0);

ks0108ClearScreen();
// Select a font
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
// Set a position
while(a)
{
a= a-b;
ks0108GotoXY(15,10);
// Print some text
ks0108Puts_P(PSTR(” Saulius app”));

// apibreziam saulius app
ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK);

// Once again :)
// Select a font
ks0108SelectFont(SC, ks0108ReadFontData, BLACK);
// Set a position

ks0108GotoXY(5,30);
// Print some text
ks0108Puts(”Mygtuku testas”);

ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);

}
////sugrizimui su go funkcija
pradzia:

////////////////mygtuku pasirinkimo meniu///////
ks0108ClearScreen();

a=15;
while(1)
{

ks0108SelectFont(SC, ks0108ReadFontData, BLACK);
// Set a position
ks0108GotoXY(5,5);
ks0108Puts(”Pasirinkite mygtuka:”);

////////////////////////////////////////////////////////////

ks0108DrawRoundRect(0, 43, 61, 20, 5, BLACK);
ks0108GotoXY(10,47);
ks0108Puts(”kairys”);

ks0108DrawRoundRect(65, 43, 61, 20, 5, BLACK);
ks0108GotoXY(75,47);
ks0108Puts(”desinys”);

/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////

//cheatas//////////////////////spaudziant abi knopkes

if(PINB==0b00000011)
{
for(a=0; a<20;a++){
ks0108DrawRoundRect(65, 43, 61, 20, 5, WHITE);
ks0108DrawRoundRect(0, 43, 61, 20, 5, WHITE);
}
for(a=0; a<10;a++){
ks0108DrawRoundRect(65, 43, 61, 20, 5, BLACK);
ks0108DrawRoundRect(0, 43, 61, 20, 5, BLACK);
}

ks0108ClearScreen();
while(1)
{
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
ks0108GotoXY(15,10);
// isspauzdinam zemelapi
LoadBitmap(IMAGE);

if(PINB==0b00000011)
{
goto pradzia;

}
}
}
else
{

///////////////////////////kairio spaudimas////////////

if(PINB==0b00000001)
{
for(a=0; a<20;a++){
ks0108DrawRoundRect(0, 43, 61, 20, 5, WHITE);
}
for(a=0; a<10;a++){
ks0108DrawRoundRect(0, 43, 61, 20, 5, BLACK);
}

ks0108ClearScreen();
while(1)
{

ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
ks0108GotoXY(15,10);
// Print some text
ks0108Puts_P(PSTR(”Paspaudei kairi”));

ks0108SelectFont(SC, ks0108ReadFontData, BLACK);
ks0108GotoXY(5,30);
ks0108Puts(”noredamas grizti “);
ks0108GotoXY(5,37);
ks0108Puts(” spausk ta pati mygtuka”);

if(PINB==0b00000001)
{
goto pradzia;

}

}

}
else{

//////////desinio spaudimas///////////////////
if(PINB==0b00000010)
{
for(a=0; a<20;a++){
ks0108DrawRoundRect(65, 43, 61, 20, 5, WHITE);
}
for(a=0; a<10;a++){
ks0108DrawRoundRect(65, 43, 61, 20, 5, BLACK);
}

ks0108ClearScreen();
while(1)
{
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
ks0108GotoXY(15,10);
// Print some text
ks0108Puts_P(PSTR(”Paspaudei desini”));
ks0108SelectFont(SC, ks0108ReadFontData, BLACK);
ks0108GotoXY(5,30);
ks0108Puts(”noredamas grizti “);
ks0108GotoXY(5,37);
ks0108Puts(” spausk ta pati mygtuka”);

if(PINB==0b00000010)
{
goto pradzia;

}

}
}
else{}}}

/////////////////////////////////////////

}

}

Aisku kaip visados buna programoje gali būti kablių, nes prasžiai parašiau tada dar kažka dariau tryniau na gal veiks :) Ir kas sakė, kad naudoti go funkcija yra blogai- bent man asmeniškai tai žiauriai gere funkcija, daug nešnekant video kaip kas kur

Rodyk draugams

Komentarai (2)

  1. Iš kart jei kas pastebejote ne viska iš kodo man iterpia: pirmos include tuscios (ten nlb svarbu, nes jei atsisiusyte ks0108 bibliotekas jos ten bus) svarbiausia programa esanti toliau, tai pat schemoje PB0 ir PB1 tarpusavyje neturetu buti sujungti, nes ten shemoj padaryta, kad simuliuojant galeciau patikrinti abieju knopkiu paspaudima vienu metu

  2. o kokia chema? :)

Rašyti komentarą