Bert Gereels & Dylan Timmerman

Dependencies:   mbed

Committer:
bertgereels
Date:
Wed Dec 14 13:35:53 2016 +0000
Revision:
0:620ca2412ef6
Capacitive Touch program; by Bert Gereels & Dylan Timmerman

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bertgereels 0:620ca2412ef6 1 #include "i2c_qt1070.h"
bertgereels 0:620ca2412ef6 2 extern "C" void mbed_reset();
bertgereels 0:620ca2412ef6 3
bertgereels 0:620ca2412ef6 4 namespace I2cQt1070Device{
bertgereels 0:620ca2412ef6 5 I2cQt1070::I2cQt1070(PinName sda, PinName scl, int address, int frequency)
bertgereels 0:620ca2412ef6 6 : I2CSlave(sda, scl){
bertgereels 0:620ca2412ef6 7
bertgereels 0:620ca2412ef6 8 this->address(address);
bertgereels 0:620ca2412ef6 9 this->frequency(frequency);
bertgereels 0:620ca2412ef6 10 }
bertgereels 0:620ca2412ef6 11
bertgereels 0:620ca2412ef6 12 void I2cQt1070::check_for_instruction(void){
bertgereels 0:620ca2412ef6 13 int addressed = receive();
bertgereels 0:620ca2412ef6 14 switch (addressed) {
bertgereels 0:620ca2412ef6 15 case I2CSlave::WriteAddressed:{
bertgereels 0:620ca2412ef6 16 printf("Write addressedd\r\n");
bertgereels 0:620ca2412ef6 17 process_write_request();
bertgereels 0:620ca2412ef6 18 break;
bertgereels 0:620ca2412ef6 19 }
bertgereels 0:620ca2412ef6 20 case I2CSlave::ReadAddressed:{
bertgereels 0:620ca2412ef6 21 printf("Read addressedd\r\n");
bertgereels 0:620ca2412ef6 22 send_register_to_master();
bertgereels 0:620ca2412ef6 23 break;
bertgereels 0:620ca2412ef6 24 }
bertgereels 0:620ca2412ef6 25 }
bertgereels 0:620ca2412ef6 26 }
bertgereels 0:620ca2412ef6 27
bertgereels 0:620ca2412ef6 28 void I2cQt1070::send_register_to_master(void){
bertgereels 0:620ca2412ef6 29 switch(qt1070Address){
bertgereels 0:620ca2412ef6 30 case READ_ID:{
bertgereels 0:620ca2412ef6 31 printf("Received id command\r\n");
bertgereels 0:620ca2412ef6 32 char id = qt1070.getId();
bertgereels 0:620ca2412ef6 33 char buffer[1];
bertgereels 0:620ca2412ef6 34 buffer[0] = id;
bertgereels 0:620ca2412ef6 35 write(buffer,1);
bertgereels 0:620ca2412ef6 36 break;
bertgereels 0:620ca2412ef6 37 }
bertgereels 0:620ca2412ef6 38 case READ_FIRMWARE:{
bertgereels 0:620ca2412ef6 39 printf("Received firmware command\r\n");
bertgereels 0:620ca2412ef6 40 char version = qt1070.getFirmware();
bertgereels 0:620ca2412ef6 41 char buffer[1];
bertgereels 0:620ca2412ef6 42 buffer[0] = version;
bertgereels 0:620ca2412ef6 43 write(buffer,1);
bertgereels 0:620ca2412ef6 44 break;
bertgereels 0:620ca2412ef6 45 }
bertgereels 0:620ca2412ef6 46 case READ_KEY_STATUS:{
bertgereels 0:620ca2412ef6 47 printf("Received key status command\r\n");
bertgereels 0:620ca2412ef6 48 char status = qt1070.getStatus();
bertgereels 0:620ca2412ef6 49 char buffer[1];
bertgereels 0:620ca2412ef6 50 buffer[0] = status;
bertgereels 0:620ca2412ef6 51 write(buffer,1);
bertgereels 0:620ca2412ef6 52 break;
bertgereels 0:620ca2412ef6 53 }
bertgereels 0:620ca2412ef6 54
bertgereels 0:620ca2412ef6 55 case RESET:{
bertgereels 0:620ca2412ef6 56 printf("Received reset command\r\n");
bertgereels 0:620ca2412ef6 57 mbed_reset();
bertgereels 0:620ca2412ef6 58 stop();
bertgereels 0:620ca2412ef6 59 break;
bertgereels 0:620ca2412ef6 60 }
bertgereels 0:620ca2412ef6 61 default:{
bertgereels 0:620ca2412ef6 62 printf("Unknown command byte recieved from master\r\n");
bertgereels 0:620ca2412ef6 63 }
bertgereels 0:620ca2412ef6 64 }
bertgereels 0:620ca2412ef6 65 }
bertgereels 0:620ca2412ef6 66
bertgereels 0:620ca2412ef6 67 int I2cQt1070::process_write_request(void){
bertgereels 0:620ca2412ef6 68 char nextQt1070Address = this->read();
bertgereels 0:620ca2412ef6 69 this->qt1070Address = nextQt1070Address;
bertgereels 0:620ca2412ef6 70 this->stop();
bertgereels 0:620ca2412ef6 71 }
bertgereels 0:620ca2412ef6 72
bertgereels 0:620ca2412ef6 73 };