dort islem yapan hesap makinesi

Dependencies:   mbed TextLCD keypad

main.cpp

Committer:
marvas
Date:
2020-02-26
Revision:
5:cfcb666662ff
Parent:
4:1df9a3a723ff

File content as of revision 5:cfcb666662ff:

#include "mbed.h"
#include "TextLCD.h"
#include "Keypad.h"
#include <iostream>

DigitalOut bzr(PB_7);
Serial pc(USBTX,USBRX);

float sayi[4]= {0,0,0,0};
/*
sayi[0] girilen sayi
sayi[1] 1. sayi
sayi[2] 2sayi
sayi[3] sonuc
*/
char basilantus,islem;
TextLCD lcd(PB_0,PA_4,PC_3,PC_2,PB_3,PA_10);
Keypad key(PC_4, PB_13, PB_14,PB_15,PB_1,PB_2,PB_12,PA_11);
char key_table[] = {
    '1', '2', '3', '+',
    '4', '5', '6', '-',
    '7', '8', '9', '*',
    'C', '0', '=', '/'
};


int main()
{
    pc.baud(115200);
    // Init. RC522 Chip
  uint32_t key_num;
    while(true) {

        while ((key_num = key.read()) != 0) {
            bzr=1;wait_ms(10);bzr=0;
            basilantus=*(key_table + key_num-1);
            lcd.printf("%c",basilantus);
            switch(basilantus) {
            case '0'...'9'://if(basilantus>'0' && basilantus<'9')
                sayi[0]=sayi[0]*10+(basilantus-'0');
                break;
                case '*'...'/':
            /*case '-':
            case '+':
            case '*':
            case '/':*/
                islem=basilantus;
                sayi[1]=sayi[0];
                sayi[0]=0;
                break;
            case '=':
                sayi[2]=sayi[0];
                if(islem=='+')
                    sayi[3]=sayi[1]+sayi[2];
                else if(islem=='-')
                    sayi[3]=sayi[1]-sayi[2];
                else if(islem=='*')
                    sayi[3]=sayi[1]*sayi[2];
                else if(islem=='/')
                    sayi[3]=sayi[1]/sayi[2];

                lcd.printf("%.2f",sayi[3]);
                for(char temizle=0; temizle<=3; temizle++) {
                    sayi[temizle]=0;
                }
                islem=0;
                break;

            case 'C':
                lcd.cls();
                for(char temizle=0; temizle<=3; temizle++) {
                    sayi[temizle]=0;
                }
                islem=0;
                break;
            }

        }//   while ((key_num = key.read()) != 0) {

    }//  while(true) {

}//main