tuning
Dependencies: mbed TextLCD RisetEEPROM_LCD
main.cpp
00001 //Tuning dengan asumsi 4 data 00002 00003 #include "mbed.h" 00004 #include "TextLCD.h" 00005 #include <string> 00006 #include "eeprom.h" 00007 00008 #define eeprom_SDA PC_9 //Pin SDA 00009 #define eeprom_SCL PA_8 //Pin SCL 00010 #define lcd_SDA PB_9 //Pin SDA 00011 #define lcd_SCL PB_8 //Pin SCL 00012 #define EEPROM_ADDR 0x0 //Address EEPROM 00013 00014 EEPROM eepromTuning (eeprom_SDA, eeprom_SCL, EEPROM_ADDR, EEPROM::T24C256); 00015 I2C i2c_lcd(lcd_SDA, lcd_SCL); 00016 TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2); // I2C bus, PCF8574 Slaveaddress, LCD Type 00017 00018 00019 //Variable 00020 int32_t eepromData[5]; //Data yang disimpan di eepromTuning 00021 int tuningData[5]; //Data tuning 00022 00023 int buttonSelect; //Select 00024 int buttonUp; 00025 int buttonDown; 00026 int buttonData1; 00027 int buttonData2; 00028 int buttonData3; 00029 int buttonData4; 00030 int modeEdit; //Mode Edit 00031 00032 //Funtion and Procedure 00033 void tuningBaca(); 00034 void tuningEdit(); 00035 void showLCDEdit(); 00036 void updateEEPROM(); 00037 void showLCD(); 00038 00039 int main(){ 00040 //eepromTuning.clear(); //Menghapus data EEPROM 00041 modeEdit=0; 00042 tuningBaca(); 00043 while(1){ 00044 tuningEdit(); 00045 } 00046 } 00047 00048 void tuningBaca(){ 00049 int i; 00050 for(i=1;i<=4;i++){ 00051 eepromTuning.read(i, tuningData[i]); 00052 } 00053 } 00054 00055 void tuningEdit(){ 00056 if(buttonSelect==1){ 00057 modeEdit=!modeEdit; 00058 wait(0.2); 00059 if(modeEdit==0){ 00060 int i; 00061 for(i=1;i<=4;i++){ 00062 eepromData[i]=(int32_t) tuningData[i]; 00063 } 00064 updateEEPROM(); 00065 } 00066 } 00067 if (modeEdit==1){ 00068 if(buttonData1==1 && buttonUp==1){ 00069 tuningData[1]+=1; 00070 showLCDEdit(); 00071 }else if (buttonData1==1 && buttonDown==1){ 00072 tuningData[1]-=1; 00073 showLCDEdit(); 00074 }else if (buttonData2==1 && buttonUp==1){ 00075 tuningData[2]+=1; 00076 showLCDEdit(); 00077 }else if (buttonData2==1 && buttonDown==1){ 00078 tuningData[2]-=1; 00079 showLCDEdit(); 00080 }else if (buttonData3==1 && buttonUp==1){ 00081 tuningData[3]+=1; 00082 showLCDEdit(); 00083 }else if (buttonData3==1 && buttonDown==1){ 00084 tuningData[3]-=1; 00085 showLCDEdit(); 00086 }else if (buttonData4==1 && buttonUp==1){ 00087 tuningData[4]+=1; 00088 showLCDEdit(); 00089 }else if (buttonData4==1 && buttonDown==1){ 00090 tuningData[4]-=1; 00091 showLCDEdit(); 00092 } 00093 } 00094 } 00095 00096 void updateEEPROM(){ 00097 int i; 00098 //eepromTuning.clear(); 00099 for(i=1;i<=4;i++){ 00100 eepromTuning.write(i, (int32_t) eepromData[i]); 00101 } 00102 } 00103 void showLCDEdit(){ 00104 int i; 00105 for(i=1;i<=4;i++){ 00106 lcd.locate(1,(2*i)); 00107 lcd.printf("D"); 00108 lcd.locate(1,(2*i+1)); 00109 lcd.printf("%d",i); 00110 lcd.locate(2,(2*i)); 00111 lcd.printf("%d", tuningData[i]); 00112 } 00113 } 00114 00115 void showLCD(){ 00116 int32_t lcdData[4]; 00117 int i; 00118 for(i=1;i<=4;i++){ 00119 eepromTuning.read(i, lcdData[i]); 00120 lcd.locate(1,(2*i)); 00121 lcd.printf("%d", lcdData[i]); 00122 } 00123 }
Generated on Fri Jul 22 2022 16:49:05 by 1.7.2