极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9714|回复: 0

从游戏手柄读取数据,在12864上显示

[复制链接]
发表于 2014-5-24 14:18:33 | 显示全部楼层 |阅读模式
本帖最后由 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]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 14:56 , Processed in 0.032798 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表