|
|
本帖最后由 caiwenping 于 2014-5-24 14:19 编辑
[pre lang="arduino" line="1" file="joystick12864.ino"]#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17
int x, y, a, b, c, d, e, f, stick;
int ButA = 7, ButB = 6, ButC = 9, ButD = 8, ButE = 3, ButF = 4, ButStick = 5;
void setup()
{
pinMode(22, OUTPUT); // pin 22 = PSB for 12864 SPI Mode
digitalWrite(22, LOW);
pinMode(ButA, INPUT);
pinMode(ButB, INPUT);
pinMode(ButC, INPUT);
pinMode(ButD, INPUT);
pinMode(ButE, INPUT);
pinMode(ButF, INPUT);
pinMode(ButStick, INPUT);
u8g.setFont(u8g_font_6x10);
u8g.setFontRefHeightExtendedText();
u8g.setDefaultForegroundColor();
u8g.setFontPosTop();
// flip screen, if required
u8g.setRot180();
}
void loop()
{
x = map(analogRead(1), 0, 1023, 0, 127);
y = map(analogRead(0), 0, 1023, 63, 0);
a = digitalRead(ButA);
b = digitalRead(ButB);
c = digitalRead(ButC);
d = digitalRead(ButD);
e = digitalRead(ButE);
f = digitalRead(ButF);
stick = digitalRead(ButStick);
u8g.firstPage();
do {
u8g.drawLine(64, 0, 64, 64);
u8g.drawLine(0, 32, 127, 32);
if(!stick)u8g.drawDisc(x, y, 2, U8G_DRAW_ALL);
else u8g.drawCircle(x, y, 2, U8G_DRAW_ALL);
if (!a)u8g.drawStr(0, 0, "A");
if (!c)u8g.drawStr(0, 9, "C");
if (!b)u8g.drawStr(8, 0, "B");
if (!d)u8g.drawStr(8, 9, "D");
if (!e)u8g.drawStr(0, 18, "E");
if (!f)u8g.drawStr(8, 18, "F");
} while ( u8g.nextPage() );
}[/code] |
|