tuning
Dependencies: mbed TextLCD RisetEEPROM_LCD
main.cpp@0:360ef54256f3, 2019-03-18 (annotated)
- Committer:
- tamamfirdaus
- Date:
- Mon Mar 18 14:59:01 2019 +0000
- Revision:
- 0:360ef54256f3
tuninglcd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |