int main(void) { DrvUART_Close(UART_PORT0); //------------------ Init(); Initial_pannel(); clr_all_pannal(); while(1) { seg_display(hitung); /*UNLOCKREG(); SYSCLK->PWRCON.XTL12M_EN = 1;//Enable 12MHz Crystal SYSCLK->CLKSEL0.HCLK_S = 0; LOCKREG();*/ servo_tutup(); //DrvSYS_Delay(10); Initial_pannel(); DrvGPIO_ClrBit(E_GPD, 14); print_lcd(0,"Selamat Datang"); print_lcd(1,"1. Kumpul Borang"); print_lcd(2,"2. Absen Doang"); print_lcd(3," > Silakan Tekan:"); //DrvSYS_Delay(10000); key=Scankey(); while(key==4){ bacarfid(); } while(key==1){ kumpul(); } while (key==2){ absen(); print_lcd(2,"3. ADC="); DrvADC_StartConvert(); adc=DrvADC_GetConversionData(7); Show_Word(3,5,adc/1000+'0'); Show_Word(3,6,adc%1000/100+'0'); Show_Word(3,7,adc%100/10+'0'); Show_Word(3,8,adc%10+'0'); } DrvGPIO_SetBit(E_GPC,12); DrvSYS_Delay(1000); } }
void absen(){ uint8_t hasiluart[8]; clr_all_pannal(); while(key==2){ DrvGPIO_ClrBit(E_GPC,12); DrvSYS_Delay(10000); print_lcd(0,"Tap Kartu Anda"); print_lcd(1,"Pada Reader"); bacarfid(); DrvUART_Read(UART_PORT0,hasiluart,1); if(hasiluart[0]=='B'){ clr_all_pannal(); print_lcd(0,"Terima Kasih :)"); print_lcd(1,"Tito Alvi"); hitungabsen++; DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); print_lcd(0,"Terima Kasih :)"); DrvSYS_Delay(5000000); main(); } if(hasiluart[0]!='B'){ clr_all_pannal(); print_lcd(0,"Maaf :("); print_lcd(1,"Nama kamu gak"); print_lcd(2,"Ada di Basis Data"); print_lcd(3,"COBA LAGI !!!"); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(500000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(500000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); delay(5000000); DrvSYS_Delay(2000000); absen(); } } }
void display_info_timer(void*) { char lcd_text_buf[33]; if(try_to_connect == 1) { Fl::repeat_timeout(0.1, &display_info_timer); return; } if(display_info == SENT_DATA) { sprintf(lcd_text_buf, "stream sent\n%0.2lfMB", kbytes_sent / 1024); print_lcd(lcd_text_buf, strlen(lcd_text_buf), 0, 1); } if(display_info == STREAM_TIME && timer_is_elapsed(&stream_timer)) { sprintf(lcd_text_buf, "stream time\n%s", timer_get_time_str(&stream_timer)); print_lcd(lcd_text_buf, strlen(lcd_text_buf), 0, 1); } if(display_info == REC_TIME && timer_is_elapsed(&rec_timer)) { sprintf(lcd_text_buf, "record time\n%s", timer_get_time_str(&rec_timer)); print_lcd(lcd_text_buf, strlen(lcd_text_buf), 0, 1); } if(display_info == REC_DATA) { sprintf(lcd_text_buf, "record size\n%0.2lfMB", kbytes_written / 1024); print_lcd(lcd_text_buf, strlen(lcd_text_buf), 0, 1); } Fl::repeat_timeout(0.1, &display_info_timer); }
void print_long_message(char * message) { uint8_t head; uint8_t tail; uint8_t lcd_display[16]; uint16_t k; for (tail = 0; tail < strlen(message) - 15; tail++) { for(head = 0; head < 16; head++) { lcd_display[head] = message[head + tail]; } print_lcd(lcd_display); for (k = 0; k < 100; k++) { delay(10000); } } }
void __attribute__((__interrupt__)) _U2RXInterrupt( void ) { if (U2STAbits.OERR) { U2STAbits.OERR = 0; } RXmsg[RXct] = U2RXREG; //print_lcd("hello"); if (!ipcommand && RXct> 4 && !strncmp(RXmsg,"+IPD", strlen("+IPD"))){ ipcommand = 1; } if (RXct>0 && ((!ipcommand && (RXmsg[RXct] == '\n' && RXmsg[RXct-1] == '\r')) || (ipcommand &&(RXmsg[RXct] == '}')))) {//(RXmsg[RXct] = 'K') & (RXmsg[RXct-1] = 'O')) { RXmsg[RXct-1] = '\0'; int m; ipcommand=0; char rxBuf[40]; int rxBuffIndex=0; int gpsIndex=0; if (RXct> 4 && !strncmp(RXmsg,"+IPD", strlen("+IPD"))){ //print_lcd("HERE"); //lcd_clear(); //print_lcd(RXmsg); for (m = 0; m < RXct; m++){ if (RXmsg[m] == '@'){ //update rover location //print_lcd("aaa"); m++; while(RXmsg[m] !='{' && RXmsg[m] !='\0'){ //numGPSpoints = numGPSpoints*10+(RXmsg[m]-'0'); m++; } int k = 0; for(k = 0;k<1;k++){ rxBuffIndex = 0; m++; for(;RXmsg[m] !='}';m++){ rxBuf[rxBuffIndex++]=RXmsg[m]; } rxBuf[rxBuffIndex]='\0'; // double roverTemp1, roverTemp2; sscanf(rxBuf,"%lf,%lf", &roverTemp1,&roverTemp2); roverlat[roverlatIndex] = roverLat; roverlog[roverlogIndex] = roverLog; roverlatIndex = (roverlatIndex+1)%ROVER_LEN; roverlogIndex = (roverlogIndex+1)%ROVER_LEN; gpsIndex++; m++; m++; } /*sprintf(outputBuf, "%lf", roverLog); lcd_clear(); print_lcd(outputBuf); lcd_line2(); sprintf(outputBuf, "%lf", roverLat); print_lcd(outputBuf);*/ gpsLock=1; break; } if (RXmsg[m] == '$'){ //print_lcd("aaa"); m++; while(RXmsg[m] !='{' && RXmsg[m] !='\0'){ numGPSpoints = numGPSpoints*10+(RXmsg[m]-'0'); m++; } int k = 0; for(k = 0;k<numGPSpoints;k++){ rxBuffIndex = 0; m++; for(;RXmsg[m] !='}';m++){ rxBuf[rxBuffIndex++]=RXmsg[m]; } rxBuf[rxBuffIndex]='\0'; // sscanf(rxBuf,"%lf,%lf", &gpsLonge[gpsIndex],&gpsLat[gpsIndex]); gpsIndex++; m++; m++; } sprintf(outputBuf, "%lf", gpsLat[numGPSpoints-1]); print_lcd(outputBuf); lcd_line2(); sprintf(outputBuf, "%lf", gpsLonge[numGPSpoints-1]); print_lcd(outputBuf); //waypointsReady = 1; waypointsReady = 1; break; } } } if (RXct> 14 && !strncmp(RXmsg,"+CGPSINFO:", strlen("+CGPSINFO:"))){ RXmsg[RXct-1] = '\0'; int q; int commaCount = 0; int cgpsOffset = 10; //offset to gps data in string for (cgpsOffset = 0; cgpsOffset <RXct;cgpsOffset++ ){ if (RXmsg[cgpsOffset] == ':'){ break; } } cgpsOffset++; int latIndex = 0; int logIndex = 0; char latBuf[60]; //buffer for lat char logBuf[60]; //buffer for long //print_lcd("gps not locked"); if (RXmsg[cgpsOffset] == ','){ //remove 0 && if not test }else{ //strcpy(RXmsg,"+CGPSINFO:4567.87,N,8546.12,date,utc,alt"); //copy over test string for (q = cgpsOffset; RXmsg[q] !='\0' && q <RXct ; q++){ if (commaCount == 0 && RXmsg[q]!=','){ latBuf[latIndex++]=RXmsg[q]; } if (commaCount == 0 && RXmsg[q]==','){ latBuf[latIndex++]='\0'; sscanf(latBuf, "%lf", &roverLat); } if (commaCount == 2 && RXmsg[q]!=','){ logBuf[logIndex++]=RXmsg[q]; } if (commaCount == 2 && RXmsg[q]==','){ logBuf[logIndex++]='\0'; sscanf(logBuf, "%lf", &roverLog); //break; } if (RXmsg[q]==','){ commaCount++; } } //test /*sprintf(outputBuf, "%lf", roverLat); lcd_clear(); print_lcd(outputBuf); print_lcd(" "); sprintf(outputBuf, "%lf",roverLog); print_lcd(outputBuf);*/ gpsLock=1; //while (1); } /* lcd_clear(); print_lcd(RXmsg);*/ } RXct = 0; //lcd_clear(); //:wq //delay_ms(100); //print_lcd(RXmsg); } else { RXct++; } IFS1bits.U2RXIF = 0; }
int main ( void ) { //TRISA = 0b0010000000000000; TRISA = 0b00001111; TRISAbits.TRISA12 = 0; TRISCbits.TRISC1 = 0; TRISCbits.TRISC2 = 0; TRISCbits.TRISC3 = 0; TRISCbits.TRISC4 = 0; //TRISD = 0; TRISD = 0b0000000000010000; // RD11: DIR2; RD8: PWM2 //TRISE = 0b00001000; TRISE = 0b00001000; // RE6: DIR1; RE0: PWM1 TRISEbits.TRISE7 = 0; //LCD an _PCFG16 = 1; // AN16 is digital _PCFG17 = 1; // AN17 is digital _PCFG18 = 1; // AN18 is digital _PCFG19 = 1; // AN19 is digital _PCFG20 =1; _PCFG31=1; //pwm analog select _PCFG24=1; _PCFG30=1; //RE4 for lcd r/s _PCFG28=1; TRISEbits.TRISE4 = 0; AD1PCFGHbits.PCFG28 = 1; AD1PCFGHbits.PCFG27 = 1; AD1PCFGHbits.PCFG30 = 1; AD1PCFGHbits.PCFG24 = 1; AD1PCFGH = 0x0020; TRISAbits.TRISA13 = 1; //set pwm low PWM1=0; PWM2=0; SYS_Initialize ( ) ; CLKDIVbits.FRCDIV = 0; CLKDIVbits.PLLPOST = 0; // N2 = 2 CLKDIVbits.PLLPRE = 0; // N1 = 2 PLLFBD = (Fosc*N1_default*N2_default/Ffrc) - M_default; // M = 8 -> Fosc = 7.3728 MHz * 8 / 2 / 2 = 16 MHz while(!OSCCONbits.LOCK); // Wait for PLL to lock RCONbits.SWDTEN = 0; // Disable Watch Dog Timer //TRISF = 0; gpsLock = 0; lcd_init(); print_lcd("Initializing"); //delay_ms(500); //lcd_clear(); /*lcd test char line1[] = " On Route "; char line2[] = " Arrived "; //send_command_byte(0xFF); //while(1){send_command_byte(0xFF);send_data_byte(0);} // delay_ms(2); //send_command_byte(0x02); // Go to start of line 1 //send_command_byte(0b00001111); // Display: display on, cursor on, blink on //send_command_byte(0b00000110); // Set entry mode: ID=1, S=0 //send_command_byte(0b00000001); // Clear display print_lcd(line1); delay_ms(5000); lcd_clear(); print_lcd(line2); //send_command_byte(0xC0); // Go to start of line 1 //while(1){send_command_byte(0b00000001);} while(1);*/ /*int a; long long int ct; int i; int j=0;*/ //i2c init //uart init UART_Initialize(); delayMs(100); /* while(1){//test for delay ms configuration //PORTDbits.RD1 = 1; //delayUs(10); //for(i = 0;i <7;i++); delayMs(10); PORTDbits.RD12 = 1; //for (i = 0; i < 1000; i++); //PORTDbits.RD1 = 0; //for(i = 0;i <7;i++); delayMs(10); PORTDbits.RD12 = 0; //for (i = 0; i < 1000; i++); }*/ //ultrasonic test /* while(1){ long double x; delayMs(500); PORTEbits.RE4 = 1; //TRIGGER HIGH PORTDbits.RD5 = 1; delay_us(10); //10uS Delay lcd_clear(); ultraSonicEn = 1; ultraSonicCount = 0; PORTEbits.RE4 = 0; //TRIGGER LOW PORTDbits.RD5 = 0; while (!PORTDbits.RD4); //Waiting for Echo IEC0bits.T2IE = 1; //enable timer while(PORTDbits.RD4);// IEC0bits.T2IE = 0; //disable timer x = ultraSonicCount/TICKS_PER_METER; sprintf(outputBuf,"%lf",x); print_lcd(outputBuf); }*/ //TX_str(endGPS); //delayMs(3000); //TX_str(startGPS); /*TX_str(startGPShot); delayMs(2000); while ( !gpsLock ) { TX_str(getGPS); delayMs(500); }*/ //TCP code TX_str(openNet); delayMs(5000); TX_str(openConnection); delayMs(5000); // while(!BUTTON_IsPressed ( BUTTON_S3 )); //TX_str(sprintf("%s%d\r",sendTCP, strlen("10"))); sprintf(outputBuf2,"2\n%lf,%lf\n\r",roverLog,roverLat ); sprintf(cmdBuf,"%s%d\r", sendTCP,strlen(outputBuf2)); TX_str(cmdBuf); delayMs(3000); TX_str(outputBuf2); while(!waypointsReady || !gpsLock); //while(1); delayMs(7000); lcd_clear(); print_lcd("waypoints locked"); i2c_init(); //i2c_write3(0x3c, 0x00, 0x70); i2c_write3(0x3c, 0x00, 0b00011000); //i2c_write3(0x3c, 0x01, 0b11000000); i2c_write3(0x3c, 0x01, 0xA0); i2c_write3(0x3c, 0x02, 0x00); //timer init, do this after other initializations motorDuty=0; tim1_init(); tim2_init(); /* double angleTolerance = 8.0; motorDuty=2; while (1){ //adjust double angleDiff = headingDiff(0,roverHeading ); if (angleDiff > 0 ||abs(angleDiff) > 175 ){ //turn left PWM1_DIR = 0; //left NOTE: 0 is forward, 1 is reverse PWM2_DIR = 1; //right } else{ // turn right PWM1_DIR = 1; PWM2_DIR = 0; } if (abs(angleDiff) < angleTolerance){ motorDuty = 0; //break; }else{ //motorDuty =4; motorDuty =2; } delayMs(13); updateHeading(); }*/ //hardcoded gps for tcpip test /*while(1){ // PORTDbits.RD5 = 1; // for (a = 0; a < (100/33); a++) {} // PORTDbits.RD5 = 0; // for (a = 0; a < (100/33); a++) {} ct = 0; //TMR2 = 0;//Timer Starts delayMs(60); PORTEbits.RE4 = 1; //TRIGGER HIGH PORTDbits.RD5 = 1; delay_us(15); //10uS Delay PORTEbits.RE4 = 0; //TRIGGER LOW PORTDbits.RD5 = 0; while (!PORTDbits.RD4){ //Waiting for Echo ct++; } //T2CONbits.TON = 1; while(PORTDbits.RD4) { ct++; }// { //T2CONbits.TON = 0; sprintf(outputBuf,"%lld", ct); //a = TMR2; //a = a / 58.82; //long int p; //for(p = 0; p <100000; p++); }*/ //tim1_init(); //while ( 1 ); //UART_Initialize(); /* Infinite Loop */ /* long int i; while ( 1 ) {//test for delay ms configuration //PORTDbits.RD1 = 1; delayMs(10); PORTDbits.RD12 = 1; //for (i = 0; i < 1000; i++); //PORTDbits.RD1 = 0; delayMs(10); PORTDbits.RD12 = 0; //for (i = 0; i < 1000; i++); }*/ //IEC0bits.T1IE = 0; //IEC0bits.T1IE = 1; //motorDuty =2; motorStopFlag = 0; //ready to go char tempBuf1[50]; int wapointsVisited; double desiredHeading = 0; double dToWaypoint = 99999.9; double angleTolerance = 6.0; for (wapointsVisited =0; wapointsVisited<numGPSpoints;wapointsVisited++ ) { dToWaypoint = 99999.9; while (1) { int f; roverLog = 0; roverLat = 0; for(f = 0; f < ROVER_LEN; f++){ roverLog+=roverlog[f]/ROVER_LEN_D; roverLat+=roverlat[f]/ROVER_LEN_D; } dToWaypoint = dist(convertGPSToDeg(roverLat),convertGPSToDeg(roverLog),convertGPSToDeg(gpsLat[wapointsVisited]),convertGPSToDeg(gpsLonge[wapointsVisited])); if(dToWaypoint <= 3.0){break;} //go to next waypoint desiredHeading = 330.0; desiredHeading = bearing(convertGPSToDeg(roverLat),convertGPSToDeg(roverLog),convertGPSToDeg(gpsLat[wapointsVisited]),convertGPSToDeg(gpsLonge[wapointsVisited])); updateHeading(); if (!(abs(headingDiff(desiredHeading,roverHeading )) < angleTolerance)) { motorDuty = 0; //stop delayMs(300); while (1) //ADJUSTMENT LOOP { double angleDiff = headingDiff(desiredHeading,roverHeading ); //double dist = ultraSonicPing(); /*sprintf(tempBuf1,"%f",dist); lcd_clear(); print_lcd(tempBuf1);*/ if (abs(angleDiff) < angleTolerance){ motorDuty = 0; /*sprintf(tempBuf1,"%f",roverHeading); IEC0bits.T1IE = 0; print_lcd(tempBuf1); IEC0bits.T1IE = 1;*/ break; } if (angleDiff > 0 || abs(angleDiff) > 175 ){ //turn right /*PORTDbits.RD4 = 1; //right 0 is forwards, 1 i backwards PORTDbits.RD2 = 1; PORTDbits.RD8 = 0; //left*/ PWM1_DIR = 0; //left NOTE: 0 is forward, 1 is reverse PWM2_DIR = 1; //right } else{ // turn left /*PORTDbits.RD4 = 0; //right 0 is forwards, 1 i backwards PORTDbits.RD2 = 0; PORTDbits.RD8 = 1; //left*/ PWM1_DIR = 1; PWM2_DIR = 0; } motorDuty =3; delayMs(15); updateHeading(); // sprintf(tempBuf1,"%f",roverHeading); // IEC0bits.T1IE = 0; // lcd_clear(); // print_lcd(tempBuf1); // IEC0bits.T1IE = 1; //delayMs(1000); //for(p = 0; p <100000; p++); } } PWM1_DIR = 0; //left NOTE: 0 is forward, 1 is reverse PWM2_DIR = 0; motorDuty = 5; ultraSonicDelayEnable = 1; //frequency is around 20kHz while (ultraSonicDelayCount < 60000){ //for 4 seconds poll ultrasonic and check for obsticles long double x; //PORTEbits.RE4 = 1; //TRIGGER HIGH PORTDbits.RD5 = 1; delay_us(10); //10uS Delay lcd_clear(); ultraSonicEn = 1; ultraSonicCount = 0; //PORTEbits.RE4 = 0; //TRIGGER LOW PORTDbits.RD5 = 0; while (!PORTDbits.RD4); //Waiting for Echo IEC0bits.T2IE = 1; //enable timer while(PORTDbits.RD4);// IEC0bits.T2IE = 0; //disable timer ultraSonicEn = 0; x = ultraSonicCount/TICKS_PER_METER; if (x <= 1.4){ motorDuty = 0; }else{ motorDuty = 5; } delayMs(200); } ultraSonicDelayEnable = 0; ultraSonicDelayCount = 0; } motorDuty = 0; delayMs(1000); //IEC0bits.T1IE = 0; lcd_clear(); char buf3[40]; sprintf(buf3, "reached %d", wapointsVisited); print_lcd(buf3); delayMs(3000); //IEC0bits.T1IE = 1; } //IEC0bits.T1IE = 0; lcd_clear(); print_lcd("ARRIVED!!!"); //IEC0bits.T1IE = 1; while (1); }
void change_config_state(state *my_states, byte direction, DWORD *delay) { if ((millis() - *delay) > STATE_CHANGE_DELAY) { if (direction) { switch (my_states->config) { case OVERVIEW: case CHOOSE_INTERVAL: case CHOOSE_FOCUS: my_states->config++; break; case SET_DELAY: if (my_states->interval) { my_states->config++; } else { my_states->focus ? my_states->config = SET_FOCUS_STYLE : my_states->config = OVERVIEW; } break; case SET_INTERVAL: my_states->config++; break; case SET_AMOUNT: my_states->focus ? my_states->config = SET_FOCUS_STYLE : my_states->config = OVERVIEW; break; case SET_FOCUS_STYLE: case SET_FOCUS_TIME: default: my_states->config = 0; break; } } else //direction==0==down { switch (my_states->config) { case OVERVIEW: if (my_states->focus) { my_states->config--; } else { my_states->interval ? my_states->config = SET_AMOUNT : my_states->config = SET_DELAY; } break; case CHOOSE_INTERVAL: case CHOOSE_FOCUS: case SET_DELAY: case SET_INTERVAL: case SET_AMOUNT: my_states->config--; break; case SET_FOCUS_STYLE: my_states->interval ? my_states->config = SET_AMOUNT : my_states->config = SET_DELAY; case SET_FOCUS_TIME: my_states->config--; break; default: my_states->config = 0; break; } } print_lcd(); } }
//============================================================================= //Het hoofdprogramma int main(void) { //variabelen uint8_t blok; uint8_t arr[10]; poorten_init(); //init twi twi_init(); //init lcd lcd_init(); schrijftekst(); sei(); arr[0] = 0x00; arr[1] = 0x57; arr[0] = 0xFF; twi_mt_zendboodschap(0x38, 0x03,arr); //print resultaten interrupts if (MT_B.klaar == 1) { print_lcd(); } twi_mt_zendboodschap(0x39, 0x03,arr); //print resultaten interrupts if (MT_B.klaar == 1) { print_lcd(); } twi_mt_zendboodschap(0x3A, 0x0,arr); //print resultaten interrupts if (MT_B.klaar == 1) { print_lcd(); } twi_mt_zendboodschap(0x3B, 0x03,arr); //print resultaten interrupts if (MT_B.klaar == 1) { print_lcd(); } while(1) { //print resultaten interrupts if (MT_B.klaar == 1) { print_lcd(); } //als knop is ingedrukt : zend boodschap if ((bit_is_set(PINB,4)) ) //knop { //knop is los // schakelen mogelijk blok = 0; //wacht op denderen _delay_ms(D_TIJD); //zet led uit PORTD |= _BV(7); } if (!bit_is_set(PINB,4) ) { //knop is ingedrukt //blokkeer herhaling blok = 1; //wacht op denderen _delay_ms(D_TIJD); //zet led aan PORTD &= ~_BV(7); //maak vorige resultaten schoon lcd_clear(); lcd_gotoxy(0,0); schrijftekst(); //we zenden een Boodschap MT_B.data[0] = 0x00; MT_B.data[1] = 0x57; MT_B.data[0] = 0x77; MT_B.data[1] = 0x77; MT_B.data[1] = 0x77; MT_B.data[0] = 0x77; // twi_mt_zendboodschap(0x38, 0x06); //knop is ingedrukt //blokkeer herhaling blok = 1; //wacht op denderen _delay_ms(D_TIJD); //zet led aan PORTD &= ~_BV(7); //maak vorige resultaten schoon lcd_clear(); lcd_gotoxy(0,0); schrijftekst(); //we zenden een Boodschap MT_B.data[0] = 0x00; MT_B.data[1] = 0x57; MT_B.data[0] = 0x77; MT_B.data[1] = 0x77; MT_B.data[1] = 0x77; MT_B.data[0] = 0x77; // twi_mt_zendboodschap(0x39, 0x06); //knop is ingedrukt //blokkeer herhaling blok = 1; //wacht op denderen _delay_ms(D_TIJD); //zet led aan PORTD &= ~_BV(7); //maak vorige resultaten schoon lcd_clear(); lcd_gotoxy(0,0); schrijftekst(); //we zenden een Boodschap MT_B.data[0] = 0x00; MT_B.data[1] = 0x57; MT_B.data[0] = 0x77; MT_B.data[1] = 0x77; MT_B.data[1] = 0x77; MT_B.data[0] = 0x77; // twi_mt_zendboodschap(0x3B, 0x06); } } }
void kumpul(){ clr_all_pannal(); uint8_t hasiluart[8]; while(key==1){ DrvGPIO_ClrBit(E_GPC,12); DrvSYS_Delay(10000); DrvGPIO_ClrBit(E_GPB,0); print_lcd(0,"Tap Kartu Anda"); print_lcd(1,"Pada Reader"); print_lcd(2,"Tekan Button"); print_lcd(3,"untuk Kembali"); if(DrvGPIO_GetBit(E_GPB,15)==0){ main();} bacarfid(); DrvUART_Read(UART_PORT0,hasiluart,1); if(hasiluart[0]=='B'){ DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); clr_all_pannal(); goto benar; } if(hasiluart[0]!='B'){ SYSCLK->PWRCON.XTL12M_EN = 1;//Enable 12MHz Crystal SYSCLK->CLKSEL0.HCLK_S = 0; LOCKREG(); clr_all_pannal(); print_lcd(0,"Maaf :("); print_lcd(1,"Nama kamu gak"); print_lcd(2,"Ada di Basis Data"); print_lcd(3,"COBA LAGI !!!"); DrvGPIO_ClrBit(E_GPB,11); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(500000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(500000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); delay(5000000); kumpul(); } //key2=Scankey(); /*if(key2==2){ DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); clr_all_pannal(); }*/ //mennu harus diubah klo uart dah jadi benar: while(hasiluart[0]=='B'){ print_lcd(0,"Silakan Masukkan"); print_lcd(1,"Borang Kamu"); SYSCLK->PWRCON.XTL12M_EN = 1;//Enable 12MHz Crystal SYSCLK->CLKSEL0.HCLK_S = 0; LOCKREG(); servo_buka(); DrvSYS_Delay(10); Scankey(); if(DrvGPIO_GetBit(E_GPA,0)==0){ clr_all_pannal(); print_lcd(0,"Terima Kasih :)"); print_lcd(1,"Tito Alvi"); hitung++; DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_ClrBit(E_GPB,11); DrvSYS_Delay(100000); DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(100000); print_lcd(0,"Terima Kasih :)"); DrvSYS_Delay(2000000); main(); } while(DrvGPIO_GetBit(E_GPA,0)==0){ //sensor cahaya = GPA0 - SIG main();} } } }