Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
iface.c
00001 #include "mbed.h" 00002 #include "iface.h" 00003 #include "memory.h" 00004 00005 Timeout timer; 00006 char keydown = 0; 00007 00008 extern I2C io; 00009 extern int channelPointer; 00010 extern char* channelData; 00011 extern int waddr; 00012 extern int raddr; 00013 00014 void nextChannel() { 00015 if (channelPointer < (CHANNELCOUNT - 1)) channelPointer++; 00016 } 00017 void previousChannel() { 00018 if (channelPointer > 0) channelPointer--; 00019 } 00020 void incrementValue() { 00021 if (channelData[channelPointer] < 255) channelData[channelPointer]++; 00022 } 00023 void decrementValue() { 00024 if (channelData[channelPointer] > 0) channelData[channelPointer]--; 00025 } 00026 void homeChannel() { 00027 channelPointer = 0; 00028 } 00029 void zeroValue() { 00030 channelData[channelPointer] = 0; 00031 } 00032 void maxValue() { 00033 channelData[channelPointer] = 255; 00034 } 00035 00036 void handle(char key) { 00037 switch(key) { 00038 case 0x11: 00039 homeChannel(); 00040 break; 00041 case 0x42: 00042 nextChannel(); 00043 break; 00044 case 0x12: 00045 previousChannel(); 00046 break; 00047 case 0x21: 00048 incrementValue(); 00049 break; 00050 case 0x24: 00051 decrementValue(); 00052 break; 00053 case 0x48: 00054 maxValue(); 00055 break; 00056 case 0x18: 00057 zeroValue(); 00058 break; 00059 case 0x14: 00060 saveMemory(); 00061 break; 00062 case 0x44: 00063 loadMemory(); 00064 break; 00065 } 00066 } 00067 00068 void keyhandle() { 00069 if(keydown) { 00070 handle(keydown); 00071 timer.attach_us(&keyhandle, 20000); 00072 } 00073 } 00074 00075 void keypress() { 00076 char byte0f, bytef0; 00077 io.read(raddr, &byte0f, 1); 00078 bytef0 = 0xF0; 00079 io.write(waddr, &bytef0, 1); 00080 io.read(raddr, &bytef0, 1); 00081 keydown = ~(byte0f | bytef0); 00082 if(keydown) { 00083 handle(keydown); 00084 if((keydown != 0x14) && (keydown != 0x44)) timer.attach_us(&keyhandle, 500000); 00085 } 00086 byte0f = 0x0F; 00087 io.write(waddr, &byte0f, 1); 00088 }
Generated on Thu Jul 14 2022 01:01:12 by
1.7.2