Google weather APIから取得したお天気情報をVFDに表示します。

Dependencies:   NetServices mbed spxml

Committer:
kanpapa
Date:
Sat Nov 26 12:12:08 2011 +0000
Revision:
0:e89d01416461
beta version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kanpapa 0:e89d01416461 1 /*
kanpapa 0:e89d01416461 2
kanpapa 0:e89d01416461 3 VFD Control class for GP1059A01
kanpapa 0:e89d01416461 4
kanpapa 0:e89d01416461 5 ===============
kanpapa 0:e89d01416461 6 GP1059A01 INTERFACE CONNECTION
kanpapa 0:e89d01416461 7 ---------------
kanpapa 0:e89d01416461 8 1 D0 2 D1
kanpapa 0:e89d01416461 9 3 D2 4 D3
kanpapa 0:e89d01416461 10 5 D4 6 D5
kanpapa 0:e89d01416461 11 7 D6 8 D7
kanpapa 0:e89d01416461 12 9 GND 10 INT
kanpapa 0:e89d01416461 13 11 WR 12 RD
kanpapa 0:e89d01416461 14 13 CS 14 C/D
kanpapa 0:e89d01416461 15 15 5V 16 5V
kanpapa 0:e89d01416461 16 17 5V 18 GND
kanpapa 0:e89d01416461 17 19 GND 20 ebb(+70V)
kanpapa 0:e89d01416461 18
kanpapa 0:e89d01416461 19 =====================
kanpapa 0:e89d01416461 20 mbed CONNECTION
kanpapa 0:e89d01416461 21 ---------------------
kanpapa 0:e89d01416461 22 mbed GP1059A01(I/O)
kanpapa 0:e89d01416461 23 ---------------------
kanpapa 0:e89d01416461 24 p5 1 (D0) I/O
kanpapa 0:e89d01416461 25 p6 2 (D1) I/O
kanpapa 0:e89d01416461 26 p7 3 (D2) I/O
kanpapa 0:e89d01416461 27 p8 4 (D3) I/O
kanpapa 0:e89d01416461 28 p9 5 (D4) I/O
kanpapa 0:e89d01416461 29 p10 6 (D5) I/O
kanpapa 0:e89d01416461 30 p11 7 (D6) I/O
kanpapa 0:e89d01416461 31 p12 8 (D7) I/O
kanpapa 0:e89d01416461 32 p13 10 (INT) O
kanpapa 0:e89d01416461 33 p14 11 (WR) I
kanpapa 0:e89d01416461 34 p15 12 (RD) I
kanpapa 0:e89d01416461 35 p16 13 (CS) I
kanpapa 0:e89d01416461 36 p17 14 (C/D) I
kanpapa 0:e89d01416461 37 GND 9,18,19 (GND)
kanpapa 0:e89d01416461 38 =====================
kanpapa 0:e89d01416461 39
kanpapa 0:e89d01416461 40 */
kanpapa 0:e89d01416461 41
kanpapa 0:e89d01416461 42 #ifndef __VFD_GP1059_H__
kanpapa 0:e89d01416461 43 #define __VFD_GP1059_H__
kanpapa 0:e89d01416461 44
kanpapa 0:e89d01416461 45 #include "mbed.h"
kanpapa 0:e89d01416461 46
kanpapa 0:e89d01416461 47 class VFD_GP1059 {
kanpapa 0:e89d01416461 48 private:
kanpapa 0:e89d01416461 49 BusOut data;
kanpapa 0:e89d01416461 50 DigitalOut wr,rd,cs,cd;
kanpapa 0:e89d01416461 51 DigitalIn intr;
kanpapa 0:e89d01416461 52
kanpapa 0:e89d01416461 53 void init(){
kanpapa 0:e89d01416461 54 cs = 1;
kanpapa 0:e89d01416461 55 wr = 1;
kanpapa 0:e89d01416461 56 rd = 1;
kanpapa 0:e89d01416461 57 cd = 1;
kanpapa 0:e89d01416461 58 }
kanpapa 0:e89d01416461 59
kanpapa 0:e89d01416461 60 public:
kanpapa 0:e89d01416461 61 // constructor
kanpapa 0:e89d01416461 62 VFD_GP1059(PinName d0_pin,
kanpapa 0:e89d01416461 63 PinName d1_pin,
kanpapa 0:e89d01416461 64 PinName d2_pin,
kanpapa 0:e89d01416461 65 PinName d3_pin,
kanpapa 0:e89d01416461 66 PinName d4_pin,
kanpapa 0:e89d01416461 67 PinName d5_pin,
kanpapa 0:e89d01416461 68 PinName d6_pin,
kanpapa 0:e89d01416461 69 PinName d7_pin,
kanpapa 0:e89d01416461 70 PinName intr_pin,
kanpapa 0:e89d01416461 71 PinName wr_pin,
kanpapa 0:e89d01416461 72 PinName rd_pin,
kanpapa 0:e89d01416461 73 PinName cs_pin,
kanpapa 0:e89d01416461 74 PinName cd_pin) :
kanpapa 0:e89d01416461 75 data(d0_pin, d1_pin, d2_pin, d3_pin, d4_pin, d5_pin, d6_pin, d7_pin),
kanpapa 0:e89d01416461 76 intr(intr_pin),
kanpapa 0:e89d01416461 77 wr(wr_pin),
kanpapa 0:e89d01416461 78 rd(rd_pin),
kanpapa 0:e89d01416461 79 cs(cs_pin),
kanpapa 0:e89d01416461 80 cd(cd_pin) {
kanpapa 0:e89d01416461 81 init();
kanpapa 0:e89d01416461 82 cls();
kanpapa 0:e89d01416461 83 }
kanpapa 0:e89d01416461 84
kanpapa 0:e89d01416461 85 void send_cmd(uint8_t cmd){
kanpapa 0:e89d01416461 86 cd = 1; // C/D SET HIGH
kanpapa 0:e89d01416461 87 data = cmd; // COMMAND SET
kanpapa 0:e89d01416461 88 cs = 0; // CS SET LOW
kanpapa 0:e89d01416461 89 wr = 0; // WR SET LOW
kanpapa 0:e89d01416461 90 wait_us(2); // wait 2us
kanpapa 0:e89d01416461 91 wr = 1; // WR SET HIGH
kanpapa 0:e89d01416461 92 cs = 1; // CS SET HIGH
kanpapa 0:e89d01416461 93 wait_us(4); // wait 4us
kanpapa 0:e89d01416461 94
kanpapa 0:e89d01416461 95 return;
kanpapa 0:e89d01416461 96 }
kanpapa 0:e89d01416461 97
kanpapa 0:e89d01416461 98 void send_data(uint8_t data_value){
kanpapa 0:e89d01416461 99 cd = 0; // C/D SET HIGH
kanpapa 0:e89d01416461 100 data = data_value; // DATA SET
kanpapa 0:e89d01416461 101 cs = 0; // CS SET LOW
kanpapa 0:e89d01416461 102 wr = 0; // WR SET LOW
kanpapa 0:e89d01416461 103 wait_us(2); // wait 2us
kanpapa 0:e89d01416461 104 wr = 1; // WR SET HIGH
kanpapa 0:e89d01416461 105 cs = 1; // CS SET HIGH
kanpapa 0:e89d01416461 106 wait_us(4); // wait 4us
kanpapa 0:e89d01416461 107
kanpapa 0:e89d01416461 108 return;
kanpapa 0:e89d01416461 109 }
kanpapa 0:e89d01416461 110
kanpapa 0:e89d01416461 111 // Luminance Adjustment (06H)
kanpapa 0:e89d01416461 112 void luminance_adjustment(uint8_t data){
kanpapa 0:e89d01416461 113 send_cmd(6);
kanpapa 0:e89d01416461 114 send_data(data);
kanpapa 0:e89d01416461 115
kanpapa 0:e89d01416461 116 return;
kanpapa 0:e89d01416461 117 }
kanpapa 0:e89d01416461 118
kanpapa 0:e89d01416461 119 // 04H,05H,02H: Setting address of Write
kanpapa 0:e89d01416461 120 void set_write_read_address(uint16_t address){
kanpapa 0:e89d01416461 121 send_cmd(4); // 04H: Setting lower address of Write-Read
kanpapa 0:e89d01416461 122 send_data((uint8_t)(address & 0x0ff)); // mask upper address
kanpapa 0:e89d01416461 123
kanpapa 0:e89d01416461 124 send_cmd(5); // 05H: Setting upper address of Write-Read
kanpapa 0:e89d01416461 125 send_data((uint8_t)(address >> 8)); // 8bit shift
kanpapa 0:e89d01416461 126
kanpapa 0:e89d01416461 127 send_cmd(2); // 02H: Data Write
kanpapa 0:e89d01416461 128
kanpapa 0:e89d01416461 129 return;
kanpapa 0:e89d01416461 130 }
kanpapa 0:e89d01416461 131
kanpapa 0:e89d01416461 132 // 07H,08H: Setting address display started
kanpapa 0:e89d01416461 133 void set_disp_start_address(uint16_t address){
kanpapa 0:e89d01416461 134 send_cmd(7); // 07H: Setting lower address display started
kanpapa 0:e89d01416461 135 send_data((uint8_t)(address & 0x0ff));
kanpapa 0:e89d01416461 136
kanpapa 0:e89d01416461 137 send_cmd(8); // 08H: Setting upper address display started
kanpapa 0:e89d01416461 138 send_data((uint8_t)(address >> 8));
kanpapa 0:e89d01416461 139
kanpapa 0:e89d01416461 140 return;
kanpapa 0:e89d01416461 141 }
kanpapa 0:e89d01416461 142
kanpapa 0:e89d01416461 143 // Clear display memory
kanpapa 0:e89d01416461 144 void cls(){
kanpapa 0:e89d01416461 145 set_disp_start_address(0);
kanpapa 0:e89d01416461 146 set_write_read_address(0);
kanpapa 0:e89d01416461 147 for (int i = 0; i < 0x1fff; i++){
kanpapa 0:e89d01416461 148 send_data(0);
kanpapa 0:e89d01416461 149 }
kanpapa 0:e89d01416461 150 return;
kanpapa 0:e89d01416461 151 }
kanpapa 0:e89d01416461 152
kanpapa 0:e89d01416461 153 };
kanpapa 0:e89d01416461 154
kanpapa 0:e89d01416461 155 #endif