tuning

Dependencies:   mbed TextLCD RisetEEPROM_LCD

Committer:
tamamfirdaus
Date:
Mon Mar 18 14:59:01 2019 +0000
Revision:
0:360ef54256f3
tuninglcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tamamfirdaus 0:360ef54256f3 1 //Tuning dengan asumsi 4 data
tamamfirdaus 0:360ef54256f3 2
tamamfirdaus 0:360ef54256f3 3 #include "mbed.h"
tamamfirdaus 0:360ef54256f3 4 #include "TextLCD.h"
tamamfirdaus 0:360ef54256f3 5 #include <string>
tamamfirdaus 0:360ef54256f3 6 #include "eeprom.h"
tamamfirdaus 0:360ef54256f3 7
tamamfirdaus 0:360ef54256f3 8 #define eeprom_SDA PC_9 //Pin SDA
tamamfirdaus 0:360ef54256f3 9 #define eeprom_SCL PA_8 //Pin SCL
tamamfirdaus 0:360ef54256f3 10 #define lcd_SDA PB_9 //Pin SDA
tamamfirdaus 0:360ef54256f3 11 #define lcd_SCL PB_8 //Pin SCL
tamamfirdaus 0:360ef54256f3 12 #define EEPROM_ADDR 0x0 //Address EEPROM
tamamfirdaus 0:360ef54256f3 13
tamamfirdaus 0:360ef54256f3 14 EEPROM eepromTuning (eeprom_SDA, eeprom_SCL, EEPROM_ADDR, EEPROM::T24C256);
tamamfirdaus 0:360ef54256f3 15 I2C i2c_lcd(lcd_SDA, lcd_SCL);
tamamfirdaus 0:360ef54256f3 16 TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2); // I2C bus, PCF8574 Slaveaddress, LCD Type
tamamfirdaus 0:360ef54256f3 17
tamamfirdaus 0:360ef54256f3 18
tamamfirdaus 0:360ef54256f3 19 //Variable
tamamfirdaus 0:360ef54256f3 20 int32_t eepromData[5]; //Data yang disimpan di eepromTuning
tamamfirdaus 0:360ef54256f3 21 int tuningData[5]; //Data tuning
tamamfirdaus 0:360ef54256f3 22
tamamfirdaus 0:360ef54256f3 23 int buttonSelect; //Select
tamamfirdaus 0:360ef54256f3 24 int buttonUp;
tamamfirdaus 0:360ef54256f3 25 int buttonDown;
tamamfirdaus 0:360ef54256f3 26 int buttonData1;
tamamfirdaus 0:360ef54256f3 27 int buttonData2;
tamamfirdaus 0:360ef54256f3 28 int buttonData3;
tamamfirdaus 0:360ef54256f3 29 int buttonData4;
tamamfirdaus 0:360ef54256f3 30 int modeEdit; //Mode Edit
tamamfirdaus 0:360ef54256f3 31
tamamfirdaus 0:360ef54256f3 32 //Funtion and Procedure
tamamfirdaus 0:360ef54256f3 33 void tuningBaca();
tamamfirdaus 0:360ef54256f3 34 void tuningEdit();
tamamfirdaus 0:360ef54256f3 35 void showLCDEdit();
tamamfirdaus 0:360ef54256f3 36 void updateEEPROM();
tamamfirdaus 0:360ef54256f3 37 void showLCD();
tamamfirdaus 0:360ef54256f3 38
tamamfirdaus 0:360ef54256f3 39 int main(){
tamamfirdaus 0:360ef54256f3 40 //eepromTuning.clear(); //Menghapus data EEPROM
tamamfirdaus 0:360ef54256f3 41 modeEdit=0;
tamamfirdaus 0:360ef54256f3 42 tuningBaca();
tamamfirdaus 0:360ef54256f3 43 while(1){
tamamfirdaus 0:360ef54256f3 44 tuningEdit();
tamamfirdaus 0:360ef54256f3 45 }
tamamfirdaus 0:360ef54256f3 46 }
tamamfirdaus 0:360ef54256f3 47
tamamfirdaus 0:360ef54256f3 48 void tuningBaca(){
tamamfirdaus 0:360ef54256f3 49 int i;
tamamfirdaus 0:360ef54256f3 50 for(i=1;i<=4;i++){
tamamfirdaus 0:360ef54256f3 51 eepromTuning.read(i, tuningData[i]);
tamamfirdaus 0:360ef54256f3 52 }
tamamfirdaus 0:360ef54256f3 53 }
tamamfirdaus 0:360ef54256f3 54
tamamfirdaus 0:360ef54256f3 55 void tuningEdit(){
tamamfirdaus 0:360ef54256f3 56 if(buttonSelect==1){
tamamfirdaus 0:360ef54256f3 57 modeEdit=!modeEdit;
tamamfirdaus 0:360ef54256f3 58 wait(0.2);
tamamfirdaus 0:360ef54256f3 59 if(modeEdit==0){
tamamfirdaus 0:360ef54256f3 60 int i;
tamamfirdaus 0:360ef54256f3 61 for(i=1;i<=4;i++){
tamamfirdaus 0:360ef54256f3 62 eepromData[i]=(int32_t) tuningData[i];
tamamfirdaus 0:360ef54256f3 63 }
tamamfirdaus 0:360ef54256f3 64 updateEEPROM();
tamamfirdaus 0:360ef54256f3 65 }
tamamfirdaus 0:360ef54256f3 66 }
tamamfirdaus 0:360ef54256f3 67 if (modeEdit==1){
tamamfirdaus 0:360ef54256f3 68 if(buttonData1==1 && buttonUp==1){
tamamfirdaus 0:360ef54256f3 69 tuningData[1]+=1;
tamamfirdaus 0:360ef54256f3 70 showLCDEdit();
tamamfirdaus 0:360ef54256f3 71 }else if (buttonData1==1 && buttonDown==1){
tamamfirdaus 0:360ef54256f3 72 tuningData[1]-=1;
tamamfirdaus 0:360ef54256f3 73 showLCDEdit();
tamamfirdaus 0:360ef54256f3 74 }else if (buttonData2==1 && buttonUp==1){
tamamfirdaus 0:360ef54256f3 75 tuningData[2]+=1;
tamamfirdaus 0:360ef54256f3 76 showLCDEdit();
tamamfirdaus 0:360ef54256f3 77 }else if (buttonData2==1 && buttonDown==1){
tamamfirdaus 0:360ef54256f3 78 tuningData[2]-=1;
tamamfirdaus 0:360ef54256f3 79 showLCDEdit();
tamamfirdaus 0:360ef54256f3 80 }else if (buttonData3==1 && buttonUp==1){
tamamfirdaus 0:360ef54256f3 81 tuningData[3]+=1;
tamamfirdaus 0:360ef54256f3 82 showLCDEdit();
tamamfirdaus 0:360ef54256f3 83 }else if (buttonData3==1 && buttonDown==1){
tamamfirdaus 0:360ef54256f3 84 tuningData[3]-=1;
tamamfirdaus 0:360ef54256f3 85 showLCDEdit();
tamamfirdaus 0:360ef54256f3 86 }else if (buttonData4==1 && buttonUp==1){
tamamfirdaus 0:360ef54256f3 87 tuningData[4]+=1;
tamamfirdaus 0:360ef54256f3 88 showLCDEdit();
tamamfirdaus 0:360ef54256f3 89 }else if (buttonData4==1 && buttonDown==1){
tamamfirdaus 0:360ef54256f3 90 tuningData[4]-=1;
tamamfirdaus 0:360ef54256f3 91 showLCDEdit();
tamamfirdaus 0:360ef54256f3 92 }
tamamfirdaus 0:360ef54256f3 93 }
tamamfirdaus 0:360ef54256f3 94 }
tamamfirdaus 0:360ef54256f3 95
tamamfirdaus 0:360ef54256f3 96 void updateEEPROM(){
tamamfirdaus 0:360ef54256f3 97 int i;
tamamfirdaus 0:360ef54256f3 98 //eepromTuning.clear();
tamamfirdaus 0:360ef54256f3 99 for(i=1;i<=4;i++){
tamamfirdaus 0:360ef54256f3 100 eepromTuning.write(i, (int32_t) eepromData[i]);
tamamfirdaus 0:360ef54256f3 101 }
tamamfirdaus 0:360ef54256f3 102 }
tamamfirdaus 0:360ef54256f3 103 void showLCDEdit(){
tamamfirdaus 0:360ef54256f3 104 int i;
tamamfirdaus 0:360ef54256f3 105 for(i=1;i<=4;i++){
tamamfirdaus 0:360ef54256f3 106 lcd.locate(1,(2*i));
tamamfirdaus 0:360ef54256f3 107 lcd.printf("D");
tamamfirdaus 0:360ef54256f3 108 lcd.locate(1,(2*i+1));
tamamfirdaus 0:360ef54256f3 109 lcd.printf("%d",i);
tamamfirdaus 0:360ef54256f3 110 lcd.locate(2,(2*i));
tamamfirdaus 0:360ef54256f3 111 lcd.printf("%d", tuningData[i]);
tamamfirdaus 0:360ef54256f3 112 }
tamamfirdaus 0:360ef54256f3 113 }
tamamfirdaus 0:360ef54256f3 114
tamamfirdaus 0:360ef54256f3 115 void showLCD(){
tamamfirdaus 0:360ef54256f3 116 int32_t lcdData[4];
tamamfirdaus 0:360ef54256f3 117 int i;
tamamfirdaus 0:360ef54256f3 118 for(i=1;i<=4;i++){
tamamfirdaus 0:360ef54256f3 119 eepromTuning.read(i, lcdData[i]);
tamamfirdaus 0:360ef54256f3 120 lcd.locate(1,(2*i));
tamamfirdaus 0:360ef54256f3 121 lcd.printf("%d", lcdData[i]);
tamamfirdaus 0:360ef54256f3 122 }
tamamfirdaus 0:360ef54256f3 123 }