Schoolproject, Emulates a QT1070 from a touchberry

Dependencies:   mbed

Committer:
Perijah
Date:
Thu Nov 10 13:28:23 2016 +0000
Revision:
0:b7b55b8a4d2b
Child:
1:f4caacc4df1b
School project,; Emulates a QT1070 from a touchberry

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Perijah 0:b7b55b8a4d2b 1 #include "I2C_QT1070.h"
Perijah 0:b7b55b8a4d2b 2
Perijah 0:b7b55b8a4d2b 3 namespace QT1070touchemulator
Perijah 0:b7b55b8a4d2b 4 {
Perijah 0:b7b55b8a4d2b 5
Perijah 0:b7b55b8a4d2b 6 I2cQT1070::I2cQT1070(PinName sda, PinName scl, int address, int frequentie):I2CSlave(sda, scl)
Perijah 0:b7b55b8a4d2b 7 {
Perijah 0:b7b55b8a4d2b 8 this->address(address);
Perijah 0:b7b55b8a4d2b 9 int registerAdress = 0;
Perijah 0:b7b55b8a4d2b 10 frequency(frequentie);
Perijah 0:b7b55b8a4d2b 11 }
Perijah 0:b7b55b8a4d2b 12
Perijah 0:b7b55b8a4d2b 13 void I2cQT1070::check_for_instruction(void)
Perijah 0:b7b55b8a4d2b 14 {
Perijah 0:b7b55b8a4d2b 15 int adressed = receive();
Perijah 0:b7b55b8a4d2b 16 int command = 0;
Perijah 0:b7b55b8a4d2b 17 switch (adressed) {
Perijah 0:b7b55b8a4d2b 18 case I2CSlave::ReadAddressed:
Perijah 0:b7b55b8a4d2b 19 printf("Read addressed \r\n");
Perijah 0:b7b55b8a4d2b 20
Perijah 0:b7b55b8a4d2b 21 send_data_to_master();
Perijah 0:b7b55b8a4d2b 22 break;
Perijah 0:b7b55b8a4d2b 23
Perijah 0:b7b55b8a4d2b 24 case I2CSlave::WriteAddressed:
Perijah 0:b7b55b8a4d2b 25 printf("Write addressed \r\n");
Perijah 0:b7b55b8a4d2b 26 // process_instruction();
Perijah 0:b7b55b8a4d2b 27 save_register_adress();
Perijah 0:b7b55b8a4d2b 28 // command = read();
Perijah 0:b7b55b8a4d2b 29
Perijah 0:b7b55b8a4d2b 30 break;
Perijah 0:b7b55b8a4d2b 31 }
Perijah 0:b7b55b8a4d2b 32
Perijah 0:b7b55b8a4d2b 33 }
Perijah 0:b7b55b8a4d2b 34
Perijah 0:b7b55b8a4d2b 35 void I2cQT1070::save_register_adress(){
Perijah 0:b7b55b8a4d2b 36 registerAdress = read();
Perijah 0:b7b55b8a4d2b 37 printf("This is what the read function goves \r\n");
Perijah 0:b7b55b8a4d2b 38 printf("" + registerAdress);
Perijah 0:b7b55b8a4d2b 39 stop();
Perijah 0:b7b55b8a4d2b 40 }
Perijah 0:b7b55b8a4d2b 41
Perijah 0:b7b55b8a4d2b 42 void I2cQT1070::send_data_to_master()
Perijah 0:b7b55b8a4d2b 43 {
Perijah 0:b7b55b8a4d2b 44
Perijah 0:b7b55b8a4d2b 45 switch(registerAdress) {
Perijah 0:b7b55b8a4d2b 46
Perijah 0:b7b55b8a4d2b 47
Perijah 0:b7b55b8a4d2b 48 case CHIP_ID: {
Perijah 0:b7b55b8a4d2b 49 printf("received CHIP_ID command \r\n");
Perijah 0:b7b55b8a4d2b 50 char value[1];
Perijah 0:b7b55b8a4d2b 51 value[0] = Qt1070Chip.getChipID();
Perijah 0:b7b55b8a4d2b 52 write(value, 1);
Perijah 0:b7b55b8a4d2b 53
Perijah 0:b7b55b8a4d2b 54 break;
Perijah 0:b7b55b8a4d2b 55 }
Perijah 0:b7b55b8a4d2b 56
Perijah 0:b7b55b8a4d2b 57 case FIRMWARE: {
Perijah 0:b7b55b8a4d2b 58 printf("received FIRMWARE command \r\n");
Perijah 0:b7b55b8a4d2b 59 char value2[1];
Perijah 0:b7b55b8a4d2b 60 value2[0] = Qt1070Chip.getFirmware();
Perijah 0:b7b55b8a4d2b 61 write(value2, 1);
Perijah 0:b7b55b8a4d2b 62 break;
Perijah 0:b7b55b8a4d2b 63 }
Perijah 0:b7b55b8a4d2b 64 case KEY_STATUS: {
Perijah 0:b7b55b8a4d2b 65 printf("received KEY_STATUS command \r\n");
Perijah 0:b7b55b8a4d2b 66 char value3[1];
Perijah 0:b7b55b8a4d2b 67 value3[0] = Qt1070Chip.getKeystate();
Perijah 0:b7b55b8a4d2b 68 write(value3, 1);
Perijah 0:b7b55b8a4d2b 69 break;
Perijah 0:b7b55b8a4d2b 70 }
Perijah 0:b7b55b8a4d2b 71 case RESET: {
Perijah 0:b7b55b8a4d2b 72 printf("recieved WRITE_DATA command \r\n");
Perijah 0:b7b55b8a4d2b 73 break;
Perijah 0:b7b55b8a4d2b 74 }
Perijah 0:b7b55b8a4d2b 75
Perijah 0:b7b55b8a4d2b 76 default: {
Perijah 0:b7b55b8a4d2b 77 printf("unknown command\n\r");
Perijah 0:b7b55b8a4d2b 78 }
Perijah 0:b7b55b8a4d2b 79 }
Perijah 0:b7b55b8a4d2b 80
Perijah 0:b7b55b8a4d2b 81 }
Perijah 0:b7b55b8a4d2b 82
Perijah 0:b7b55b8a4d2b 83
Perijah 0:b7b55b8a4d2b 84
Perijah 0:b7b55b8a4d2b 85 };