void main(void) { init_lcd(); A0 = 0; A1 = 0; A2 = 0; START = 0; ALE = 0; display_lcd("Data "); while(1) { cmd_lcd(0xc0); START = 1; ALE = 0; START = 0; while(EOC == 0); float_lcd(VREF * ADC/MAX_REF); display_lcd(" volts"); delay_ms(1000); } }
void main() { init(); ES=1; EA=1; P0=0xFF; initialize(); Sensor=1; display_lcd(0x80, " reset "); delay(1000); while(1) { display_lcd(0x80, " In while loop "); if(Sensor==0) { /*sendMessage(); display_lcd(0x80, " Message "); display_lcd(0xC0, " Sent "); delay(1000); */ phoneCall(); display_lcd(0x80, "phone call"); display_lcd(0xC0, " "); delay(5000); continue; } } display_lcd(0x80, " breaked "); delay(1000); }
int main(int argc, char **argv) { int ret; int fd; char clr[] = {0x80}; char backlight[] = {0x8A, 30}; #define CMD(x) { x, sizeof(x) } struct { char *cmd; int len; } cmd[] = { CMD(clr), CMD(backlight), }; ssize_t sz; uint8_t mode = SPI_CPHA|SPI_CPOL; // clock high active, latch on rising edge uint8_t bits = 8; uint32_t speed = 500000; int i; int count=0, total_count=0; struct timeval tv1, tv2; srand(time(NULL)); ret = wiringPiSetup(); if(ret) { printf("wiringPi set up failed: %d\n", ret); exit(1); } // physical pin #24 on Bananpi // man gpio for pin mapping. pinMode(6, 1); // set to output mode // reset LCD digitalWrite(6, 1); usleep(1*1000); digitalWrite(6, 0); usleep(4*1000); // >2ms digitalWrite(6, 1); usleep(20*1000); // >10ms fd = open("/dev/spidev0.0", O_RDWR); if(fd<0) { printf("open device failed: %s\n", strerror(errno)); } // set SPI mode ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); if (ret == -1) { printf("cannot set SPI mode: %s\n", strerror(errno)); exit(1); } // set bits per word ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); if (ret == -1) { printf("cannot set bits per word: %s\n", strerror(errno)); exit(1); } // set speed ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); if (ret == -1) { printf("cannot set speed: %s\n", strerror(errno)); exit(1); } for(i=0; i<sizeof(cmd)/sizeof(cmd[0]); ++i) { printf("execute cmd %d\n", i); sz = write(fd, cmd[i].cmd, cmd[i].len); if(sz<0) { printf("write cmd[%d]-%d failed: %s\n", i, cmd[i].len, strerror(errno)); break; } usleep(1*1000); // no busy flag, 1ms might be safe } gettimeofday(&tv1, NULL); while(1) { count++; total_count++; switch(count%3) { case 0: random_draw_lcd(); display_lcd(fd); break; case 1: horizontal_line_draw_lcd(); display_lcd(fd); break; case 2: vertical_line_draw_lcd(); display_lcd(fd); break; } // get FPS if(count>=100) { unsigned long milisec; gettimeofday(&tv2, NULL); milisec = (tv2.tv_sec-tv1.tv_sec)*1000; if(tv2.tv_usec>tv1.tv_usec) { milisec += (tv2.tv_usec-tv1.tv_usec)/1000; } else { milisec -= 1000; milisec += (tv2.tv_usec/1000)+1000 - (tv1.tv_usec)/1000; } printf("FPS: %2.2f, %d frames passed\n", (float)count/(milisec+1)*1000, total_count ); count = 0; gettimeofday(&tv1, NULL); } } close(fd); return 0; }
/**MAIN FUNCTION**/ void main() { /** LOCAL VARIABLES DECLARATION **/ unsigned char x; sys_init(); while(1) { cmd_lcd(0X01); cmd_lcd(0X80); display_lcd("Waiting For Card...."); i=0; r_flag=0; while(!r_flag); if(!(strcmp(buff,"Enter password:"******"card is inserted"); cmd_lcd(0xc0); display_lcd("Processing......"); delay_ms(500); print("AAA\n");//SENDING PASSWORD r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); i=0; r_flag=0; display_lcd(buff); while(!r_flag);//WAITING FOR REPLY cmd_lcd(0x94); display_lcd(buff); print("READ 32 5\n"); //READ DATA FROM SMARTCARD r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0x01); display_lcd(buff); delay_ms(500); if(!(strcmp(buff,s_pass1))) { cmd_lcd(0x80); display_lcd("* UR CARD IS VALID *"); for(n=0;n<5;n++) { green=1; delay_ms(100); green=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card....."); r_flag=0;i=0;buff[0]='\0'; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); m: cmd_lcd(0x01); cmd_lcd(0x80); display_lcd("1: PAN CARD INFO."); cmd_lcd(0xC0); display_lcd("2: ATM TERMINAL "); cmd_lcd(0x94); display_lcd("3: VOTING SYSTEM "); cmd_lcd(0xd4); display_lcd("4: EXIT "); do { x=key(); //WAITINF FOR KEY PRESSING }while((x!='1')&&(x!='2')&&(x!='3')&&(x!='4')); if(x=='1') pancard_info(); //PERSONAL INFROMATION else if(x=='2') atm_terminal(); else if(x=='3') voting(); //VOTING CARD SYSTEM else if(x=='4') continue; goto m; } else if(!(strcmp(buff,s_pass2))) { cmd_lcd(0x80); display_lcd("* UR CARD IS VALID *"); for(n=0;n<5;n++) { green=1; delay_ms(100); green=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card....."); r_flag=0;i=0;buff[0]='\0'; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); reset_voting(); } else { cmd_lcd(0x80); display_lcd("*UR CARD IS INVALID*"); for(n=0;n<5;n++) { buzzer=1; delay_ms(100); buzzer=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card."); r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); } } else { cmd_lcd(0x01); cmd_lcd(0x80); display_lcd("PLEASE INSERT CARD"); cmd_lcd(0xC0); display_lcd(" PROPERLY "); delay_ms(1000); cmd_lcd(0x01); cmd_lcd(0x94); display_lcd("Pls Remove Card....."); r_flag=0; while(!r_flag); cmd_lcd(0xd4); display_lcd(buff); delay_ms(500); } } //main while loop end } //main loop end